Введение
Механизм перехода в Интернет 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 году.
6to4 is an Internet transition mechanism for migrating from Internet Protocol version 4 (IPv4) to version 6 (IPv6) and a system that allows IPv6 packets to be transmitted over an IPv4 network (generally the IPv4 Internet) without the need to configure explicit tunnels. Special relay servers are also in place that allow 6to4 networks to communicate with native IPv6 networks. 6to4 is especially relevant during the initial phases of deployment to full, native IPv6 connectivity, since IPv6 is not required on nodes between the host and the destination. However, it is intended only as a transition mechanism and is not meant to be used permanently. 6to4 may be used by an individual host, or by a local IPv6 network. When used by a host, it must have a global IPv4 address connected, and the host is responsible for encapsulation of outgoing IPv6 packets and decapsulation of incoming 6to4 packets. If the host is configured to forward packets for other clients, often a local network, it is then a router. Most IPv6 networks use autoconfiguration, which requires the last 64 bits of the address for the host. The first 64 bits are the IPv6 prefix. The first 16 bits of the prefix are always :, the next 32 bits are the IPv4 address, and the last 16 bits of the prefix are available for addressing multiple IPv6 subnets behind the same 6to4 router. Since the IPv6 hosts using autoconfiguration already have determined the unique 64 bit host portion of their address, they must simply wait for a Router Advertisement indicating the first 64 bits of prefix to have a complete IPv6 address. A 6to4 router will know to send an encapsulated packet directly over IPv4 if the first 16 bits are , using the next 32 as the destination, or otherwise send the packet to a well known relay server, which has access to native IPv6. 6to4 does not facilitate interoperation between IPv4 only hosts and IPv6 only hosts (for that, see NAT64). 6to4 is simply a transparent mechanism used as a transport layer between IPv6 nodes. Due to the high levels of misconfigured hosts and poor performance observed, an advisory about how 6to4 should be deployed was published in August 2011. Due to unsolvable operational problems using the 6to4 anycast prefix, that part of the standard was deprecated in 2015.
Распределение блока адресов
Для любого 32-битного глобального IPv4-адреса, присвоенного хосту, можно сконструировать 48-битный префикс IPv6 6to4 для использования этим хостом (и, если применимо, сетью за ним) путем добавления IPv4-адреса к. Например, глобальный IPv4-адрес имеет соответствующий префикс 6to4. Это дает длину префикса 48 бит, что оставляет место для 16-битного поля подсети и 64-битных адресов хостов внутри подсетей. Любой IPv6-адрес, начинающийся с префикса (то есть любой адрес с первыми двумя октетами 2002 в шестнадцатеричном формате), известен как адрес 6to4, в отличие от нативного IPv6-адреса, который не использует механизмы перехода. Следует отметить, что использование зарезервированного IPv4-адреса, например, предоставленного , не определено, поскольку маршрутизация этих сетей в общедоступном Интернете запрещена. Например, использование в качестве WAN-адреса маршрутизатора будет недопустимым, так как возвращающий пакет не сможет определить IPv4-адрес назначения фактического отправителя.
For example, the global IPv4 address has the corresponding 6to4 prefix This gives a prefix length of 48 bits, which leaves room for a 16 bit subnet field and 64 bit host addresses within the subnets. Any IPv6 address that begins with the prefix (in other words, any address with the first two octets of 2002 hexadecimal) is known as a 6to4 address, as opposed to a native IPv6 address which does not systematically use transition technologies. Note that using a reserved IPv4 address, such as those provided by , is undefined, since these networks are disallowed from being routed on the public Internet. For example, using as the router's WAN address would be invalid since a return packet would not be able to determine the destination IPv4 address of the actual sender.
Инкапсулирование и передача
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-Интернет. Из-за неразрешимых операционных проблем это использование устарело.