Введение

Механизм перехода в Интернет 6to4 — это механизм перехода в Интернет для миграции с версии 4 протокола Интернет (IPv4) на версию 6 (IPv6) и система, позволяющая передавать пакеты IPv6 по сети IPv4 (как правило, по IPv4-интернету) без необходимости настройки явных туннелей. Также существуют специальные ретрансляционные серверы, обеспечивающие связь сетей 6to4 с нативными сетями IPv6. 6to4 особенно актуален на начальных этапах развертывания полноценной нативной связности IPv6, поскольку IPv6 не требуется на узлах между хостом и пунктом назначения. Однако он предназначен исключительно как переходный механизм и не рассчитан на постоянное использование. 6to4 может использоваться отдельным хостом или локальной сетью IPv6. При использовании хостом ему необходим глобальный IPv4-адрес, и хост отвечает за инкапсуляцию исходящих пакетов IPv6 и декапсуляцию входящих пакетов 6to4. Если хост настроен на пересылку пакетов для других клиентов, часто локальной сети, он выступает в роли маршрутизатора. Большинство сетей IPv6 используют автоконфигурацию, требующую последние 64 бита адреса для хоста. Первые 64 бита — это префикс IPv6. Первые 16 бит префикса всегда :, следующие 32 бита — это IPv4-адрес, а последние 16 бит префикса доступны для адресации нескольких подсетей IPv6 за одним и тем же 6to4-маршрутизатором. Поскольку IPv6-хосты, использующие автоконфигурацию, уже определили уникальную 64-битную часть хоста своего адреса, им достаточно дождаться объявления маршрутизатора, указывающего первые 64 бита префикса, чтобы получить полный IPv6-адрес. 6to4-маршрутизатор будет знать, что нужно отправить инкапсулированный пакет непосредственно через IPv4, если первые 16 бит будут :, используя следующие 32 бита в качестве адреса назначения, или в противном случае отправить пакет на известный ретрансляционный сервер, имеющий доступ к нативному IPv6. 6to4 не обеспечивает взаимодействие между хостами, поддерживающими только IPv4, и хостами, поддерживающими только IPv6 (для этого см. NAT64). 6to4 — это просто прозрачный механизм, используемый в качестве транспортного уровня между узлами IPv6. В связи с высоким уровнем неправильно настроенных хостов и низкой производительностью в августе 2011 года были опубликованы рекомендации по развертыванию 6to4. Из-за неразрешимых операционных проблем, связанных с использованием префикса 6to4 anycast, эта часть стандарта была признана устаревшей в 2015 году.

Распределение блока адресов

Для любого 32-битного глобального IPv4-адреса, присвоенного хосту, можно сконструировать 48-битный префикс IPv6 6to4 для использования этим хостом (и, если применимо, сетью за ним) путем добавления IPv4-адреса к. Например, глобальный IPv4-адрес имеет соответствующий префикс 6to4. Это дает длину префикса 48 бит, что оставляет место для 16-битного поля подсети и 64-битных адресов хостов внутри подсетей. Любой IPv6-адрес, начинающийся с префикса (то есть любой адрес с первыми двумя октетами 2002 в шестнадцатеричном формате), известен как адрес 6to4, в отличие от нативного IPv6-адреса, который не использует механизмы перехода. Следует отметить, что использование зарезервированного IPv4-адреса, например, предоставленного , не определено, поскольку маршрутизация этих сетей в общедоступном Интернете запрещена. Например, использование в качестве WAN-адреса маршрутизатора будет недопустимым, так как возвращающий пакет не сможет определить IPv4-адрес назначения фактического отправителя.

Инкапсулирование и передача

6to4 заключает IPv6-пакет в полезную нагрузку IPv4-пакета с типом протокола 41. Для отправки IPv6-пакета по сети IPv4 к адресу назначения 6to4 к IPv6-пакету добавляется IPv4-заголовок с типом протокола 41. IPv4-адрес назначения для добавленного заголовка пакета формируется из IPv6-адреса назначения внутреннего пакета (имеющего формат 6to4-адреса) путем извлечения 32 бит, непосредственно следующих за префиксом IPv6-адреса назначения. IPv4-адрес источника в добавленном заголовке пакета – это IPv4-адрес хоста или маршрутизатора, отправляющего пакет по IPv4. Полученный IPv4-пакет затем маршрутизируется к своему IPv4-адресу назначения как любой другой IPv4-пакет.

Маршрутизация между 6to4 и IPv6

Для того, чтобы хосты и сети, использующие адреса 6to4, могли обмениваться трафиком с хостами, использующими "нативные" адреса IPv6, были установлены "релейные маршрутизаторы". Релейный маршрутизатор подключается к сети IPv4 и сети IPv6. Пакеты 6to4, поступающие на интерфейс IPv4, будут направлять свои IPv6-полезные данные в сеть IPv6, в то время как пакеты, поступающие на интерфейс IPv6 с префиксом адреса назначения, будут инкапсулированы и перенаправлены по сети IPv4. Существует разница между "релейным маршрутизатором" и "граничным маршрутизатором" (также известным как "граничный маршрутизатор 6to4"). Граничный маршрутизатор 6to4 – это IPv6-маршрутизатор, поддерживающий псевдоинтерфейс 6to4. Обычно это пограничный маршрутизатор между IPv6-сайтом и сетью IPv4 глобального масштаба, где IPv6-сайт использует адрес, сопоставленный с IPv4-адресом, используемым позднее. С другой стороны, "релейный маршрутизатор" – это 6to4-маршрутизатор, сконфигурированный для поддержки транзитной маршрутизации между адресами 6to4 и чистыми нативными IPv6-адресами. Чтобы хост 6to4 мог взаимодействовать с нативным IPv6-Интернетом, его IPv6-шлюз по умолчанию должен быть установлен на адрес 6to4, содержащий IPv4-адрес релейного маршрутизатора 6to4. Чтобы избежать необходимости ручной настройки, ранее был выделен anycast-адрес. Его можно было назначить любому количеству релейных маршрутизаторов 6to4, чтобы маршрутизация IPv4 обеспечивала маршрутизацию инкапсулированных IPv6-пакетов к ближайшему для пересылки в IPv6-Интернет. Из-за неразрешимых операционных проблем это использование устарело.