Локально-используемые индивидуальные адреса IPv6
Существует два типа локально-используемых индивидуальных адресов IPv6: Unique-Local IPv6 Unicast и Link-Local IPv6 Unicast.
Адреса Unique-Local IPv6 Unicast (ULA), описанные в RFC 4193, являются глобально уникальными и предназначены для адресации узлов внутри локальной сети. Пакеты, у которых в качестве источника или назначения указан этот адрес, не будут передаваться через Интернет. Такие адреса могут маршрутизироваться только внутри локальных сетей. Если провести аналогию с адресами IPv4, то адреса Unique-Local Unicast эквивалентны частным адресам IPv4, только в отличие от них являются уникальными в рамках глобальной сети.
Формат адреса Unique-Local Unicast показан на Рис. 2.12.
Рис. 2.12 Формат адресов Unique-Local IPv6 Unicast
Все адреса Unique-Local Unicast начинаются с префикса (Prefix) FC00::/7. Бит L показывает, что префикс назначен локально (L=1), или адрес зарезервирован для будущих применений (L=0). Таким образом, бит L разбивает префикс FC00::/7 на два поддиапазона:
● FC00::/8 – зарезервирован для будущих применений;
● FD00::/8 – локально назначенный уникальный адрес.
Следующие 40 битов отведены под глобальный идентификатор (Global ID), который определяет организацию. Он должен быть уникальным для того, чтобы минимизировать возможность совпадения с идентификаторами других организаций, поэтому назначается с помощью псевдослучайного алгоритма, который обеспечивает высокую вероятность его уникальности. Алгоритм для генерации адреса Unique-Local Unicast можно найти в сети Интернет. Далее в адресе следует 16-битное поле идентификатор подсети (Subnet ID), которое определяет подсеть внутри сети организации, и 64-битный идентификатор интерфейса (Interface ID).
Адреса Link-Local IPv6 Unicast предназначены для взаимодействия внутри сегмента сети или по каналу связи «точка-точка» и используются только в пределах данного канала. Маршрутизаторы не передают пакеты с адресами Link-Local Unicast, указанными в качестве источника или назначения, через другие линии связи. Эти адреса автоматически назначаются узлу, независимо от наличия в сети маршрутизатора или DHCPv6-сервера.
Рис. 2.13 Формат адресов Link-Local IPv6 Unicast
Адреса Link-Local Unicast имеют достаточно простой формат: адрес начинается с глобального префикса маршрутизации (Global routing prefix) FE80::/10. По сравнению с адресом Global Unicast, префикс стал значительно короче, поэтому пространство, отведенное под идентификатор подсети (Subnet ID) увеличилось с 16 до 54 бит. В связи с тем, что адреса Link-Local Unicast используются только в пределах линии связи, поле Subnet ID заполняется нулями. Последние 64 бита адреса отведены под идентификатор интерфейса (Interface ID).
В IPv6, так же как и в IPv4, адрес идентифицирует не конкретное устройство, а его интерфейс. Главное отличие заключается в том, что протокол IPv6 позволяет назначить интерфейсу любое количество уникальных IPv6-адресов: только Link-Local Unicast или сразу все три типа адресов.
Рис. 2.14 Назначенные интерфейсу адреса IPv6
В IPv6 существуют индивидуальные адреса, используемые локально узлом. Адрес, содержащий все нули (0:0:0:0:0:0:0:0 или ::/128) называется неопределенным адресом (Unspecified address). Он никогда не назначается узлу и обозначает отсутствие адреса. Он обычно используется в поле «Адрес назначения» дейтаграммы IPv6, отправляемой устройством до того, как будет сконфигурирован его собственный IP-адрес. Неопределенный адрес не должен использоваться в качестве адреса назначения. Пакеты IPv6 с неопределенным адресом не маршрутизируются.
Индивидуальный адрес 0:0:0:0:0:0:0:1 (::1/128) называется адресом «обратной петли» (Loopback address). Он может использоваться узлом для отправки IPv6-дейтаграммы самому себе с целью тестирования. Этот адрес не должен назначаться ни одному физическому интерфейсу и использоваться в качестве адреса источника. Он аналогичен адресу 127.0.0.1 в IPv4.
Альтернативные адреса
В протоколе IPv6 появился новый тип адреса – альтернативный адрес (IPv6 anycast address). Он назначается нескольким интерфейсам. При этом пакет, отправленный на этот адрес, направляется на «ближайший» (имеющий минимальную метрику маршрутизации) интерфейс. В соответствии с RFC 4291 альтернативный адрес не может использоваться в качестве адреса источника в пакетах IPv6 и назначается только маршрутизаторам, а не конечным узлам. Пакеты, отправленные на альтернативный адрес, будут доставлены всем маршрутизаторам сети, но данные будут передаваться только через интерфейс «ближайшего» маршрутизатора, как показано на Рис. 2.15.
Рис. 2.15 Использование альтернативного адреса IPv6
Альтернативным адресам не выделен специальный блок адресов, они входят в адресное пространство индивидуальных адресов. Альтернативный адрес состоит из префикса подсети (Subnet prefix), за которым следуют все 0.
Рис. 2.16 Формат альтернативных адресов IPv6
Префикс подсети может занимать столько бит, сколько необходимо для уникальной идентификации подсети, которую обслуживают маршрутизаторы.
Одним из применений альтернативных адресов является идентификация группы маршрутизаторов, принадлежащих Интернет-провайдеру. Такие адреса в маршрутном заголовке IPv6 могут использоваться в качестве промежуточных, чтобы обеспечить доставку пакета через определенного провайдера или последовательность провайдеров. Схема применения альтернативных адресов описана в RFC 4291.
Групповые адреса
Многоадресная передача обеспечивает доставку потока данных группе узлов. Источник многоадресного трафика направляет пакеты многоадресной рассылки не на индивидуальные IP-адреса каждого из узлов-получателей, а на групповой IP-адрес.
Групповой адрес IPv6 (IPv6 multicast address) идентифицирует группу интерфейсов (обычно разных узлов). При этом интерфейс может входить более чем в одну группу. Групповой адрес не может использовать в качестве адреса источника в пакетах IРv6. Формат адреса показа на Рис. 2.17.
Рис. 2.17 Формат групповых адресов IPv6
Групповые адреса начинаются с префикса FF00::/8. Следующие 4 бита – флаги (Flag). Первые 3 бита этого поля в настоящее время не используются и зарезервированы для будущего применения. Последний бит T определяет тип адреса:
● T = 0 – адрес является постоянным, официально выделенным IANA для использования в глобальной сети;
● T = 1 – адрес является временным.
Поле Scope занимает 4 бита и определяет область действия группового адреса, т. е. показывает, как далеко друг от друга могут находиться члены одной многоадресной группы. На данный момент определено шесть значений этого поля, остальные зарезервированы для будущего применения:
● 1 – Interface-Local – многоадресная группа определена в рамках одного узла;
● 2 – Link-Local – многоадресная группа определена в пределах канала связи;
● 4 – Admin-Local – многоадресная группа определена внутри области, задаваемой администратором сети;
● 5 – Site-Local – многоадресная группа определена в рамках локальной сети;
● 8 – Organization-Local – многоадресная группа определена в рамках распределенной сети одной организации;
● E – Global – глобальная многоадресная группа.
Рис. 2.18 Области действия групповых адресов IPv6
Последние 112 бит группового адреса определяют идентификатор группы (Group ID) в пределах области действия адреса.
Функцию широковещательных адресов в протоколе IPv6 выполняют специальные групповые адреса, которые не могут быть назначены многоадресной группе:
● FF01::1 – идентифицирует группу, включающую в себя все IPv6-узлы в пределах области Interface-Local;
● FF02::1 – идентифицирует группу, включающую в себя все IPv6-узлы в пределах области Link-Local;
● FF01::2 – идентифицирует группу всех IPv6-маршрутизаторов в пределах области Interface-Local;
● FF02::2 – идентифицирует группу всех IPv6-маршрутизаторов в пределах области Link-Local;
● FF05::2 – идентифицирует группу всех IPv6-маршрутизаторов в пределах области Site-Local.
В протоколе IPv6 групповые адреса также используются в процессе разрешения адресов с помощью протокола Neighbor Discovery Protocol (NDP), т. е. получения адресов канального уровня других узлов (например, MAC-адресов) на основе известных IPv6-адресов. Адрес, который используется в процессе разрешения адресов, называется Solicited-Node (адрес запрашивающего узла). Он должен формироваться на каждом интерфейсе для всех сконфигурированных на нем индивидуальных и альтернативных адресов. Этот адрес используется только внутри линии связи или сегмента сети.
Адрес Solicited-Node формируется из младших 24 битов поля Interface ID индивидуального или альтернативного адреса путем прибавления префикса FF02:0:0:0:0:1:FF00::/104 (Рис. 2.19).
Рис. 2.19 Формирование адреса Solicited-Node