Первый 6to4:
6to4 позволяет передавать пакеты IPv6 через IPv4. Он используется для соединения двух «островов» IPv6 - не позволяет IPv4 взаимодействовать с IPv6 или наоборот. IPv6-адрес 2002: AABB: CCDD :: становится IPv4-адресом AA.BB.CC.DD, и вы вставляете заголовок IPv4-пакета в заголовок IPv6 и пересылаете эту присоску через сеть IPv4.
Если я отправлю пакет с одного острова IPv6 в пространстве 2002: AABB: CCDD :: на другой, мой локальный пограничный маршрутизатор 6to4 получит его, обернет его в IPv4 в AA.BB.CC.DD и перешлет туда. AA.BB.CC.DD - еще один пограничный маршрутизатор 6to4 на острове, который разворачивает IPv4 и отправляет его на адрес IPv6.
Если я отправлю пакет с острова IPv6 в 2002 году: AABB: CCDD :: на собственный IPv6-адрес, например 2054 :: 45, он пойдет на мой пограничный маршрутизатор, который обернет его в IPv4 до 192.88.99.1 - ретранслятора IPv4 anycast 6to4 Адрес маршрутизатора. Ближайший ретрансляционный маршрутизатор (которым может управлять кто угодно) получит его, развернет и перешлет на указанный адрес IPv6. Чтобы ответить, 2054 :: 45 ответит на мой адрес 2002 ::, который будет перенаправлен на ближайший ретрансляционный маршрутизатор (который объявляет, что он обрабатывает 2002 :: / 16). Затем ретрансляционный маршрутизатор переносит его в IPv4 на адрес AA.BB.CC.DD, откуда он идет на мой пограничный маршрутизатор, разворачивается и отправляется мне.
Думаю, я правильно понимаю. Это 6-й, с которым у меня проблемы.
Отправка пакета с моего острова IPv6 на другой 6-й остров аналогична отправке на собственный IPv6-адрес, верно? Поскольку маршрутизатор 6-го провайдера находится в назначенном ему адресном пространстве IPv6, маршрутизаторы IPv6 не знают, что это 6-й остров.
Если 6-й остров, с которым я пытаюсь связаться, не подключен к более широкому Интернету IPv6 - нет никакого способа добраться до него, верно? Потребовалось бы пройти через IPv4, но мой пограничный маршрутизатор 6rd не знает, как превратить произвольный IPv6-адрес в IPv4-адрес ... не так ли? А в обратном направлении в Интернете IPv6 нет маршрутизатора ретрансляции 6rd, который мог бы преобразовать пакет IPv6 в IPv4, который выглядит как обычный IPv6-адрес, и отправить его в нужное место.
Внутри одного провайдера:
6rd island - [6rd Border Router] - IPv4 ISP Internet - [6rd Border Router] - 6rd Island
Это отлично работает, потому что интернет-провайдер контролирует маршруты и может добавлять маршруты к маршрутизаторам 6rd со словами: «Если вы пытаетесь достичь 2054 :: something, отправьте его через IPv4 на abcd. Но я не понимаю, как 6rd маршрутизирует более широкий IPv4 или IPv6 Интернет.
6rd используется только между пограничными реле (BR), управляемыми провайдером, и клиент-маршрутизатором (CPE) на сайте пользователя. Пользователь внутренне использует собственный IPv6. Префикс для этого рассчитывается из (части) внешнего IPv4-адреса и префикса IPv6, предоставленного интернет-провайдером. Это не специальный префикс, как в случае с 6to4, а обычный префикс, который провайдер получил из регионального интернет-реестра. CPE инкапсулирует собственный трафик IPv6 в IPv4 и отправит его через магистраль IPv4 провайдера в BR. Там упакованные данные декапсулируются и отправляются в настоящий IPv6-интернет.
Таким образом, 6-й пакет никогда не проходит через общедоступный Интернет. Вы увидите их только между CPE и BR. Во внутренней сети пользователя и в Интернете это будет просто собственный трафик IPv6.
PS: Предоставление CPE правильных настроек (префикс IPv6, адреса BR, какую часть IPv4-адреса включать в префикс IPv6) обычно выполняется с помощью DHCP для IPv4, но ручная настройка также возможна на большинстве CPE.