Я рад, что мой новый размещенный сервер Linode также предлагает адреса IPv4 и IPv6.
И записи DNS по умолчанию при использовании Linode в качестве NS показывают оба A
и AAAA
записи
example.com 86400 IN A 203.0.113.4
example.com 86400 IN AAAA 2001:db8::ff00:1111:2222:3333
и это хорошо, веб-приложения доступны как с v4, так и с v6.
Однако я понимаю, что многие интернет-провайдеры (по крайней мере, там, где я нахожусь) еще не предлагают возможности подключения по IPv6.
Таким образом, доступ из браузера через IPv6 из такой области будет успешно выполнять запрос AAAA (v6). Однако соединение http (s) с использованием этого адреса v6 не удастся.
Есть ли у меня причины беспокоиться о том, что такое может случиться с недавними браузерами?
Следует ли мне удалить адреса IPv6 из зоны DNS, чтобы обеспечить доступ только по IPv4?
-
Примечание: это не тот же вопрос, что и вот этот который фокусируется на проблемах разрешения DNS
Проблема, о которой вы спрашиваете, вызвала серьезную озабоченность 4-5 лет назад. Вероятно, это задержало принятие IPv6 на пару лет. Никто не хотел идти первым, потому что опасался, что их веб-сайт может показаться нестабильным, а пользователи перейдут на конкурирующие сайты без поддержки IPv6.
Многие компании прилагают усилия для решения проблем. Возможно, Счастливые глаза Подход, с которым связан @ HåkanLindqvist, стал наиболее значительным вкладом в решение проблемы.
В 2011 году была достаточная уверенность в том, что проблема решена, и что основные веб-сайты провели скоординированный 24-часовой тестовый запуск Всемирный день IPv6. Скоординированный тестовый запуск был предназначен для того, чтобы гарантировать, что пользователи, у которых все еще есть проблема, не придут к выводу, что проблема связана с одним конкретным сайтом, а не с их собственным подключением.
Результаты оказались достаточно успешными, и год спустя крупные веб-сайты постоянно перешли на IPv6. Мировой запуск IPv6.
Мы близки к переломному моменту, когда проблемы, вызванные NAT, станут больше, чем проблемы, вызванные сломанным IPv6. На данный момент оба они достаточно малы, что трудно измерить, если мы уже пересекли этот переломный момент.
Я бы порекомендовал настроить DNS-записи с двойным стеком, как только у вас будет работать встроенное подключение с двойным стеком. Чем раньше вы начнете, тем больше времени у вас будет на решение любых проблем. Вы хотите, чтобы он был стабильным к тому моменту, когда он станет действительно критически важным.
Не развертывайте серверы на адресах 6to4 или Teredo, если бы это были ваши единственные варианты получения IPv6 на вашем сервере, я бы порекомендовал перейти на более качественного провайдера.
Однако я рекомендую настраивать реле 6to4 и Teredo непосредственно на вашем собственном сервере, если ваш сервер имеет общедоступный IPv4-адрес. Развертывание этих реле обеспечит более надежное соединение с вашим сервером для клиентов, использующих 6to4 или Teredo.
Иногда по-прежнему будут клиенты с нарушенной связью IPv6. Но в последние два года эти клиенты будут испытывать проблемы с основными сайтами, поэтому можно ожидать, что они каким-то образом решат свои проблемы. Они вряд ли увидят проблему только на вашем сайте.
Однако вам нужно обратить внимание на возможность подключения IPv6 вашего собственного сайта. Если у вашего сайта отключится соединение IPv6, вы можете повлиять на небольшое количество пользователей с помощью работающего подключения IPv6 и браузера с предварительным удовлетворением. Они увидят проблему только с вашим сайтом, но все остальное будет работать.
Тот факт, что у IPv6 сейчас меньше пользователей, не означает, что его можно безопасно развернуть с меньшим контролем, чем IPv4. Во всяком случае, я говорю, что вам нужно больше контролировать подключение IPv6, потому что вы, скорее всего, не заметите никаких проблем.
Чтобы добавить что-то к другому ответу и комментарию:
Я понимаю, что многие интернет-провайдеры (по крайней мере, там, где я нахожусь) еще не предлагают подключение по IPv6. Таким образом, доступ из браузера через IPv6 из такой области будет успешно выполнять запрос AAAA (v6). Однако соединение http (s) с использованием этого адреса v6 не удастся.
Нет, он (почти) никогда не будет пытаться установить соединение IPv6. Система знает, что у нее нет соединения IPv6. getaddrinfo()
не будет возвращать приложению адреса IPv6. (Причина, по которой это сделает AAAA
в любом случае, потому что веб-сайт мог есть AAAA
запись, которая действительно работает, например IP-адрес localhost, ::1
.)
Это проблема лишь исчезающе малого процента систем: тех, которые неправильно думаю, что у них есть подключение по IPv6, и они используют браузер, которому несколько лет. Как упоминалось выше, благодаря Всемирному дню IPv6 и Всемирному запуску IPv6 большинство из них уже было исправлено, поскольку, когда Facebook и Google падают, на улицах течет кровь, а браузеры внедрили Happy Eyeballs, поэтому неудачное соединение стоит всего пару сто миллисекунд.