Network Education
КаталогГлоссарийПрогресс
Протокол IPv6
  1. 1Программа курса
  2. 2Общие сведения
  3. 3Принципы работы
  4. 4Формат заголовка IPv6
  5. 5DNS в сетях IPv6
  6. 6Протокол ICMPv6
  7. 7Протокол DHCPv6
  8. 8Подключение к интернету
  9. 9Переходные технологии
  10. 10Закат IPv4
Каталог/Сетевые основы/Протокол IPv6/Принципы работы

Принципы работы

3Урок 3 из 10

О чём этот урок

Типы взаимодействия (unicast, multicast, anycast), формат 128-битного адреса, типы адресов (global unicast, unique local, link-local) и способы генерации Interface ID.

Ключевые выводы

  • В IPv6 на одном интерфейсе нормально иметь несколько адресов разных типов (link-local + global unicast + unique local), и протокол автоматически выбирает нужный адрес источника
  • Unique local адреса (fd00::/8) не выходят в интернет и не NATятся — для доступа наружу нужен отдельный global unicast адрес на том же интерфейсе
  • Modified EUI-64 легко опознать по токену FF:FE на границе 6-й и 7-й групп адреса; он вычисляется из MAC-адреса с инверсией 7-го бита
  • Subnet-router anycast (Interface ID = все нули) позволяет нескольким маршрутизаторам обслуживать один адрес, обеспечивая штатную отказоустойчивость
  • Адреса имеют конечное время жизни: preferred lifetime определяет период активного использования, valid lifetime — момент полного удаления

Проверьте себя

Вопрос 1 из 6

Сколько адресов разных типов обычно имеет один интерфейс в IPv6?

Вопрос 2 из 6

Могут ли unique local адреса (fd00::/8) использоваться для доступа в интернет?

Вопрос 3 из 6

Как распознать адрес, сгенерированный методом Modified EUI-64?

Вопрос 4 из 6

Что такое Subnet-router anycast адрес?

Вопрос 5 из 6

Что определяют lifetime-параметры IPv6-адреса (preferred и valid)?

Вопрос 6 из 6

Какие три типа взаимодействия существуют в IPv6?

🔗Связанные уроки

⚠️Сначала посмотрите

Бесклассовая адресацияПротокол IPv4
→

Адресация IPv6 строится на понимании масок и префиксов из IPv4

DNS в сетях IPv6Протокол IPv6
→

DNS для IPv6 требует знания формата адресов и типов адресов IPv6

🔗Смотрите также

Введение в IPv6Cisco ICND1: основы сетей и Cisco IOS
→

Архитектура адресации IPv6: типы адресов и SLAAC — та же тема в контексте CCNA

⏩Продолжение темы

Настройка и особенности IPv6 на устройствах CiscoCisco ICND1: основы сетей и Cisco IOS
→

После теории IPv6 — практическая настройка на Cisco IOS

Общие сведенияФормат заголовка IPv6

Транскрипция

Эта серия посвящена работе протокола IPv6 в целом. Мы не будем вникать в детали, а проговорим, как происходит взаимодействие: что случается, когда мы пытаемся отправить пакет, какие адреса будут использоваться.

Отсутствие broadcast

Для начала вспомним, что широковещательных рассылок (broadcast) в IPv6 больше нет. То, что в IPv4 были broadcast-ы, в IPv6 как класс отсутствует. Все, что можно было сделать с помощью broadcast, можно сделать и с помощью multicast.

В IPv4 multicast приделали потом, сбоку. На самом деле был протокол IPv5, который рассказывал про то, как должен выглядеть multicast. IPv4 изначально был unicast-овый, а IPv5 изначально был multicast-овый. Потом взяли, объединили: наработки рабочей группы IPv5 сказали — вот вам адресное пространство класса D, вот вы там и веселитесь. И multicast приехал в IPv4.

В IPv6 multicast является частью стандарта. Его не сбоку сделали, а он прямо основной. Основное взаимодействие в IPv6 — одно из двух: unicast или multicast. Третий тип — anycast.

Unicast

При unicast вы используете одноадресную передачу: указываете единственный адрес, отправляете пакет, и говорите — ровно один участник, ровно тот, которому я это написал, должен это получить. Примерно как если бы вы отправляли письмо Иванову Василию Петровичу и указывали его паспорт — тогда только тот, кто обладает таким паспортом, сможет такой пакет получить.

Multicast

Если вы используете multicast, или многоадресную передачу на группу, то вы отправляете пакет и указываете, что заранее не знаете, кто его должен получить, но определяете признак, по которому получатель должен обрабатывать содержимое. Например, можно отправить IP-пакет на multicast-группу «все роутеры» или на группу «все получатели первого канала». Вы отправляете один пакет, а его получают сразу несколько абонентов, но не все.

В IPv4 multicast-группа «вообще все» была 224.0.0.1, но она изначально была придумана как часть отдельного протокола и в IPv4 вошла позже. Поэтому есть узлы IPv4, которые multicast не поддерживают, и трафик на 224.0.0.1 такие узлы могут не обрабатывать. А в IPv6 группа «вообще все» в пределах канала, в пределах организации или даже в пределах интернета — это штатная часть протокола.

Многоадресную передачу можно проиллюстрировать следующей аналогией. Вы идете по улице и видите на входе в подъезд объявление: «Дорогие жители первого этажа, пожалуйста, завесьте двери в ваших квартирах, потому что мы будем красить этаж». Через этот подъезд может пройти много разных жителей разных этажей, но жители первого этажа поймут — это им. Они прочитают сообщение и обработают содержимое. Жители второго этажа «зажмурятся» и пройдут мимо — это не им.

Multicast экономит полосу при отправке данных. Типичный пример — телевещание. У вас есть источник трафика, сервер какого-то телеканала. Для отправки трафика всем слушателям есть два варианта:

  • Отправить каждому unicast-овую копию — много-много одинаковых кадров каждому абоненту
  • Отправлять один multicast-пакет, и он на уровне сети разбредается по всем получателям

Multicast-пакеты могут маршрутизироваться. Роутер понимает, что у него есть слушатели multicast-группы за одним интерфейсом и за другим, делает копии и рассылает. Вы отправляете один пакет, а каждый получатель, даже если он не в одной сети с отправителем, получит свою копию.

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

Anycast

В anycast-взаимодействии (альтернативная передача) вы отправляете IPv6-пакет, и он доставляется до единственного получателя — примерно как unicast. Но тот IP-адрес, который принадлежит получателю, принадлежит ещё и некоторым другим узлам. У нескольких узлов один и тот же IP-адрес, вы отправляете пакет, и он доставляется ровно до одного участника — ближайшего.

В IPv4 такое взаимодействие было, но оно было пристёгнуто сбоку — не являлось частью стандарта. В IPv6 anycast является частью стандарта.

Для чего полезен anycast? Например, для уменьшения времени реакции. У вас есть пачка DNS-серверов, и вы хотите нащупать ближайший. Отправляете пакет на хорошо известный адрес DNS-сервера, и сеть доставляет его до ближайшего сервера.

Почему нельзя сделать то же самое с multicast? Потому что в multicast все получают копию пакета. Если отправлять DNS-запросы multicast-ом на пачку серверов, все серверы получат запрос и все начнут отвечать. Вам вернётся пачка ответов, а вам достаточно одного.

Anycast очень похож на unicast, за одним исключением: в unicast каждый адрес должен принадлежать ровно одному узлу, а в anycast адрес может принадлежать нескольким узлам, но трафик всегда будет ходить именно на один. Anycast использует подмножество unicast-адресов, поэтому их сходство не случайно.


Unicast-адреса IPv6

Множество адресов на интерфейсе

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

Unicast-адреса должны быть уникальными в пределах какой-то части сети:

  • Global unicast — уникальны в пределах интернета
  • Unique local — уникальны в пределах вашего сайта/организации
  • Link-local — уникальны в пределах канала

По стандарту все адреса, кроме link-local, обязаны быть уникальными в пределах всей сети.

Уникальность адресов: уроки IPv4

В IPv4 были публичные и частные адреса. Публичные гарантированно уникальные в интернете, потому что использовался механизм, при котором IANA раздавала пачки адресов региональным регистраторам, те — локальным регистраторам, те — провайдерам, провайдеры — абонентам. Каждый уровень следил за тем, чтобы адреса не пересекались.

В IPv6 некоторые адреса будут назначаться так же — через IANA, региональных и локальных регистраторов. А некоторые адреса можно взять случайным образом, и за счёт того, что адресное пространство очень рыхлое, вы можете быть относительно уверены, что случайно придуманные адреса ни у кого больше не встретятся.

Классический пример проблемы неуникальных адресов — покупка Instagram компанией Facebook. У них были пересекающиеся адресные пространства (одинаковые частные сети), и при объединении сетей возникли серьёзные проблемы.


Формат IPv6-адреса

128 бит

Адрес IPv6 имеет размер 128 бит. Это в 4 раза длиннее IPv4-адреса. Записываются IPv6-адреса в шестнадцатеричном виде: 8 групп по 4 шестнадцатеричных цифры, разделённых двоеточиями.

Полный вид IPv6-адреса:

2001:0db8:b16b:00b5:0000:0000:0000:0001

IPv6-адрес — это просто число. Кстати, в IPv4 не было стандартного способа записи адреса, а в IPv6 — есть, и он именно такой.

Сокращение записи: правило 1 — ведущие нули

Если группа начинается с нулей, ведущие нули в каждой группе можно опустить. Если группа полностью нулевая (0000), её можно сократить до одного нуля (0).

2001:0db8:b16b:00b5:0000:0000:0000:0001
                    ↓
2001:db8:b16b:b5:0:0:0:1

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

Сокращение записи: правило 2 — двойное двоеточие

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

2001:db8:b16b:b5:0:0:0:1
          ↓
2001:db8:b16b:b5::1

Для восстановления полной записи считаем, сколько групп есть (в примере — 5), определяем, скольких не хватает до 8 (трёх), и вставляем недостающие нулевые группы на место ::.

Не надо пугаться длинных адресов. Длинные адреса — это хорошо: адресов много, и проблем IPv4, связанных с недостатком адресов, в IPv6 нет.


Структура адреса: Network ID и Interface ID

Как и в IPv4, адрес делится на две части:

Часть Описание
Network ID (левая) Общая для всех узлов в канале
Interface ID (правая) Уникальный идентификатор интерфейса в канале

В IPv4 правая часть называлась Host ID, но это было не совсем корректно — она была уникальна для интерфейса, а не для хоста. В IPv6 название стало правильным: Interface ID.

Граница задаётся маской (префиксом). Например:

2001:db8:b16b:b5::1/64

Левые 64 бита — Network ID (4 группы по 16 бит), правые 64 бита — Interface ID.

Рекомендация: /64 для канальных сетей

В большинстве случаев для конечных абонентов используются /64 сети. Это рекомендация, а не обязательное требование, но некоторые механизмы IPv6 хорошо работают именно с /64.

Если назначать /64 на все каналы — это не всегда эффективно. Например, на point-to-point каналах (туннели, PPP, GRE) допустимо использовать /127 сети — по аналогии с /31 масками в IPv4 (RFC 3031). Изначально авторы IPv6 хотели везде использовать /64, но сетевые администраторы попросили разрешить /127 для point-to-point линков, и IETF согласилась.

Можно использовать и /128 маску — например, на loopback-интерфейсах.

Префиксная запись

Запись вида 2001:db8::/32 означает: все IP-адреса, у которых левые 32 бита совпадают с 2001:0db8, относятся к этой сети.

Loopback в IPv6

В IPv4 была целая сеть 127.0.0.0/8 для loopback — огромная /8-я сетка, целиком не задействованная. В IPv6 loopback-адрес ровно один:

::1/128

Если нужно запускать несколько приложений на разных адресах для себя — используйте multicast.

Адрес «все нули»

Адрес :: (128 нулевых бит) используется, когда узел не знает своего адреса. Например, при взаимодействии с DHCPv6, когда вы хотите получить адрес, пакет отправляется с адреса источника ::.


Типы адресов в IPv6

Global Unicast

Global unicast — адреса, маршрутизируемые в интернете. Полный аналог публичных адресов IPv4. Начинаются с битов 001, то есть с 2000::/3.

Если вы видите адрес, начинающийся на 2 или 3 (в hex) — он глобальный unicast, маршрутизируемый в интернете.

Иерархия распределения global unicast

Уровень Типичная маска Описание
IANA → RIR /23 (и крупнее) Региональные интернет-регистраторы (RIPE, ARIN и др.)
RIR → LIR /32 Локальные интернет-регистраторы (крупные провайдеры)
LIR → Клиент (юрлицо) /48 или /56 Конечные клиенты-организации
Клиент → Канал /64 Конечные канальные сети
LIR → Физлицо /64 Конечный абонент

Изначально клиентам выдавали /48 (65 536 подсетей /64), но IANA затянула гайки и рекомендовала /56 (256 подсетей /64). Этого более чем достаточно для большинства сценариев.

Структура global unicast адреса (пример с /64):

|  RIR   |   LIR   | Клиент | Subnet |   Interface ID   |
|  /23   |   /32   |  /48   |  /64   |     64 бита      |

Такая иерархия позволяет агрегировать маршруты: клиент анонсирует свою /56, LIR — свой /32 блок, RIR — свой /23. По первым битам адреса можно определить, какому региональному регистратору он принадлежит.

Unique Local Address (ULA)

Unique local адреса — аналог частных адресов из RFC 1918 в IPv4 (сети 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16). Их можно использовать без согласования с IANA.

Блок: fc00::/7, который делится на две части:

Блок Статус
fc00::/8 Зарезервирован под управляемые IANA адреса. По факту не используется — IANA так и не запустила этот механизм
fd00::/8 Используется. Адреса генерируются самостоятельно

Для генерации ULA по RFC нужно:

  1. Взять серийный номер железки, время в Unix-формате
  2. Посчитать от всего этого хеш
  3. Получить 40 бит, приклеить к fd
  4. Получится уникальная /48 сеть

По факту все на это кладут болт и берут красивую сетку, например fd00::/64, потому что эти адреса всё равно не выходят в интернет.

Пример красивого ULA-адреса:

fd00::1

Короче, чем практически любой адрес IPv4, и легко запоминается.

В IPv6 нет NAT

В IPv6 NAT нет. Эти адреса нельзя выпустить в интернет. В IPv4 можно было «занатить» частные адреса, в IPv6 — нельзя. Если вы из-под ULA-адреса отправите пакеты в интернет, провайдер их зарежет.

Если нужен и ULA, и доступ в интернет — назначайте на интерфейс два адреса: один unique local, другой global unicast. Это нормальная ситуация в IPv6 — на одном интерфейсе целая пачка адресов.

При взаимодействии IPv6 автоматически выбирает нужный адрес источника:

  • Сосед unique local → используется ваш unique local адрес
  • Сосед global unicast → используется ваш global unicast адрес

Link-Local Unicast

Link-local адреса — адреса, уникальные только в пределах канала. Не маршрутизируются вообще.

Блок: fe80::/10, но на практике всегда fe80::/64.

В IPv4 был похожий механизм — APIPA (Automatic Private IP Addressing), сеть 169.254.0.0/16. Если DHCP-сервер не отвечал, узлы автоматически придумывали себе адреса из этой сети. Но в IPv4 это был пристёгнутый сбоку механизм, а в IPv6 — штатный.

Особенности link-local адресов:

  • Обязаны быть на любом IPv6-интерфейсе
  • Генерируются автоматически (не нужно назначать вручную)
  • Не обязаны быть уникальными в пределах вселенной — только в пределах канала
  • В разных каналах у разных узлов link-local адреса могут совпадать

Zone ID (указание интерфейса)

Поскольку link-local адреса могут совпадать в разных каналах, при работе с ними нужно указывать интерфейс (zone index) через символ %:

  • Cisco: ping fe80::1%GigabitEthernet0/1
  • Windows: ping fe80::1%8 (номер интерфейса)

Применение link-local адресов

Используются для служебных задач: протоколы динамической маршрутизации (OSPF, EIGRP), обнаружение соседей и т.д. — взаимодействие между узлами, гарантированно находящимися в одном канале.

Как минимум на любом IPv6-интерфейсе будет link-local адрес. Если нужна маршрутизация — добавляется global unicast (и, возможно, unique local).

Site-Local (deprecated)

Сетка fec0::/10 — адреса, маршрутизируемые в пределах сайта. Deprecated с 2004 года. Тем не менее до сих пор всплывают в некоторых реализациях, в частности Windows использует site-local адреса для DNS.

Пример: fec0:0:0:ffff::1%1

Использовать не нужно.


Interface ID: схемы генерации

Правые 64 бита адреса (при /64 сети) — Interface ID. Можно назначить вручную, но удобнее, когда узлы придумывают их сами.

Зарезервированные значения:

  • Все биты = 0 (первый адрес) — зарезервирован под anycast (subnet-router anycast)
  • Последние 128 значений — тоже зарезервированы под anycast

Modified EUI-64

Самая простая схема. Берётся MAC-адрес (EUI-48, 48 бит) и превращается в 64-битный идентификатор:

  1. MAC-адрес делится пополам (OUI | Vendor Assigned)
  2. Между половинками вставляется токен FF:FE (16 бит)
  3. Получается идентификатор EUI-64
  4. Для Modified EUI-64 инвертируется U/L бит (7-й бит, почти самый младший бит первого байта)

Смысл инверсии U/L бита: если MAC-адрес заводской (U/L = 0), то Modified EUI-64 получается «некрасивый». Если MAC назначен вручную (U/L = 1), то после инверсии бит становится 0, и IPv6-адрес получается более компактным и красивым.

Пример для заводского MAC 78:84:3C:EB:4F:C7:

MAC:            78:84:3C:EB:4F:C7
Разделили:      78:84:3C | EB:4F:C7
Вставили FFFE:  78:84:3C:FF:FE:EB:4F:C7
Флип U/L бита:  78 → 7A (0111 1000 → 0111 1010)
Modified EUI-64: 7A:84:3C:FF:FE:EB:4F:C7

Характерный признак EUI-64 — токен FF:FE на границе 6-й и 7-й групп адреса. Если видите его — скорее всего, адрес сгенерирован по Modified EUI-64.

Для получения полного IPv6-адреса Modified EUI-64 приклеивается к Network ID:

Сеть:      2001:db8:b16b:b5::/64
+ EUI-64:  7a84:3cff:feeb:4fc7
= Адрес:   2001:db8:b16b:b5:7a84:3cff:feeb:4fc7

Источники данных для EUI-64

Если MAC-адреса нет (например, serial link с PPP), можно взять:

  • MAC-адрес с другого интерфейса
  • Серийный номер устройства
  • Время в Unix-формате (менее надёжно — меняется при перезагрузке)

Другие схемы генерации Interface ID

  • Privacy Extensions (RFC 4941) — хеш от EUI-64 + случайное число. MAC-адрес нельзя вычислить, но результат стабильный для одного и того же MAC
  • CGA (Cryptographically Generated Addresses) — Interface ID генерируется из пары открытый/закрытый ключ. Позволяет доказать, что отправитель — именно тот, за кого себя выдаёт
  • DAD (Duplicate Address Detection) — перед использованием любого адреса проверяется, нет ли такого у кого-то ещё

Multicast-адреса в IPv6

Все multicast-адреса входят в блок ff00::/8. Видите адрес, начинающийся с ff — это multicast.

Структура multicast-адреса

FF [флаги][scope] : [идентификатор группы — 112 бит]
  • Флаги (4 бита): Rendezvous Point, временный multicast и др.
  • Scope (4 бита): область видимости

Области видимости (scope)

Значение Область Описание
1 Interface-local В пределах интерфейса (аналог 127.0.0.0/8)
2 Link-local В пределах канала (не маршрутизируется, аналог 224.0.0.0/24)
4 Admin-local В пределах сайта (административная граница)
5 Site-local В пределах сайта
8 Organization-local В пределах организации
E Global В пределах интернета

Scope для unicast-адресов:

Тип адреса Scope
Link-local 2 (канал)
Unique local 8 (организация)
Global unicast E (интернет)

Примеры multicast-адресов

Адрес Описание Аналог в IPv4
ff02::1 Все узлы в пределах канала 224.0.0.1
ff02::2 Все маршрутизаторы в пределах канала 224.0.0.2
ff02::5 OSPF 224.0.0.5
ff02::6 OSPF DR 224.0.0.6

IPv6 поверх Ethernet

При работе IPv6 поверх Ethernet:

  • Interface ID вычисляется по Modified EUI-64 (или другим механизмам) из MAC-адреса
  • Используется формат кадра Ethernet II с Ethertype 0x86DD
  • Обнаружение соседей — механизм Neighbor Discovery (ICMPv6), использующий multicast

Multicast MAC-адрес

Для получения Ethernet MAC из multicast IPv6-адреса:

Префикс: 33:33 (16 бит)
+ последние 32 бита IPv6-адреса

Пример:

IPv6:  ff02::1
MAC:   33:33:00:00:00:01

Преимущество: не нужно заранее узнавать MAC для multicast — он вычисляется из IPv6-адреса.


Anycast в IPv6

В IPv4 anycast был пристёгнут сбоку (использовалась сетка 192.88.99.0/24). В IPv6 anycast — полноценная часть протокола.

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

Subnet-Router Anycast

Самый первый адрес в /64 сети (Interface ID = все нули) — это subnet-router anycast-адрес. Например, fd00:: в сети fd00::/64. Его можно назначить одному роутеру или нескольким — тогда трафик клиентов будет направляться на ближайший.

Для предотвращения конфликтов при anycast нужно отключить DAD (Duplicate Address Detection) на соответствующих интерфейсах.


Жизненный цикл адреса

Все динамически назначенные адреса имеют жизненный цикл:

[Создание] → DAD → Tentative → Preferred → Deprecated → Invalid

Состояния адреса

  1. Tentative — адрес придуман, проходит проверку DAD (Duplicate Address Detection). Использовать пока нежелательно
  2. Preferred — DAD пройден, адрес подтверждён как уникальный. Полноценное использование. Действует в течение preferred lifetime
  3. Deprecated — preferred lifetime истёк, подтверждение не получено. Имеющиеся подключения продолжают работать, но новые устанавливать нельзя. Действует в течение valid lifetime
  4. Invalid — valid lifetime истёк. Адрес больше не используется

Обновление таймеров

Если маршрутизатор повторно присылает анонс (Router Advertisement) с указанием той же сети:

  • Из preferred — таймер preferred lifetime сбрасывается
  • Из deprecated — адрес возвращается в preferred

Если анонсы прекращаются — адрес проходит через deprecated и становится invalid.


Итоги

  • В IPv6 три типа взаимодействия: unicast, multicast, anycast
  • Адрес — 128 бит, записывается в hex, сокращается двумя правилами
  • На интерфейсе нормально иметь несколько адресов разных типов
  • Global unicast (2000::/3) — для интернета
  • Unique local (fd00::/8) — для внутренних сетей, NAT нет
  • Link-local (fe80::/64) — для канала, генерируется автоматически
  • Interface ID генерируется по Modified EUI-64 или другим схемам
  • У адресов есть жизненный цикл: tentative → preferred → deprecated → invalid

В следующем разделе разберём устройство заголовка IPv6, его сходства и различия с IPv4.

Network Education

Бесплатная онлайн-академия сетевых технологий. Видеоуроки, транскрипции и структурированные треки обучения — от основ до продвинутого уровня.

ТрекиКаталогО проекте
© 2026 Network Education