RFC: 4291
Оригинал: IP Version 6 Addressing Architecture
Предыдущие версии: RFC 1884, RFC 2373, RFC 3513
Категория: Проект стандарта
Дата публикации:
Авторы: ,
Перевод: Мельников Дмитрий Анатольевич

Оглавление

1. Предисловие

Этот стандарт определяет архитектуру шестой версии протокола сетевого уровня в Internet (IPv6-протокол). Он включает основные форматы различных типов (однонаправленный — unicast, альтернативный — anycast и групповой — multicast).

2. IPv6-Адресация

IPv6-адреса представляют собой 128-битовые идентификаторы для сетевых интерфейсов и групп сетевых интерфейсов. Существуют следующие три типа IPv6-адресов:

  • Однонаправленный (unicast).
  • Он представляет собой идентификатор одного интерфейса (IP-узла). Переданный с таким адресом IP-пакет доставляется на интерфейс (IP-узел), имеющий такой адрес;
  • Альтернативный (anycast).
  • Он представляет собой идентификатор группы сетевых интерфейсов (обычно принадлежащих различным IP-узлам). Переданный с таким адресом IP-пакет доставляется на один из сетевых интерфейсов (IP-узлов), имеющих такой адрес (то есть «ближайший» в соответствии с принятой метрикой протокола маршрутизации);
  • Групповой (multicast).
  • Он представляет собой идентификатор группы сетевых интерфейсов (обычно принадлежащих различным IP-узлам). Переданный с таким адресом IP-пакет доставляется на все интерфейсы (IP-узлы), имеющие такой адрес.

В IPv6-адресации нет широковещательных (broadcast) адресов, так как эту функцию выполняют групповые IPv6-адреса.

2.1. Модель IPv6-адресации

IPv6-адреса всех типов приписываются (привязаны) к сетевым интерфейсам, а не к IP-узлам (на практике один IP-узел может иметь несколько сетевых интерфейсов). Однонаправленный IPv6-адрес указывает на одиночный сетевой интерфейс. Так как каждый сетевой интерфейс принадлежит одному IP-узлу, то впринципе, однонаправленные IPv6-адреса можно использовать в качестве идентификатора IP-узла.

Одно из требований к любому сетевому интерфейсу заключается в том, что он должен иметь, по крайней мере, один однонаправленный IPv6-адрес, связанный с конкретным локальным каналом связи. Один сетевой интерфейс может также иметь несколько IPv6-адресов различных типов (однонаправленный, альтернативный и групповой) или целый диапазон.

Однонаправленные IPv6-адреса в большом диапазоне превышают диапазон конкретной линии связи, и поэтому нет необходимости обозначать ими интерфейсы «не соседних» IP-узлов, которые не используются как источники или получатели IPv6-пакетов. Они наиболее приемлемы для идентификации оконечных интерфейсов при сквозном соединении («point-to-point»).

Существует только одно исключение в данной модели адресации:

Однонаправленные IPv6-адреса или группа таких IPv6-адресов может быть присвоена нескольким физическим интерфейсам, если в конкретной подсети эта группа физических интерфейсов рассматриваются как один интерфейс, когда его представляют как интерфейс сетевого уровня. Это бывает весьма полезным при распределении нагрузки между несколькими физическими интерфейсами.

В настоящее время модель IPv6-адресации совпадает с моделью IPv4-адресации, в которой префикс подсети соответствует одной линии связи. Более того несколько префиксов подсети могут присваиваться одной и той же линии связи.

2.2. Текстуальное представление IPv6-адресов

Существуют три стандартные формы текстуального представления IPv6-адресов (в форме текстовых строк или последовательностей):

  1. Рекомендуемая (полная) форма:

    x:x:x:x:x:x:x:x

    где x — от одного до четырех шестнадцатеричных чисел из восьми 16-битовых отрезков (полей/субполей) IPv6-адреса. Например:

    ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
    2001:DB8:0:0:80:200C:417A

    Замечание. Нет необходимости записывать все четыре нуля в одном 16-битовом поле IPv6-адреса. Однако, в каждом поле должна присутствовать хотя бы одна цифра.

  2. Сокращённая форма.

    Несмотря на некоторые способы формирования определенных вариантов IPv6-адресов, в большинстве случаев IPv6-адреса будут содержать весьма длинные последовательности нулевых битов. С целью облегчения записи IPv6-адресов, содержащих такие нулевые последовательности, существуют специальные правила для сокращения длины адреса. В частности, для этого используется символ :: , который служит для замены нулевых 16-битовых полей в IPv6-адресе. Этот символ может размещаться в IPv6-адресе только один раз. Он также может использоваться для сокращения начальных или конечных нулевых последовательностей. Следующая таблица содержит примеры использования символа :: ;

    Типы IPv6-адресов Рекомендуемая форма Сокращённая форма
    Однонаправленный адрес 2001:DB8:0:0:80:200C:417A 2001:DB8::80:200C:417A
    Групповой адрес FF01:0:0:0:0:0:0:101 FF01::101
    Петлевой (loopback) адрес [?] 0:0:0:0:0:0:0:1 ::1
    Неустановленный адрес 0:0:0:0:0:0:0:0 ::
  3. Смешанная (альтернативная) форма.

    смешанная (альтернативная) форма. Данная форма применяется в тех случаях, когда речь идет IP-узлах, использующих одновременно IPv4- и IPv6-адресацию, и поэтому она имеет следующий формат записи:

    x:x:x:x:x:x:d.d.d.d

    где x — шестнадцатеричные числа в первых шести 16-битовых полей смешанного адреса, d — десятичные числа последних четырёх 8-битовых полей (в соответствии с IPv6-адресацией) смешанного адреса.

    Следующая таблица содержит примеры смешанной формы адресации:

    Смешанная форма Сокращённая форма
    0:0:0:0:0:0:13.1.68.3 ::13.1.68.3
    0:0:0:0:0:FFFF:129.144.52.38 ::FFFF:129.144.52.38

2.3. Текстуальное представление префиксов IPv6-адресов

Текстуальное представление префиксов IPv6-адресов аналогично записи префиксов IPv4-адресов при использовании бесклассового способа межсетевой маршрутизации [?] .

Префикс IPv6-адреса имеет следующий формат записи:

ipv6-address/prefix-length

где ipv6-address — любой из перечисленных выше типов IPv6-адресов, а prefix-length — десятичное число, указывающее на количество крайних слева последовательных битов адреса, представляющих префикс.

Далее приведены примеры допустимых форматов записи 60 битового шестнадцатеричного префикса 20010DB80000CD3 :

2001:0DB8:0000:CD30:0000:0000:0000:0000/60
2001:0DB8::CD30:0:0:0:0/60
2001:0DB8:0:CD30::/60

Далее приведены примеры не допустимых форматов записи 60 битового шестнадцатеричного префикса 20010DB80000CD3 :

  1. 2001:0DB8:0:CD3/60

    В этом случае могут быть потеряны начальные последовательности нулей (но не конечных) в пределах любого 16-битового поля адреса.

  2. 2001:0DB8::CD30/60

    В этом случае адрес слева от символа / «расширяется» до неверного значения 2001:0DB8:0000:0000:0000:0000:0000:CD30 .

  3. 2001:0DB8::CD3/60

    В этом случае адрес слева от символа / «расширяется» до неверного значения 2001:0DB8:0000:0000:0000:0000:0000:0CD3 .

При записи IPv6-адреса IP-узла совместно с префиксом этого IPv6-адреса IP-узла (например, префикс IP-узла некой подсети), то тогда допускаются следующие форматы записи:

  1. IPv6-адреса IP-узла — 2001:0DB8:0:CD30:123:4567:89AB:CDEF .

  2. Номер подсети, в которой расположен IP-узел — 2001:0DB8:0:CD30::/60 .

  3. Комбинация адрес/префикс — 2001:0DB8:0:CD30:123:4567:89AB:CDEF/60 .

2.4. Идентификация типа IPv6-адреса

Тип IPv6-адреса определяется битами старшего порядка адреса. Следующая таблица определяет кодирование типов IPv6-адресов.

Тип IPv6-адреса Двоичный префикс Формат IPv6-адреса
Неустановленный адрес 00...0 (128 битов) ::/128
Петлевой адрес 00...1 (128 битов) ::1/128
Групповой адрес 11111111 FF00::/8
Однонаправленный адрес для локальной линии связи 1111111010 FE80::/10
Глобальный однонаправленный адрес Любой другой -

Альтернативные IPv6-адреса, выбираемые из пространства однонаправленных IPv6-адресов, с точки зрения семантики ничем не отличаются от однонаправленных IPv6-адресов.

В последующих стандартах для определенных целей могут быть введены один или несколько субдиапазонов глобальных однонаправленных IPv6-адресов, но до тех пор, пока этого не произойдет, в прикладных системах все адреса должны трактоваться как глобальные однонаправленные IPv6-адреса, за исключением других типов адресов, представленных в приведенной выше таблице.

2.5. Однонаправленные IPv6-адреса

Однонаправленные IPv6-адреса записываются вместе с префиксами произвольной длины в битах, что — аналогично IPv4-адресации при использовании бесклассового способа межсетевой маршрутизации.

В настоящее время существуют несколько типов однонаправленных IPv6-адресов, а именно: глобальные, для локальных терминалов (сетевых устройств) и для локальных линий связи (IP-узлов). Существуют также несколько специализированных подтипов глобальных однонаправленных IPv6-адресов, среди которых совмещенные IPv6- и IPv4-адреса. В дальнейшем могут быть определены новые типы и подтипы адресов.

IP-узлы работающие с IPv6-адресацией могут иметь достаточно много или мало данных о внутренней структуре IPv6-адресов, это зависит роли, которую играет IP-узел (например, сервер или маршрутизатор). Как минимум, IP-узел может знать, что однонаправленный IPv6-адрес (включая свой собственный) не имеет какой-либо внутренней структуры (рис.1).

|                            128 битов                            |
+-----------------------------------------------------------------+
|                       IPv6-адрес IP-узла                        |
+-----------------------------------------------------------------+
Рис.1. Формат IPv6-адреса, не имеющего какой-либо внутренней структуры

Немного более сложный IP-узел (но по-прежнему весьма простой) дополнительно может быть «осведомлён» о префиксе(ах) подсети для линии(ий) связи, которые за ними закреплены, при этом различные IPv6-адреса могут иметь различные значения длины (n ) префикса (рис.2).

|            n битов            |           128-n битов           |
+-------------------------------+---------------------------------+
|        Префикс подсети        |     Идентификатор интерфейса    |
+-------------------------------+---------------------------------+
Рис.2. Формат IPv6-адреса с префиксом подсети длиной "n"

Тем не менее, очень простой маршрутизатор может не иметь данных о внутренней структуре однонаправленных IPv6-адресов, однако маршрутизаторы будут иметь более полные данные об одной или нескольких иерархических границах топологического сетевого пространства, в рамках которого функционируют протоколы маршрутизации. Но даже известные границы будут различаться от мршрутизатора к маршрутизатору, в зависимости от того, какое место занимает маршрутизатор в иерархии маршрутизации.

Целесообразно не «нагружать» IP-узлы какой-либо информацией о структуре IPv6-адресов, за исключением данных о границах подсетей, которые они обслуживают.

2.5.1. Идентификаторы интерфейсов

В однонаправленных IPv6-адресах для обозначения сетевых интерфейсов на конкретной линии связи используются идентификаторы интерфейсов. Они должны быть уникальными в пределах префикса подсети. Рекомендуется, чтобы идентификатор одного и того же интерфейса не был присвоен различным IP-узлам, связанным одной линией связи. Они также могут быть уникальными в рамках более широкого диапазона. В некоторых случаях, идентификатор интерфейса может быть получен прямо из адреса канального уровня, связанного с этим сетевым интерфейсом. Один и тот же идентификатор интерфейса может использоваться в нескольких интерфейсах в одном IP-узле, но до тех пор, пока они присвоены различным подсетям.

Замечание. Уникальность идентификаторов интерфейсов не зависит от уникальности IPv6-адресов. Например, глобальный однонаправленный IPv6-адрес может быть сформирован с идентификатором интерфейса в пределах границ локальной зоны, а IPv6-адрес для локального канала (линии) связи может быть сформирован с идентификатором интерфейса в пределах границ универсальной зоны.

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

Идентификаторы интерфейсов в формате EUI-64 могут иметь универсальную зону применения, когда они извлекаются из универсальной метки (например, 48-битовый МАС-адрес[?] стандарта IEEE 802, или идентификаторы стандарта IEEE EUI-64), или иметь локальную зону применения, в которой глобальные метки не используются (например, терминальные окончания туннелей, последовательные линии передачи данных) или такие глобальные метки не допустимы (например, временные метки для обеспечения безопасности).

Идентификаторы интерфейсов в усовершенствованном формате EUI-64 формируются путем инверсии бита u (универсальный/локальный бит в терминологии IEEE EUI-64), если они создаются из идентификаторов стандарта IEEE EUI-64. Таким образом, в результате инверсии бита u имеем:

  • 1 — указывает на универсальную зону применения;
  • 0 — указывает на локальную зону применения.

На рис.3 представлен формат первых трех октетов (в двоичной форме) идентификаторов стандарта IEEE EUI-64. Порядок следования битов соответствует порядку передачи битов в Internet-сообществе. Бит u — универсальный/локальный бит, бит g — индивидуальный/групповой бит, с — биты идентификатора компании.

 0           0 0           1 1           2
|0           7 8           5 6           3|
+------+------+------+------+------+------+
| cccc | ccug | cccc | cccc | cccc | cccc |
+------+------+------+------+------+------+
Рис.3. Формат первых трех октетов идентификаторов стандарта IEEE EUI-64

Причина инверсии бита u при формировании идентификатора интерфейса весьма банальна — облегчить системным администраторам ручную настройку не глобальных идентификаторов, когда аппаратные метки не допустимы. За исключением, например, случаев последовательных линий передачи данных и терминальных окончаний туннелей (при сквозных соединениях). Альтернативной формой могла бы быть форма 0200:0:0:1, 0200:0:0:2, etc… , за исключением уж слишком упрощенной формы как 0:0:0:1, 0:0:0:2, etc… . Сетевые IPv6-узлы, не требующие того, чтобы в идентификаторах интерфейсов в усовершенствованном формате EUI-64 бит u не был установлен в положение «универсальный» (значение 1 ), являются уникальными.

Использование «универсального/локального» бита в идентификаторе усовершенствованного формата EUI-64 позволяет усовершенствовать перспективную технологию, которая обеспечит весомые преимущества от применения идентификаторов интерфейсов в универсальной зоне.

2.5.2. Неустановленные адреса

Адрес 0:0:0:0:0:0:0:0 называется неустановленным IPv6-адресом. Он никогда не должен присваиваться какому-либо IP-узлу. Этот адрес указывает на отсутствие адреса. Существует только один пример использования такого адреса: в поле «Адрес отправителя сообщения» в любых IPv6-пакетах, которые передаются сервером для собственной инициализации, еще до того как этот сервер узнает свой собственный IPv6-адрес.

Неустановленный адрес никогда не должен использоваться как «Адрес получателя» в IPv6-пакетах или в заголовках маршрутизации IPv6-пакетов. IPv6-пакет с неустановленным «Адресом отправителя сообщения» никогда не должен транслироваться IPv6-маршрутизатором.

2.5.3. Петлевые адреса

Однонаправленный IPv6-адрес 0:0:0:0:0:0:0:1 называется петлевым адресом. Этот адрес может использоваться IP-узлом для передачи IPv6-пакета «самому себе». Он не должен никогда присваиваться какому-либо физическому интерфейсу. Петлевой адрес интерпретируется как адрес, имеющий диапазон в рамках локального канала (линии) связи, и может восприниматься как однонаправленный адрес виртуального интерфейса в рамках локального канала (линии) связи (часто именуемый «петлевым интерфейсом»), а именно мнимой линии связи, которая идёт в «никуда».

Данный адрес никогда не должен использоваться в качестве «Адрес отправителя сообщения» в любых IPv6-пакетах, которые передаются одиночным IP-узлом. IPv6-пакет с петлевым адресом в поле «Адрес получателя» никогда не должен передаваться одиночным IP-узлом, а также никогда не должен транслироваться IPv6-маршрутизатором. Пакет с петлевым адресом в поле «Адрес получателя», поступивший на сетевой интерфейс, должен быть уничтожен.

2.5.4. Глобальные однонаправленные IPv6-адреса

Общий формат глобального однонаправленного IPv6-адреса представлена на рис.4.

|             n битов              |        m битов        |      128-n-m битов       |
+----------------------------------+-----------------------+--------------------------+
| Префикс глобальной маршрутизации | Идентификатор подсети | Идентификатор интерфейса |
+----------------------------------+-----------------------+--------------------------+
Рис.4. Общий формат глобального однонаправленного IPv6-адреса

Префикс глобальной маршрутизации (обычно имеет иерархическую структуру) присваивается группе подсетей (линий связи), а идентификатор подсети присваивается линии связи в рамках этой группы подсетей.

Все глобальные однонаправленные IPv6-адреса (за исключением тех, которые начинаются с нулевой последовательности 000 ) имеют 64-битовой поле «Идентификатор интерфейса» (то есть, n + m = 64). Глобальные однонаправленные IPv6-адреса, которые начинаются с нулевой последовательности 000 , имеют другую конструкцию и формат.

2.5.5. Смешанная форма адресов

Существуют два типа IPv6-адресов, которые содержат IPv4-адреса в 32 битах младшего порядка IPv6-адреса:

  • IPv6-адрес, совмещенный с IPv4-адресом;
  • IPv6-адрес, отображающий IPv4-адрес.
2.5.5.1. IPv6-адрес, совмещенный с IPv4-адресом

Это тип адреса был предназначен для поддержки процесса перехода от IPv4-адресации к IPv6-адресации. На рис.5 представлен формат IPv6-адреса, совмещённого с IPv4-адресом.

|               80 битов               | 16 битов |    32 бита     |
+--------------------------------------+---------------------------+
|0000..............................0000|   0000   |   IPv4-адрес   |
+--------------------------------------+----------+----------------+
Рис.5. Формат IPv6-адреса, совмещённого с IPv4-адресом

Замечание. IPv4-адрес, который используется в IPv6-адресе, совмещённом с IPv4-адресом, должен быть глобальным уникальным однонаправленным IPv4-адресом.

В настоящее время применение IPv6-адреса, совмещённого с IPv4-адресом, опротестовано, так как современные способы перехода к IPv6-адресации больше не используют такие адреса. Поэтому новые и усовершенствованные алгоритмы и способы маршрутизации могут не использовать этот тип IPv6-адресов.

2.5.5.2. IPv6-адрес, отображающий IPv4-адрес

В настоящее время определен второй тип IPv6-адреса, в который «вложен» IPv4-адрес. Этот тип IPv6-адреса используется согласования c IPv4-адресами в IP-узлах с IPv4-адресацией. На рис.6 представлен формат IPv6-адреса, отображающего IPv4-адрес.

|                80 битов              | 16 битов |    32 бита     |
+--------------------------------------+---------------------------+
|0000..............................0000|   FFFF   |   IPv4-адрес   |
+--------------------------------------+----------+----------------+
Рис.6. Формат IPv6-адреса, отображающего IPv4-адрес

В стандарте RFC-4038 представлены правила использования IPv6-адресов, отображающих IPv4-адреса.

2.5.6. Однонаправленные IPv6-адреса для локальных линий связи

Такие IPv6-адреса используются в пределах одной линии связи. На рис.7 представлен формат однонаправленного IPv6-адреса для локальной линии связи.

Данные адреса предназначены для использования для обозначения интерфейсов в рамках одного канала (линии) связи в следующих целях:

  • автоматическая настройка адресов;
  • поиск соседних IP-узлов;
  • отсутствие маршрутизаторов.
|  10 битов  |         54 бита         |         64 бита          |
+------------+-------------------------+--------------------------+
| 1111111010 |            0            | Идентификатор интерфейса |
+------------+-------------------------+--------------------------+
Рис.7. Формат однонаправленного IPv6-адреса для локальной линии связи

Маршрутизаторы никогда не должны транслировать в другие линии (каналы) связи какие-либо пакеты, содержащие в своих полях «Адрес отправителя сообщения» или «Адрес получателя» IPv6-адрес для локальной линии связи.

2.5.7. Однонаправленные IPv6-адреса для локальных групп подсетей

Такие адреса были специально разработаны для обозначения интерфейсов внутри группы подсетей без использования в них глобальных префиксов. Однако в настоящее время применение данных адресов опротестовано (RFC-3879).

На рис.8 представлен формат однонаправленного IPv6-адреса для локальных групп подсетей.

|  10 битов  |         54 бита         |         64 бита          |
+------------+-------------------------+--------------------------+
| 1111111011 |  Идентификатор подсети  | Идентификатор интерфейса |
+------------+-------------------------+--------------------------+
Рис.8. Формат однонаправленного IPv6-адреса для локальных групп подсетей

Специализированное применение этого префикса (RFC-3513) больше не должно использоваться во вновь создаваемых системах (то есть в новых сетях это префикс должен рассматриваться как глобальный однонаправленный IPv6-адрес).

В существующих сетях он может использоваться по-прежнему.

2.6. Альтернативные IPv6-адреса

Альтернативный IPv6-адрес представляет собой адрес, который присваивается нескольким сетевым интерфейсам (обычно принадлежащих различным IP-узлам). Переданный с таким адресом IP-пакет доставляется на один из сетевых интерфейсов (IP-узлов), имеющих такой адрес (то есть «ближайший» в соответствии с принятой метрикой протокола маршрутизации.

Альтернативные адреса выбираются из пространства однонаправленных IPv6-адресов, используя для этого один из возможных форматов однонаправленных адресов. Таким образом, альтернативные адреса, с точки зрения семантики, ничем не отличаются от однонаправленных адресов. Когда однонаправленный адрес присваивается нескольким сетевым интерфейсам, то он превращается в альтернативный адрес, а IP-узлы, которым присвоен этот адрес, должны однозначно «знать» (при их настройке), что такой адрес является альтернативным.

В любых назначаемых альтернативных адресах присутствует более длинный префикс Р , идентифицирующий топологический регион (сетевой сегмент), в котором постоянно присутствуют все интерфейсы, обозначенные альтернативными адресами с этим префиксом. Внутри региона, обозначенного префиксом Р , альтернативный адрес должен обслуживаться как выделенный компонент конкретной системы маршрутизации (обычно именуемый как главный маршрут — «host route»). За пределами региона, обозначенного префиксом Р , альтернативный адрес может быть объединен с префиксом Р в общий компонент маршрутизации.

Замечание. В наихудшем случае, префикс Р в группе альтернативных адресов может иметь нулевое значение, то есть адреса этой группы могут вообще не принадлежать топологическому сегменту. В таком случае, альтернативный адрес должен обслуживаться как выделенный компонент маршрутизации во всем пространстве Internet, в котором точно известно предельное число поддерживаемых «глобальных» групп альтернативных адресов. Более того, это предполагает, что обслуживание глобальных групп альтернативных адресов не допустимо или очень ограничено.

Предполагаемое использование альтернативных адресов заключается в следующем. Они могут применяться для идентификации группы маршрутизаторов, принадлежащей какой-либо организации, обеспечивающей функционирование Internet. Такие адреса могли бы использоваться как промежуточные адреса в заголовках маршрутизации IPv6-пакетов, для решения задачи доставки пакетов через систему соответствующего провайдера или группы провайдеров.

Другим возможным применением альтернативных адресов может быть идентификация группы маршрутизаторов, закрепленной за соответствующим сегментом сети, или группы маршрутизатором, обеспечивающих доступ к сегменту по соответствующему маршруту.

2.6.1. Востребованные альтернативные IPv6-адреса

В настоящее время определены альтернативные адреса для маршрутизаторов подсетей. Формат таких адресов представлен на рис.9.

|                n битов                |   128-n битов   |
+---------------------------------------+-----------------+
|            Префикс подсети            | 00000000000000  |
+---------------------------------------+-----------------+
Рис.9. Формат альтернативных IPv6-адресв для маршрутизаторов подсетей

«Префикс подсети» в альтернативном адресе представляет собой префикс, который идентифицирует конкретную (выделенную) линию связи. Такой альтернативный адрес, с точки зрения семантики, совпадает с однонаправленным адресом интерфейса для линии связи, у которой групповой идентификатор интерфейсов равен нулю.

IP-пакеты, переданные на альтернативный адрес для маршрутизатора подсети, будут транслироваться на один маршрутизатор конкретной подсети. Необходимо, чтобы все маршрутизаторы транслировали IP-пакеты с альтернативными адресами для маршрутизаторов подсетей в те подсети, в которых имеются интерфейсы с такими адресами.

Альтернативный адрес для маршрутизатора подсети предназначен для использования в тех реальных сетях, в которых IP-узлу необходимо иметь соединение хотя бы с одним маршрутизатором из группы маршрутизаторов, обслуживающих сеть.

2.7. Групповые IPv6-адреса

Групповой IPv6-адрес представляет собой идентификатор группы интерфейсов (обычно на различных IP-узлах). Интерфейс может иметь любое количество групповых IPv6-адресов. Формат таких адресов представлен на рис.10.

|     8 битов     |    4 бита     |  4 бита  |       112 битов        |
+-----------------+---------------+----------+------------------------+
|                 |     Флаги     |          |                        |
| 1 1 1 1 1 1 1 1 |---------------| Диапазон |  Идентификатор группы  |
|                 | 0 | R | P | T |          |                        |
+-----------------+---------------+----------+------------------------+
Рис.10. Формат групповых IPv6-адресов

Поля IPv6-адреса имеют следующие значения:

  • 8-битовое поле, состоящее из единиц

  • Указывает на то, что адрес является групповым IPv6-адресом;

  • 4-битовое поле «Флаги»

  • Старший бит поля зарезервирован и всегда должен быть нулевым. Назначение и правила использования бита R представлены в стандарте RFC-3956. Назначение и правила использования бита Р представлены в стандарте RFC-3306. Если бит Т имеет нулевое значение — это означает, что имеет место жестко закрепленный за кем-то или за чем-то (так называемый «всем (хорошо) известный» — «well-known») групповой IPv6-адрес, назначаемый IANA (Internet Assigned Numbers Authority). Если же бит Т имеет значение 1 — это означает, что имеет место временно закрепленный за кем-то или за чем-то («временно» или «динамически» назначаемый) групповой IPv6-адрес;

  • 4-битовое поле «Диапазон»

  • Это поле используется для характеристики (ограничения) диапазона используемого набора групповых адресов. Оно может принимать следующие значения:

    • 0 — зарезервировано;
    • 1 — в пределах локального интерфейса. Этот адрес перекрывает диапазон только одного сетевого интерфейса (петлевой интерфейс или интерфейс с петлевым адресом), и используется только для групповой передачи IPv6-пакетов по петлевому маршруту;
    • 2 — в пределах локальной линии связи. Этот адрес перекрывает диапазон в рамках одного и того же топологического пространства (сетевого сегмента) как диапазон соответствующих однонаправленных адресов;
    • 3 — зарезервировано;
    • 4 — в пределах зоны локального администрирования. Этот адрес перекрывает наименьший диапазон, который управляется администратором сети (подсети), то есть в данном случае идет речь об адресах, устанавливаемых «вручную» без каких-либо автоматизированных управляющих процедур (включая удаленные) или процедур, не связанных с настройкой групповых адресов;
    • 5 — в пределах локальной группы подсетей. Этот адрес предназначен для покрытия диапазона одиночной группы подсетей (конкретного сетевого сегмента);
    • 6 — назначение не определено («unassigned»). В этом случае (и последующих тоже) речь идет о том, что администраторам сетей (подсетей) разрешено использовать дополнительные диапазоны групповых адресов в сетевых сегментах, находящихся в зонах их ответственности;
    • 7 — назначение не определено;
    • 8 — в пределах зоны ответственности организации. Этот адрес предназначен для покрытия диапазона нескольких групп подсетей (конкретного сетевого сегмента), принадлежащих (находящихся в зоне ответственности) одной организации;
    • 9 — назначение не определено;
    • A — назначение не определено;
    • B — назначение не определено;
    • C — назначение не определено;
    • D — назначение не определено;
    • E — глобальный диапазон;
    • F — зарезервировано.
  • 112-битовое поле «Идентификатор группы».

  • Оно идентифицирует определённый набор групповых адресов, назначенных в постоянное или временное использование в рамках конкретного диапазона. Более подробное назначение и правила использования данного поля представлены в стандарте RFC-3306.

«Сущность» постоянно-назначенных групповых адресов заключается в их независимости от величины диапазона. Например, если группе серверов сетевого времени (NTP-серверы, Network Time Protocol) присвоен постоянный групповой IPv6-адрес с идентификатором группы 101 (шестнадцатеричный), то тогда:

  • FF01:0:0:0:0:0:0:101 означает, что все NTP-серверы в качестве отправителя сообщения имеют одинаковый идентификатор интерфейса (то есть один и тот же IP-узел);

  • FF02:0:0:0:0:0:0:101 означает, что все NTP-серверы в качестве отправителя сообщения имеют одинаковый идентификатор линии (канала) связи;

  • FF05:0:0:0:0:0:0:101 означает, что все NTP-серверы в качестве отправителя сообщения имеют одинаковый идентификатор группы подсетей (то есть сетевого сегмента);

  • FF0E:0:0:0:0:0:0:101 означает, что все NTP-серверы «размещены» в Internet.

Временно присваиваемые групповые номера имеют «смысл» только в пределах конкретного диапазона. Например, группе интерфейсов конкретного сетевого сегмента присвоен временный групповой адрес для локальной группы подсетей FF15:0:0:0:0:0:0:101 , причем этот сегмент никак не связан с аналогичным сегментом, группа интерфейсов которого использует тот же самый адрес, либо с другим сегментом, группа интерфейсов которого использует тот же самый идентификатор группы, но в другом диапазоне, либо с другим сегментом, группа интерфейсов которого использует постоянный групповой адрес, но с таким же идентификатором группы.

Групповые IPv6-адреса не должны использоваться как «Адрес отправителя сообщения» в IPv6-пакетах или присутствовать в каком-либо заголовке маршрутизации. Маршрутизаторы никогда не должны транслировать любые IPv6-пакеты с групповыми адресами, принадлежащим диапазону, который обозначен в поле «Диапазон» группового адреса, размещенного в поле «Адрес получателя».

IP-узлы никогда не должны отправлять пакеты с групповыми адресами в поле «Адрес отправителя сообщения», в котором поле «Диапазон» содержит зарезервированное нулевое значение. Если, тем не менее, такой пакет принят, он должен быть по умолчанию уничтожен. Целесообразно, чтобы IP-узлы никогда не отправляли пакеты с групповыми адресами в поле «Адрес отправителя сообщения», в котором поле «Диапазон» содержит зарезервированное значение F . Если, тем не менее, такой пакет принят, он должен восприниматься как IPv6-пакеты с глобальным групповым адресом (диапазон E ).

2.7.1. Предварительно назначенные групповые IPv6-адреса

К предварительно назначенным групповым IPv6-адресам относятся так называемые «всем (хорошо) известные» групповые адреса. Рассмотренные далее групповые идентификаторы имеют точные значения своих диапазонов.

Использование этих групповых идентификаторов в пределах любых других диапазонов запрещено, если флаг T имеет нулевое значение.

К зарезервированным групповым IPv6-адресам относятся следующие:

FF00:0:0:0:0:0:0:0
FF01:0:0:0:0:0:0:0
FF02:0:0:0:0:0:0:0
FF03:0:0:0:0:0:0:0
FF04:0:0:0:0:0:0:0
FF05:0:0:0:0:0:0:0
FF06:0:0:0:0:0:0:0
FF07:0:0:0:0:0:0:0
FF08:0:0:0:0:0:0:0
FF09:0:0:0:0:0:0:0
FF0A:0:0:0:0:0:0:0
FF0B:0:0:0:0:0:0:0
FF0C:0:0:0:0:0:0:0
FF0D:0:0:0:0:0:0:0
FF0E:0:0:0:0:0:0:0
FF0F:0:0:0:0:0:0:0

Эти адреса являются резервными и никогда не должны присваиваться какой-либо группе интерфейсов.

К групповым IPv6-адресам для всех IP-узлов относятся следующие:

FF01:0:0:0:0:0:0:1
FF02:0:0:0:0:0:0:1

Эти адреса идентифицируют группу, состоящую из всех IPv6-узлов, в которой адрес содержит поле «Диапазон» со значением 1 или 2 .

К групповым IPv6-адресам для всех маршрутизаторов относятся следующие:

FF01:0:0:0:0:0:0:2
FF02:0:0:0:0:0:0:2
FF05:0:0:0:0:0:0:2

Эти адреса идентифицируют группу, состоящую из всех IPv6-маршрутизаторов, в которой адрес содержит поле «Диапазон» со значением 1 , или 2 , или 5 .

К групповым IPv6-адресам запрашиваемых IP-узлов относятся следующие:

FF02:0:0:0:0:1:FFXX:XXXX

Эти адреса вычисляются как функция однонаправленных и альтернативных адресов IP-узлов. Групповой IPv6-адрес запрашиваемых IP-узлов формируется следующим образом: 24 младших бита адреса (однонаправленного и альтернативного) присоединяются к префиксу FF02:0:0:0:0:1:FF00::/104 и в результате имеем следующий диапазон групповых адресов:

FF02:0:0:0:0:1:FF00:0000
до
FF02:0:0:0:0:1:FFFF:FFFF

Например, IPv6-адресу 4037::010:200E:8C6C соответствует следующий групповой IPv6-адрес запрашиваемых IP-узлов: FF02::1:FF0E:8C6C . IPv6-адреса, которые отличаются только старшими битами (например, в следствии использовании нескольких префиксов, относящимся к различным составным адресам), будут преобразовываться в точно такой же IPv6-адрес запрашиваемых IP-узлов, вследствие снижения числа групповых адресов, которые должны принадлежать одному IP-узлу.

IP-узел необходим для вычисления и объединения (по соответствующим интерфейсам) соответствующих групповых IPv6-адресов запрашиваемых IP-узлов для всех однонаправленных и альтернативных адресов, которые были присвоены интерфейсам этого IP-узла (вручную или автоматически).

2.8. IPv6-адреса, которые IP-узел должен распознавать

Сервер должен распознавать следующие адреса, идентифицирующие этот сервер:

  • Его обязательный IPv6-адрес для локальной линии связи на каждом интерфейсе.

  • Любые дополнительные однонаправленные и альтернативные адреса, которые присвоены интерфейсам узла (вручную или автоматически).

  • Петлевой адрес.

  • Групповые IPv6-адреса для всех IP-узлов (см. 2.7.1).

  • Групповой IPv6-адрес запрашиваемых IP-узлов для каждого его однонаправленного и альтернативного адресов.

  • Групповые адреса всех других групп интерфейсов, к которым принадлежит IP-узел.

Маршрутизатор должен распознавать все те адреса, которые дожжен распознавать сервер, а также следующие адреса, идентифицирующие этот маршрутизатор:

  • Альтернативный IPv6-адрес маршрутизатора локальной группы подсетей для всех интерфейсов, в которых он указан как маршрутизатор.

  • Любые другие альтернативные адреса, которые указаны в настройках маршрутизатора.

  • Групповые IPv6-адреса для всех маршрутизаторов (см. 2.7.1).

3. Вопросы безопасности

IPv6 addressing documents do not have any direct impact on Internet infrastructure security. Authentication of IPv6 packets is defined in [AUTH].

4. Согласование с IANA

The «IPv4-Compatible IPv6 address» is deprecated by this document. The IANA should continue to list the address block containing these addresses at http://www.iana.org/assignments/ipv6-address-space as «Reserved by IETF» and not reassign it for any other purpose. For example:

0000::/8        Reserved by IETF        [RFC3513]      [1]

The IANA has added the following note and link to this address block.

[5]  0000::/96 was previously defined as the «IPv4-Compatible IPv6
     address» prefix.  This definition has been deprecated by RFC
     4291.

The IANA has updated the references for the IPv6 Address Architecture in the IANA registries accordingly.

5. Благодарности

The authors would like to acknowledge the contributions of Paul Francis, Scott Bradner, Jim Bound, Brian Carpenter, Matt Crawford, Deborah Estrin, Roger Fajman, Bob Fink, Peter Ford, Bob Gilligan, Dimitry Haskin, Tom Harsch, Christian Huitema, Tony Li, Greg Minshall, Thomas Narten, Erik Nordmark, Yakov Rekhter, Bill Simpson, Sue Thomson, Markku Savela, Larry Masinter, Jun-ichiro Itojun Hagino, Tatuya Jinmei, Suresh Krishnan, and Mahmood Ali.

6. Ссылки

6.1. Нормативные документы

[IPV6] Deering, S. и R. Hinden, «Спецификация протокола IPv6», RFC 2460, Декабрь 1998.

6.2. Дополнительная литература

[AUTH] Kent, S. и R. Atkinson, «IP Authentication Header», RFC 2402, Ноябрь 1998.
[CIDR] Fuller, V., Li, T., Yu, J., and K. Varadhan, «Classless Inter-Domain Routing (CIDR): an Address Assignment and Aggregation Strategy», RFC 1519, Сентябрь 1993.
[ETHER] Crawford, M., «Transmission of IPv6 Packets over Ethernet Networks», RFC 2464, Декабрь 1998.
[EUI64] IEEE, «Guidelines for 64-bit Global Identifier (EUI-64) Registration Authority», http://standards.ieee.org/regauth/oui/tutorials/EUI64.html, Март 1997.
[FDDI] Crawford, M., «Transmission of IPv6 Packets over FDDI Networks», RFC 2467, Декабрь 1998.
[GLOBAL] Hinden, R., Deering, S., and E. Nordmark, «IPv6 Global Unicast Address Format», RFC 3587, Август 2003.
[PRIV] Narten, T. и R. Draves, «Privacy Extensions for Stateless Address Autoconfiguration in IPv6», RFC 3041, Январь 2001.
[RFC3513] Hinden, R. и S. Deering, «Internet Protocol Version 6 (IPv6) Addressing Architecture», RFC 3513, Апрель 2005.
[RFC3306] Haberman, B. и D. Thaler, «Unicast-Prefix-based IPv6 Multicast Addresses», RFC 3306, Август 2002.
[RFC3956] Savola, P. и B. Haberman, «Embedding the Rendezvous Point (RP) Address in an IPv6 Multicast Address», RFC 3956, Ноябрь 2004.
[RFC4038] Shin, M-K., Hong, Y-G., Hagino, J., Savola, P., and E. Castro, «Application Aspects of IPv6 Transition», RFC 4038, Март 2005.
[SLDEP] Huitema, C. и B. Carpenter, «Deprecating Site Local Addresses», RFC 3879, Сентябрь 2004.

Приложение A: Creating Modified EUI-64 Format Interface Identifiers

Depending on the characteristics of a specific link or node, there are a number of approaches for creating Modified EUI-64 format interface identifiers. This appendix describes some of these approaches.

Links or Nodes with IEEE EUI-64 Identifiers

The only change needed to transform an IEEE EUI-64 identifier to an interface identifier is to invert the u (universal/local) bit. An example is a globally unique IEEE EUI-64 identifier of the form:

|0              1|1              3|3              4|4              6|
|0              5|6              1|2              7|8              3|
+----------------+----------------+----------------+----------------+
|cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+

where c is the bits of the assigned company_id, 0 is the value of the universal/local bit to indicate universal scope, g is individual/group bit, and m is the bits of the manufacturer-selected extension identifier. The IPv6 interface identifier would be of the form:

|0              1|1              3|3              4|4              6|
|0              5|6              1|2              7|8              3|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+

The only change is inverting the value of the universal/local bit.

Links or Nodes with IEEE 802 48-bit MACs

[EUI64] defines a method to create an IEEE EUI-64 identifier from an IEEE 48-bit MAC identifier. This is to insert two octets, with hexadecimal values of 0xFF and 0xFE (see the Note at the end of appendix), in the middle of the 48-bit MAC (between the company_id and vendor-supplied id). An example is the 48-bit IEEE MAC with Global scope:

|0              1|1              3|3              4|
|0              5|6              1|2              7|
+----------------+----------------+----------------+
|cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+

where c is the bits of the assigned company_id, 0 is the value of the universal/local bit to indicate Global scope, g is individual/group bit, and m is the bits of the manufacturer-selected extension identifier. The interface identifier would be of the form:

|0              1|1              3|3              4|4              6|
|0              5|6              1|2              7|8              3|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|cccccccc11111111|11111110mmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+

When IEEE 802 48-bit MAC addresses are available (on an interface or a node), an implementation may use them to create interface identifiers due to their availability and uniqueness properties.

Links with Other Kinds of Identifiers

There are a number of types of links that have link-layer interface identifiers other than IEEE EUI-64 or IEEE 802 48-bit MACs. Examples include LocalTalk and Arcnet. The method to create a Modified EUI-64 format identifier is to take the link identifier (e.g., the LocalTalk 8-bit node identifier) and zero fill it to the left. For example, a LocalTalk 8-bit node identifier of hexadecimal value 0x4F results in the following interface identifier:

|0              1|1              3|3              4|4              6|
|0              5|6              1|2              7|8              3|
+----------------+----------------+----------------+----------------+
|0000000000000000|0000000000000000|0000000000000000|0000000001001111|
+----------------+----------------+----------------+----------------+

Note that this results in the universal/local bit set to 0 to indicate local scope.

Links without Identifiers

There are a number of links that do not have any type of built-in identifier. The most common of these are serial links and configured tunnels. Interface identifiers that are unique within a subnet prefix must be chosen.

When no built-in identifier is available on a link, the preferred approach is to use a universal interface identifier from another interface or one that is assigned to the node itself. When using this approach, no other interface connecting the same node to the same subnet prefix may use the same identifier.

If there is no universal interface identifier available for use on the link, the implementation needs to create a local-scope interface identifier. The only requirement is that it be unique within a subnet prefix. There are many possible approaches to select a subnet-prefix-unique interface identifier. These include the following:

  • Manual Configuration
  • Node Serial Number
  • Other Node-Specific Token

The subnet-prefix-unique interface identifier should be generated in a manner such that it does not change after a reboot of a node or if interfaces are added or deleted from the node.

The selection of the appropriate algorithm is link and implementation dependent. The details on forming interface identifiers are defined in the appropriate «IPv6 over <link>» specification. It is strongly recommended that a collision detection algorithm be implemented as part of any automatic algorithm.

Note: [EUI-64] actually defines 0xFF and 0xFF as the bits to be inserted to create an IEEE EUI-64 identifier from an IEEE MAC-48 identifier. The 0xFF and 0xFE values are used when starting with an IEEE EUI-48 identifier. The incorrect value was used in earlier versions of the specification due to a misunderstanding about the differences between IEEE MAC-48 and EUI-48 identifiers.

This document purposely continues the use of 0xFF and 0xFE because it meets the requirements for IPv6 interface identifiers (i.e., that they must be unique on the link), IEEE EUI-48 and MAC-48 identifiers are syntactically equivalent, and that it doesn't cause any problems in practice.

Приложение B: Changes from RFC 3513

The following changes were made from RFC 3513, «IP Version 6 Addressing Architecture»:

  • The restrictions on using IPv6 anycast addresses were removed because there is now sufficient experience with the use of anycast addresses, the issues are not specific to IPv6, and the GROW working group is working in this area.

  • Deprecated the Site-Local unicast prefix. Changes include the following:

    • Removed Site-Local from special list of prefixes in Section 2.4.

    • Split section titled «Local-use IPv6 Unicast Addresses» into two sections, «Link-Local IPv6 Unicast Addresses» and «Site-Local IPv6 Unicast Addresses».

    • Added text to new section describing Site-Local deprecation.

  • Changes to resolve issues raised in IAB response to Robert Elz appeal. Changes include the following:

    • Added clarification to Section 2.5 that nodes should make no assumptions about the structure of an IPv6 address.

    • Changed the text in Section 2.5.1 and Appendix A to refer to the Modified EUI-64 format interface identifiers with the u bit set to one (1) as universal.

    • Added clarification to Section 2.5.1 that IPv6 nodes are not required to validate that interface identifiers created in Modified EUI-64 format with the u bit set to one are unique.

  • Changed the reference indicated in Section 2.5.4 «Global Unicast Addresses» to RFC 3587.

  • Removed mention of NSAP addresses in examples.

  • Clarified that the x in the textual representation can be one to four digits.

  • Deprecated the «IPv6 Compatible Address» because it is not being used in the IPv6 transition mechanisms.

  • Added the R and P flags to Section 2.7 on multicast addresses, and pointers to the documents that define them.

  • Editorial changes.

2007 - 2022 © Русские переводы RFC, IETF, ISOC.