Два интернета сразу

IPv6 и IPv4 несовместимы на проводе: хост только-IPv6 не может говорить напрямую с сервером только-IPv4, потому что пакеты используют разные размеры адресов и заголовки. Никогда не должно было быть решающего дня, когда все переключатся в полночь, так что интернет провёл годы, запуская оба протокола бок о бок и наводя мост между ними. Технологии перехода существуют, чтобы сделать это сосуществование невидимым для пользователей, пока старый протокол медленно выводится из обращения.

Dual-stack: просто запусти оба

Самый простой подход — dual-stack: хост, маршрутизатор, или сервер запускает IPv4 и IPv6 одновременно, с адресом в каждом. Когда у имени есть и запись A (IPv4), и запись (IPv6) в DNS, клиент dual-stack может достичь его по любому. Действующее предпочтение — использовать IPv6, когда он доступен, и откатываться к IPv4 в ином случае. Dual-stack — это путь, который большинство сетей берут первым, потому что ничего не нужно транслировать; каждый протокол просто работает нативно.

Happy Eyeballs: спрячь сбои

Предпочитать IPv6 приятно, только если сломанный путь IPv6 не заставляет пользователя ждать. Happy Eyeballs (RFC 8305) решает это, устраивая гонку между двумя: клиент начинает соединение IPv6 и, после очень короткой форы, также начинает IPv4, затем использует то, которое завершится первым, и тихо сбрасывает другое. Эффект в том, что пользователи получают IPv6, когда он здоров, и мгновенный, незамеченный откат к IPv4, когда нет. Этот алгоритм — большая часть причины, почему включение IPv6 редко заставляет что-либо ощущаться медленнее.

Адреса IPv4, встроенные в IPv6

Несколько механизмов работают, неся адрес IPv4 внутри адреса IPv6, и инструмент распознаёт эти формы. IPv4-сопоставленный диапазон ::ffff:0:0/96 представляет адрес IPv4 для сокета dual-stack, так что ::ffff:192.0.2.1 — это как хост IPv4 192.0.2.1 появляется в IPv6-API. Системы трансляции используют общеизвестный префикс 64:ff9b::/96 (RFC 6052), чтобы встроить назначение IPv4 в адрес IPv6, который можно маршрутизировать к транслятору. Распознать встроенный адрес IPv4 говорит вам, что то, что выглядит как назначение IPv6, на самом деле путь к чему-то в интернете IPv4.

NAT64 и DNS64: только-IPv6, достигающий IPv4

Для сетей, которые стали только-IPv6, NAT64 (RFC 6146) и DNS64 (RFC 6147) позволяют тем клиентам всё ещё достигать серверов только-IPv4. DNS64 синтезирует запись AAAA для имени только-IPv4, встраивая его адрес IPv4 в общеизвестный префикс, так что клиент получает назначение IPv6, к которому подключиться. NAT64 затем сидит на границе и транслирует те пакеты IPv6 в IPv4 на пути наружу, и обратно на пути внутрь. Вместе они позволяют современной сети только-IPv6 вести себя так, будто весь интернет достижим по IPv6.

464XLAT для упрямых приложений IPv4

Некоторые приложения всё ещё передают буквальные адреса IPv4 и ломаются в сети только-IPv6 даже с присутствующим NAT64. 464XLAT (RFC 6877), широко развёрнутый у мобильных операторов, добавляет небольшую трансляцию на клиенте, которая представляет приватный адрес IPv4 локально и туннелирует его через сеть только-IPv6 к шлюзу NAT64. Это причина, почему мобильные сети только-IPv6 всё ещё могут запускать приложения только-IPv4, без того чтобы пользователь это замечал.

Почему в нативном IPv6 нет NAT

Частый вопрос от администраторов IPv4 — куда делся . Нативный IPv6 даёт каждому хосту глобально маршрутизируемый адрес, так что разделяющий адреса NAT, который определял домашние и офисные сети IPv4, попросту не нужен; связность сквозная, и межсетевой экран с состоянием, а не трансляция адресов, обеспечивает границу. Там, где приватная, немаршрутизируемая адресация действительно желательна, IPv6 предлагает Уникальные Локальные Адреса (Unique Local Addresses) в fc00::/7, тип ULA, который инструмент идентифицирует. Трансляция, видимая на краях IPv6, нужна для достижения старого протокола, а не для растягивания скудного адресного пространства.

Леса, а не пункт назначения

Вся эта машинерия, dual-stack, Happy Eyeballs, NAT64, DNS64, 464XLAT, — это переходные леса. Конечное состояние — нативный IPv6 повсюду, с трансляцией, нужной лишь для достижения того IPv4, что останется. Тем временем распознавание форм встроенного IPv4 и понимание того, какой мост в игре, помогает вам рассуждать о пути, который может тихо пересекать между двумя интернетами. Когда инструмент помечает адрес как IPv4-сопоставленный или сидящий в префиксе трансляции, это ваш сигнал, что конечная точка IPv4 прячется внутри адреса IPv6.