Поиск по сайту:

Должны ли вы заботиться о подключении IPv6 к вашему веб-серверу?


IPv6 — это последняя версия интернет-протокола, заменяющая устаревший IPv4, который до сих пор поддерживает большую часть Интернета, и решающая проблему исчерпания IP-адресов. Это действительно быстрее, и нужно ли вам заботиться об этом для вашего сервера?

IPv6 быстрее?

Вокруг этого вопроса идет небольшая дискуссия. На бумаге IPv6 должен быть немного медленнее. Размер заголовка намного больше из-за того, что IPv6 требует 128 бит для адресов источника и назначения по сравнению с 32 битами IPv4. В целом размер заголовка IPv6 почти удвоился.

Однако на практике это не проблема, поскольку IPv6 — это не просто увеличение размера адреса, это значительно упрощает обработку трафика, а в некоторых случаях может привести к фактическому повышению производительности из-за узких мест в инфраструктуре IPv4.

В прошлом IPv6 был ужасно медленным, но с каждым годом он становится лучше. По данным Facebook в 2015 году, IPv6 улучшил время отклика TCP-соединения на 15%. Тем не менее, это порядка нескольких миллисекунд, что не является ничем, но и не является таким радикальным преимуществом в скорости, которое потребовало бы немедленного включения.

Однако в некоторых случаях IPv6 может быть немного медленнее, чем IPv4, не говоря уже о том, что некоторые пользователи могут не иметь доступа к содержимому IPv6.

Вердикт: включить его не помешает

Хорошая новость заключается в том, что нам не нужно улаживать этот спор здесь, поскольку вопрос на самом деле не имеет значения. Вам не нужно выбирать одно или другое. Большинство современных браузеров будут отправлять TCP-запросы подтверждения связи как на IPv4-, так и на IPv6-адреса вашего веб-сервера (а также любые другие альтернативные адреса). Тот, кто ответит первым, выбирается для установления полного соединения.

Если старый браузер не поддерживает это, он просто подключится к адресу IPv4. Это известно как алгоритм Happy Eyeballs (или Fast Fallback), и это основная причина, по которой в первую очередь можно использовать IPv6.

В целом, если вы по какой-то причине не можете включить IPv6 или вам просто все равно, вы не много потеряете. Однако включить его очень просто, и с учетом потенциальных улучшений производительности на столе стоит потратить несколько минут, чтобы включить его. Ведь это не может повредить.

Как включить IPv6 в NGINX и Apache

Прежде чем начать, вам нужно убедиться, что ваш веб-сервер доступен даже через IPv6. Обычно это связано с запросом IPv6-адреса у вашего провайдера VPS. Для AWS адреса IPv6 создаются автоматически для экземпляров EC2 и назначаются ENI, а не самому экземпляру.

После этого вам потребуется создать запись AAAA (четыре раза IPv4) в DNS, чтобы пользователи знали, к какому адресу подключаться. У вашего DNS-провайдера должна быть возможность для этого. Для AWS можно даже создавать записи псевдонимов AAAA, которые будут динамически сопоставляться с ресурсом AWS через IPv6.

Для NGINX вы можете включить IPv6, прослушивая доступные IPv6-адреса вашего сервера со следующими обозначениями:

server {
  listen [::]:80;
}

При желании вы можете прослушивать один адрес вручную, используя listen [АДРЕС]:80, или включать только IPv6, используя ipv6only=on.

Для Apache вы можете включить его таким же образом, используя дополнительную директиву Listen в вашем httpd.conf:

Listen [ADDRESS]:80