IPv6-адрес

undefined

IPv6-адрес (англ. IPv6 address) — это числовая метка, используемая для идентификации и локализации сетевого интерфейса компьютера или другого сетевого узла в компьютерной сети, использующей протокол IPv6. IP-адреса указываются в заголовке пакета для обозначения источника и получателя, а адрес назначения применяется для принятия решений о маршрутизации пакетов IP между сетями[1]. IPv6 является преемником первой адресной схемы для — протокола Internet версии 4 (IPv4). В отличие от IPv4, где адрес занимал 32 англ. бита, IPv6-адрес имеет длину 128 англ. битов, что обеспечивает значительно больший адресный простор[1].

Методы адресации

IPv6-адреса классифицируются по основным методам адресации и маршрутизации: уникаст, эникаст и мультикаст[1].

  • Уникаст (англ. unicast) — идентифицирует один-единственный сетевой интерфейс. Пакеты, адресованные уникаст-адресу, доставляются именно ему.
  • Эникаст (англ. anycast) — назначается группе интерфейсов (обычно на разных узлах). Пакет, отправленный на эникаст-адрес, поступает одному из членов группы, как правило, ближайшему по определению маршрутизации. Эникаст-адреса имеют тот же формат, что и уникаст, отличаясь только тем, что один адрес присутствует на нескольких интерфейсах.
  • Мультикаст (англ. multicast) — используется группой хостов, присоединившихся к определённой рассылке. Пакет, отправленный на мультикаст-адрес, доставляется на все интерфейсы, входящие в соответствующую группу. В IPv6 не реализован механизм широковещательной передачи (англ. broadcast) — его функции заменяет мультикаст-адрес группы всех узлов ff02::1, но использование этого адреса не рекомендуется; обычно применяют специализированные группы.

Форматы адресов

IPv6-адрес состоит из 128 битов[1]. Для разных методов адресации определены различные форматы, где 128 бит делятся на группы, позволяющие выделять префиксы сети и специальные области.

Формат уникаст- и эникаст-адреса

Уникаст- и эникаст-адреса обычно состоят из двух логических частей: 64 бит префикса сети, используемых для маршрутизации, и 64 бит идентификатора интерфейса.

Общий формат уникаст-адреса (размер префикса маршрутизации может различаться)
Область Префикс маршрутизации Идентификатор подсети Идентификатор интерфейса
Биты 48 (или больше) 16 (или меньше) 64

Префикс сети (объединение префикса маршрутизации и идентификатора подсети) расположен в старших 64 битах адреса. Длина префикса маршрутизации может быть разной, а уменьшение его длины увеличивает количество возможных подсетей. Младшие 64 бита формируют идентификатор интерфейса, который может автоматически формироваться по адресу MAC с помощью формата модифицированный EUI-64, быть получен через DHCPv6, сгенерирован случайным образом или присвоен вручную.

Адреса локальной уникальности аналогичны приватным адресам IPv4.

Формат адреса уникальной локальной сети
Область Префикс L Случайные биты Идентификатор подсети Идентификатор интерфейса
Биты 7 1 40 16 64

Префикс всегда равен 11111102. Бит L указывает глобальную или локальную назначенность, 40 бит «случайно» выбираются при генерации данного /48-префикса.

Адрес англ. link-local также базируется на идентификаторе интерфейса, но использует иной формат префикса.

Формат link-local-адреса
Область Префикс Нули Идентификатор интерфейса
Биты 10 54 64

Префикс фиксирован: 11111110102. 54 следующих бита — нули (всегда одинаковый префикс fe80::/64), что делает такие адреса не маршрутизируемыми.

Формат мультикаст-адреса

Мультикаст-адреса формируются по разным форматам в зависимости от назначения.

Общий формат мультикаст-адреса
Область Префикс flg sc (scope) ID группы
Биты 8 4 4 112

Префикс для всех мультикаст-адресов — 111111112. Назначение битов флагов отражено в таблице:

Флаги мультикаст-адреса[2]
Бит Флаг Значение при 0 Значение при 1
8 зарезервировано зарезервировано зарезервировано
9 R (rendezvous, точка встречи)[3] не встроен встроен
10 P (префикс)[4] нет информации о префиксе адрес на основе префикса сети
11 T (transient, временный)[1] известная группа динамически присвоенная

4-битное поле «sc» определяет область действия адреса.

Мультикаст-адрес "нода по запросу" (Solicited-Node multicast) формируется на основе последних 24 бит уникаст-/эникаст-адреса интерфейса.

Формат мультикаст-адреса "нода по запросу"
Область Префикс flg sc Нули Единицы Уникаст-адрес
Биты 8 4 4 79 9 24

4-битное поле sc=00102 (англ. link-local). Для группы формируются адреса "ff02::1:ffXX:XXXX", где XX:XXXX — 24 младших бита уникаст-/эникаст-адреса.

Представление

IPv6-адрес записывается как восемь групп по четыре шестнадцатеричных цифры (одна группа = 16 бит или два октета[5][6]), разделённых двоеточиями:

2001:0db8:85a3:0000:0000:8a2e:0370:7334

Существует гибкость в способах сокращения записи:

  • Начальные нули в группе могут быть опущены (2001:0db8::0001:00002001:db8::1:0)
  • Наиболее длинная последовательность полностью нулевых групп заменяется двумя двоеточиями ("::"), например, 2001:db8:0:0:1:0:0:12001:db8::1:0:0:1. Если таких последовательностей несколько, сокращается самая левая.
  • Сокращение "::" не применяется для одной нулевой группы (например, 2001:db8:0:1:1:1:1:12001:db8:0:1:1:1:1:1)

Такое представление позволяет записывать адреса очень коротко: ::1 (адрес), :: (не определённый адрес).

Также в переходных сценариях допускается смешанная запись, в которой последние 32 бита адреса записываются по точечной десятичной нотации IPv4, например, ::ffff:192.0.2.128.

Запись адресных блоков и префиксов

Сеть IPv6 обозначается в виде блока из смежных адресов, размер которого всегда — степень двойки. Запись блока выполняется по нотации CIDR: начало блока, слэш и длина префикса в битах, например, 2001:db8:1234::/48 определяет диапазон от 2001:db8:1234:0000:0000:0000:0000:0000 до 2001:db8:1234:ffff:ffff:ffff:ffff:ffff. Префикс узла может быть записан как 2001:db8:a::123/64.

Литералы IPv6-адресов в URL, UNC

Для корректной работы IPv6-литералов в URI и URL адрес заключают в квадратные скобки: http://[2001:db8:85a3:8d3:1319:8a2e:370:7348]/; с портом — https://[2001:db8:85a3:8d3:1319:8a2e:370:7348]:443/[7].

В операционных системах Microsoft Windows, где двоеточие запрещено в UNC-путях, введена запись адреса как доменного имени — 2001-db8-85a3-8d3-1319-8a2e-370-7348.ipv6-literal.net. Если есть индекс зоны, он добавляется с буквой s (fe80--1ff-fe23-4567-890as3.ipv6-literal.net).

Адреса с индексом зоны (scope index)

Адреса с локальной областью действия, например, для уточнения интерфейса могут дополняться индексом зоны через знак процента, например: fe80::1ff:fe23:4567:890a%eth2 или fe80::1ff:fe23:4567:890a%3[8]. При использовании в URI символ % записывается как %25.

Области действия (scopes)

Каждый IPv6-адрес, кроме не определённого (::), имеет область действия (scope), определяющую, где он уникален и валиден[8].

Для уникаст-адресов различаются как минимум два scope: локальный для сегмента и глобальный. Адреса имеют область действия локальной сети; остальные — глобальную.

Для мультикаста область действия кодируется в поле scope во втором октете, например:

  • 0x1 — interface-local
  • 0x2 — link-local
  • 0x5 — site-local
  • 0x8 — organization-local
  • 0xe — global

Адресное пространство

Общая аллокация

Выделением пространства IPv6-адресов управляет IANA[9] через делегирование крупным региональным регистрам и далее — операторам и абонентам. На июнь 2024 года для Интернет-адресации выделен только диапазон 2000::/3; остальные диапазоны зарезервированы или имеют специальные назначения[10].

Регистраторы выделяют блоки /32—/48 провайдерам, которые затем делят их абонентам, часто по /56 и /64[11].

В отличие от IPv4, организации получают гораздо более значительные по размеру блоки, обычно /48, содержащие 280 адресов.

Специальное выделение и зарезервированные адреса

Для независимых пользователей предусмотрен диапазон 2001:678::/29. Для точек обмена трафиком — 2001:7f8::/29[12]. Особые адреса выделены и для других целей.

Cпециальные и зарезервированные адреса

Блоки специальных адресов
CIDR-блок Первый адрес Последний адрес Количество адресов Назначение Описание
::/0 :: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 2128 Маршрутизация Маршрут по умолчанию
::/128 :: :: 1 Программное обеспечение Не определённый адрес
::1/128 ::1 ::1 1 Хост Loopback-адрес — возвращает трафик самому себе
::ffff:0:0/96 ::ffff:0.0.0.0 ::ffff:255.255.255.255 232 Программное обеспечение Адреса IPv4, сопоставленные с IPv6
fc00::/7 fc00:: fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 2121 Частные сети Уникальные локальные адреса
fe80::/10 fe80:: fe80::ffff:ffff:ffff:ffff 264 Локальный канал (link) Link-local адрес
ff00::/8 ff00:: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 2120 Глобальная сеть (Internet) Мультикаст-адрес

Автоматическая настройка адреса

Каждый узел IPv6 формирует адрес на каждом активном интерфейсе даже при отсутствии глобально маршрутизируемых адресов, используя механизм модифицированного EUI-64 и протокол обнаружения соседей (NDP)[13].

Модифицированный EUI-64

Наиболее часто идентификатор интерфейса формируется из 48-битного MAC-адреса путём вставки двух байтов FFFE посередине; далее инвертируется 7-й бит (universal/local) в структуре EUI-64. Это обеспечивает уникальность идентификатора[1].

Обработка дублирования адресов

Перед использованием уникаст-адреса интерфейс проверяет его уникальность протоколом NDP через сообщения соседних запросов/ответов (ICMPv6) — до подтверждения адрес считается временным.

Временные адреса

Во избежание слежения по постоянным идентификаторам используются временные адреса с псевдослучайным идентификатором интерфейса, действительные в течение ограниченного времени[14].

Стабильные приватные адреса

Подобные адреса предназначены для повышения приватности: они стабильны в пределах одной сети, но при переходе в другую — меняются[15].

Выбор адреса по умолчанию

В большинстве ОС интерфейс получает несколько адресов единовременно (link-local, глобальный, временные). Выбор источника и назначения регулируется алгоритмом RFC 6724, где предпочтение отдается адресам меньшего scope и с большим приоритетом[16].

Система доменных имен

В DNS сопоставление имён хостов IPv6 осуществляется через записи AAAA[17]. Для обратного поиска резервируется зона ip6.arpa с иерархией по 4 битам.

Структура AAAA-записи
NAME Имя домена
TYPE AAAA (28)
CLASS Internet (1)
TTL Время жизни (сек)
RDLENGTH Длина поля RDATA
RDATA 128-битный IPv6-адрес в сетевом порядке байтов

Примечания

Литература

  • Beijnum, Iljitsch van. Running IPv6 : [англ.]. — 2005. — ISBN 978-1-59059-527-5.
  • Elz, Robert A compact representation of IPv6 addresses (англ.). IETF (1 апреля 1996). — «Предлагается альтернативный кодированный (base-85) способ представления любого IPv6-адреса.» Дата обращения: 10 июня 2024.

Категории