IPv6 для начинающих: зачем нужен, как работает и чем отличается от IPv4
Полное руководство по IPv6: формат 128-битного адреса, типы адресов, SLAAC, DHCPv6, EUI-64, сравнение с IPv4 и настройка на Cisco-маршрутизаторах.
Последнее обновление: июль 2025 г. Уровень: CCNA / начинающий сетевой инженер Время чтения: ~25 минут
Оглавление (Table of Contents)
- Введение: почему IPv6 — это не «будущее», а настоящее
- Почему закончились IPv4-адреса
- Что такое IPv6 и как он решает проблему
- Формат 128-битного адреса IPv6
- Правила сокращения записи IPv6
- Типы адресов IPv6: unicast, multicast, anycast
- Автоконфигурация SLAAC: как устройства получают адрес без DHCP
- DHCPv6: stateless и stateful режимы
- Механизм EUI-64 для генерации идентификатора интерфейса
- Сравнительная таблица IPv4 vs IPv6
- Настройка IPv6 на маршрутизаторах Cisco: команды и примеры
- Часто задаваемые вопросы (FAQ)
- Заключение
1. Введение: почему IPv6 — это не «будущее», а настоящее
Если вы готовитесь к экзамену Cisco CCNA 200-301, то тема IPv6 занимает в нём значительное место — и это не случайность. По данным Google, к середине 2025 года более 45% мирового интернет-трафика уже передаётся по протоколу IPv6. Крупнейшие операторы связи, облачные провайдеры и корпоративные сети активно переходят на новый протокол.
Тем не менее, многие начинающие сетевые инженеры воспринимают IPv6 как что-то далёкое и сложное. В этой статье мы разберём всё, что нужно знать об IPv6 на уровне CCNA: от причин появления протокола до конкретных команд настройки на оборудовании Cisco. Вы узнаете, как читать и сокращать IPv6-адреса, чем отличаются типы адресов, как работает автоконфигурация и почему NAT в IPv6 больше не нужен.
Для кого эта статья: начинающие сетевые инженеры, студенты CCNA, системные администраторы, которые хотят разобраться в основах IPv6 с нуля.
2. Почему закончились IPv4-адреса
Краткая история IPv4
Протокол IPv4 (Internet Protocol version 4) был разработан в начале 1980-х годов и стандартизирован в RFC 791. На тот момент Интернет представлял собой исследовательскую сеть из нескольких сотен компьютеров, и 32-битное адресное пространство казалось избыточным.
32 бита дают 2³² = 4 294 967 296 адресов — чуть больше четырёх миллиардов. Когда протокол создавался, никто не мог представить, что к 2025 году к Интернету будет подключено более 30 миллиардов устройств (смартфоны, планшеты, умные часы, IoT-датчики, камеры, бытовая техника).
Хронология исчерпания адресов
| Дата | Событие |
|---|---|
| 1981 | Публикация RFC 791, стандартизация IPv4 |
| 1993 | Введение CIDR (бесклассовая маршрутизация) для экономии адресов |
| 1994 | Введение NAT (RFC 1631) как временная мера |
| 1998 | Публикация RFC 2460, стандартизация IPv6 |
| 3 февраля 2011 | IANA выдала последние блоки /8 региональным регистраторам |
| 2011–2019 | Региональные регистраторы (RIPE, APNIC, ARIN, LACNIC, AFRINIC) исчерпали свободные пулы |
| 2025 | IPv4-адреса доступны только на вторичном рынке по цене $30–50 за адрес |
Почему NAT — это не решение
Технология NAT (Network Address Translation) позволила на десятилетия продлить жизнь IPv4, позволяя множеству устройств в локальной сети использовать один публичный IP-адрес. Однако NAT создаёт серьёзные проблемы:
- Нарушение принципа сквозной связности (end-to-end connectivity) — устройства за NAT не могут принимать входящие соединения напрямую
- Сложности для VoIP, видеоконференций, P2P-приложений и онлайн-игр — требуются дополнительные протоколы обхода NAT (STUN, TURN, ICE)
- Дополнительная нагрузка на маршрутизаторы — трансляция адресов требует вычислительных ресурсов и хранения таблицы состояний
- Проблемы с IPsec — аутентификация заголовков несовместима с изменением адресов
- Усложнение диагностики — трудно отследить реальный источник трафика
Ключевой вывод: NAT — это «костыль», который помог дожить до массового внедрения IPv6, но не решает фундаментальную проблему нехватки адресного пространства.
3. Что такое IPv6 и как он решает проблему
IPv6 (Internet Protocol version 6) — это шестая версия интернет-протокола, разработанная для замены IPv4. Основной стандарт описан в RFC 8200 (обновление оригинального RFC 2460).
Главные преимущества IPv6
1. Огромное адресное пространство
IPv6 использует 128-битные адреса, что даёт 2¹²⁸ ≈ 3,4 × 10³⁸ адресов. Чтобы осознать этот масштаб: это примерно 667 секстиллионов адресов на каждый квадратный миллиметр поверхности Земли. Такого количества хватит на все устройства Интернета вещей, которые только можно вообразить.
2. Отсутствие необходимости в NAT
Каждое устройство может иметь собственный глобальный уникальный адрес. Это восстанавливает принцип сквозной связности, упрощает работу приложений и устраняет многие проблемы, связанные с NAT.
3. Упрощённый заголовок пакета
Заголовок IPv6 имеет фиксированный размер 40 байт (против переменного размера 20–60 байт в IPv4). Удалены поля, которые замедляли обработку (контрольная сумма заголовка, фрагментация на промежуточных маршрутизаторах). Это ускоряет пересылку пакетов.
4. Встроенная автоконфигурация (SLAAC)
Устройства могут автоматически настраивать свои адреса без DHCP-сервера, используя информацию от маршрутизатора.
5. Встроенная поддержка безопасности
IPsec изначально разрабатывался как обязательный компонент IPv6 (хотя позже это требование было смягчено в RFC 6434, IPsec остаётся повсеместно доступным).
6. Улучшенная поддержка QoS
Поле Flow Label в заголовке IPv6 позволяет маркировать потоки данных для приоритизации трафика без необходимости заглядывать в заголовки верхних уровней.
7. Отсутствие широковещания (broadcast)
В IPv6 нет широковещательных адресов. Вместо этого используются multicast (многоадресная рассылка) и anycast (связь с ближайшим узлом), что снижает нагрузку на сеть.
Структура заголовка IPv6
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Source Address +
| (128 бит) |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Destination Address +
| (128 бит) |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Поле | Размер | Описание |
|---|---|---|
| Version | 4 бита | Всегда 6 |
| Traffic Class | 8 бит | Аналог DSCP и ECN в IPv4 (приоритизация) |
| Flow Label | 20 бит | Идентификатор потока для QoS |
| Payload Length | 16 бит | Размер полезной нагрузки (без заголовка) |
| Next Header | 8 бит | Тип следующего заголовка (TCP=6, UDP=17 и т.д.) |
| Hop Limit | 8 бит | Аналог TTL в IPv4 |
| Source Address | 128 бит | Адрес отправителя |
| Destination Address | 128 бит | Адрес получателя |
Обратите внимание: в заголовке IPv6 нет поля контрольной суммы. Проверка целостности данных возложена на протоколы транспортного уровня (TCP, UDP). Также в IPv6 фрагментация выполняется только отправителем, а не промежуточными маршрутизаторами — это значительно упрощает обработку пакетов.
4. Формат 128-битного адреса IPv6
Запись адреса
IPv6-адрес записывается как 8 групп по 4 шестнадцатеричных цифры, разделённых двоеточиями:
2001:0DB8:0000:0000:0000:0000:0000:0001
Каждая группа представляет 16 бит (2 байта). Всего: 8 × 16 = 128 бит.
Используемые символы
В шестнадцатеричной записи используются цифры 0–9 и буквы A–F (регистр не имеет значения: 2001:0db8 и 2001:0DB8 — это один и тот же адрес).
Структура адреса
Типичный IPv6-адрес unicast делится на две части:
|<---------- 64 бита ---------->|<---------- 64 бита ---------->|
| Префикс сети | Идентификатор интерфейса |
| (Network Prefix) | (Interface ID) |
- Префикс сети (Network Prefix) — определяет сеть, подсеть и назначается провайдером или администратором
- Идентификатор интерфейса (Interface ID) — уникально определяет интерфейс в данной сети; может генерироваться автоматически (EUI-64, случайный) или назначаться вручную
Длина префикса
Вместо маски подсети (как в IPv4) в IPv6 используется длина префикса — число после символа /:
2001:0DB8:ACAD:0001::1/64
Здесь /64 означает, что первые 64 бита — это сетевая часть адреса. Это наиболее распространённая длина префикса для подсетей конечных пользователей.
5. Правила сокращения записи IPv6
Полная запись IPv6-адреса длинная и неудобная для чтения. Существуют два правила сокращения, которые можно применять вместе или по отдельности.
Правило 1: Опущение ведущих нулей (Leading Zero Compression)
В каждой группе из четырёх шестнадцатеричных цифр ведущие нули можно убрать.
Полная запись: 2001:0DB8:0000:00A1:0000:0000:0000:0001
После правила 1: 2001:DB8:0:A1:0:0:0:1
Важно:
- Убираются только ведущие нули, не завершающие
- Группа
0000сокращается до0(хотя бы одна цифра должна остаться) - Группа
00A1сокращается доA1 - Группа
0100сокращается до100(ноль в конце — не ведущий)
Правило 2: Замена непрерывной последовательности нулевых групп на :: (Double Colon)
Одну непрерывную последовательность групп, состоящих только из нулей, можно заменить на :: (двойное двоеточие).
После правила 1: 2001:DB8:0:A1:0:0:0:1
После правила 2: 2001:DB8:0:A1::1
Критически важное ограничение: :: можно использовать только один раз в адресе. Если использовать его дважды, невозможно будет определить, сколько нулевых групп скрыто в каждом месте.
Примеры сокращения
| Полная запись | После правила 1 | После правил 1+2 |
|---|---|---|
2001:0DB8:0000:0000:0000:0000:0000:0001 | 2001:DB8:0:0:0:0:0:1 | 2001:DB8::1 |
FE80:0000:0000:0000:020C:29FF:FE5A:1234 | FE80:0:0:0:20C:29FF:FE5A:1234 | FE80::20C:29FF:FE5A:1234 |
FF02:0000:0000:0000:0000:0000:0000:0001 | FF02:0:0:0:0:0:0:1 | FF02::1 |
2001:0DB8:AAAA:0000:0000:0000:0000:0000 | 2001:DB8:AAAA:0:0:0:0:0 | 2001:DB8:AAAA:: |
0000:0000:0000:0000:0000:0000:0000:0001 | 0:0:0:0:0:0:0:1 | ::1 (loopback) |
0000:0000:0000:0000:0000:0000:0000:0000 | 0:0:0:0:0:0:0:0 | :: (неопределённый) |
Как восстановить полную запись из сокращённой
Чтобы развернуть сокращённый адрес:
- Подсчитайте количество видимых групп
- Символ
::заменяется нужным количеством нулевых групп, чтобы общее число групп стало равным 8 - Добавьте ведущие нули до 4 цифр в каждой группе
Пример:
Сокращённый: 2001:DB8::1
Шаг 1: Видимых групп: 2001, DB8, 1 → 3 группы
Шаг 2: Нужно добавить 8 - 3 = 5 нулевых групп вместо ::
Шаг 3: 2001:0DB8:0000:0000:0000:0000:0000:0001
6. Типы адресов IPv6: unicast, multicast, anycast
В IPv6 существуют три основных типа адресов. В отличие от IPv4, broadcast (широковещание) в IPv6 отсутствует.
6.1. Unicast — одноадресная рассылка
Пакет доставляется одному конкретному интерфейсу. Это наиболее распространённый тип адресов.
Global Unicast Address (GUA)
Аналог публичного IPv4-адреса. Глобально маршрутизируемые, уникальные в Интернете.
|<--- 48 бит --->|<- 16 бит ->|<---------- 64 бита ---------->|
| Global Routing | Subnet ID | Interface ID |
| Prefix | | |
- Диапазон: начинаются с
2000::/3(первые три бита:001), то есть от2000::до3FFF:FFFF:... - На практике IANA выделяет блоки, начинающиеся с
2001:,2400:,2600:,2800:,2A00:,2C00: - Global Routing Prefix (обычно 48 бит) — назначается провайдером
- Subnet ID (обычно 16 бит) — позволяет создать до 65 536 подсетей внутри организации
- Interface ID (64 бита) — идентификатор интерфейса
Для экзамена CCNA: запомните, что для примеров и документации зарезервирован префикс
2001:DB8::/32(RFC 3849). Этот диапазон не маршрутизируется в реальном Интернете.
Link-Local Address
Используются только для связи в пределах одного канала (link). Автоматически генерируются на каждом IPv6-интерфейсе.
- Диапазон:
FE80::/10(на практике всегдаFE80::/64) - Не маршрутизируются — маршрутизаторы никогда не пересылают пакеты с link-local адресом источника или назначения за пределы своего канала
- Обязательны для работы IPv6 — используются для:
- Обнаружения соседей (Neighbor Discovery Protocol, NDP)
- Автоконфигурации (SLAAC)
- Протоколов маршрутизации (OSPFv3, EIGRP for IPv6)
- Адреса шлюза по умолчанию (next-hop)
FE80::1 — link-local адрес маршрутизатора
FE80::20C:29FF:FE5A:1234 — link-local адрес, сгенерированный через EUI-64
Важный момент: поскольку link-local адреса не уникальны глобально (один и тот же адрес
FE80::1может быть на разных каналах), при обращении к ним необходимо указывать идентификатор интерфейса (zone ID). Например:ping FE80::1%GigabitEthernet0/0
Unique Local Address (ULA)
Аналог частных адресов IPv4 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16). Маршрутизируются внутри организации, но не маршрутизируются в глобальном Интернете.
- Диапазон:
FC00::/7(на практике используетсяFD00::/8) - Структура:
FD+ 40-битный случайный идентификатор + 16-битный Subnet ID + 64-битный Interface ID - Полезны для внутренних сервисов, которые не должны быть доступны из Интернета
FD12:3456:7890:1::1/64 — пример ULA-адреса
Loopback и неопределённый адрес
| Адрес | Полная запись | Назначение |
|---|---|---|
::1 | 0000:0000:0000:0000:0000:0000:0000:0001 | Loopback (аналог 127.0.0.1 в IPv4) |
:: | 0000:0000:0000:0000:0000:0000:0000:0000 | Неопределённый адрес (используется до получения реального адреса) |
6.2. Multicast — многоадресная рассылка
Пакет доставляется всем интерфейсам, подписанным на данную multicast-группу. Замещает broadcast из IPv4.
- Диапазон:
FF00::/8(первый байт всегдаFF)
Основные multicast-адреса для CCNA
| Адрес | Описание | Аналог в IPv4 |
|---|---|---|
FF02::1 | Все узлы в канале (all nodes) | Широковещание 255.255.255.255 |
FF02::2 | Все маршрутизаторы в канале (all routers) | 224.0.0.2 |
FF02::5 | Все OSPF-маршрутизаторы | 224.0.0.5 |
FF02::6 | Все OSPF DR-маршрутизаторы | 224.0.0.6 |
FF02::9 | Все RIPng-маршрутизаторы | 224.0.0.9 |
FF02::A | Все EIGRP-маршрутизаторы | 224.0.0.10 |
FF02::1:FF00:0/104 | Solicited-node multicast | — |
Solicited-Node Multicast Address
Это особый тип multicast-адреса, который играет ключевую роль в Neighbor Discovery Protocol (NDP) — замене ARP из IPv4.
Формируется автоматически для каждого unicast-адреса:
FF02::1:FF + последние 24 бита unicast-адреса
Пример:
Unicast адрес: 2001:DB8:ACAD:1::50
Последние 24 бита: 00:0050 → 00:00:50
Solicited-node: FF02::1:FF00:0050
Вместо того чтобы отправлять ARP-запрос всем устройствам в сети (broadcast), NDP отправляет запрос на solicited-node multicast адрес, который прослушивают только устройства, чьи адреса оканчиваются на эти 24 бита. Это значительно снижает нагрузку на сеть.
6.3. Anycast — связь с ближайшим узлом
Пакет доставляется одному ближайшему интерфейсу из группы интерфейсов с одинаковым адресом. «Ближайший» определяется протоколом маршрутизации (наименьшая метрика).
- Anycast-адреса синтаксически неотличимы от unicast-адресов
- Используются для балансировки нагрузки и обеспечения отказоустойчивости (например, DNS-серверы, CDN)
- На маршрутизаторах Cisco настраиваются командой
ipv6 address <address> anycast
7. Автоконфигурация SLAAC: как устройства получают адрес без DHCP
SLAAC (Stateless Address Autoconfiguration) — одно из ключевых нововведений IPv6. Этот механизм позволяет устройствам автоматически настраивать свой IPv6-адрес без использования DHCP-сервера.
Как работает SLAAC: пошаговый процесс
Хост Маршрутизатор
| |
| 1. Router Solicitation (RS) |
| Dst: FF02::2 (все маршрутизаторы) |
| Src: FE80::... (link-local хоста) |
|----------------------------------------->|
| |
| 2. Router Advertisement (RA) |
| Dst: FF02::1 (все узлы) |
| Содержит: префикс, длину, флаги |
|<-----------------------------------------|
| |
| 3. Хост формирует GUA: |
| Префикс из RA + Interface ID |
| |
| 4. Duplicate Address Detection (DAD) |
| Neighbor Solicitation на свой адрес |
| Dst: solicited-node multicast |
|--------------------> |
| |
| 5. Если ответа нет — адрес уникален, |
| можно использовать |
Подробное описание шагов
Шаг 1: Router Solicitation (RS)
Когда интерфейс хоста включается (или получает команду на автоконфигурацию), он отправляет сообщение RS (ICMPv6 тип 133) на адрес FF02::2 (все маршрутизаторы в канале). Это запрос: «Есть ли в сети маршрутизатор? Сообщите мне параметры сети!»
Шаг 2: Router Advertisement (RA) Маршрутизатор отвечает сообщением RA (ICMPv6 тип 134), которое содержит:
- Один или несколько префиксов сети (например,
2001:DB8:ACAD:1::/64) - Длину префикса (обычно /64)
- Время жизни префикса (Valid Lifetime, Preferred Lifetime)
- Флаги, определяющие метод получения остальных параметров:
- A-flag (Autonomous) — хост может использовать SLAAC
- O-flag (Other Configuration) — использовать stateless DHCPv6 для DNS и других параметров
- M-flag (Managed Address Configuration) — использовать stateful DHCPv6 для получения адреса
- Адрес шлюза по умолчанию — link-local адрес маршрутизатора автоматически становится default gateway
Маршрутизаторы также периодически отправляют RA на адрес
FF02::1(все узлы), обычно каждые 200 секунд, без запроса.
Шаг 3: Формирование адреса Хост объединяет полученный 64-битный префикс с 64-битным идентификатором интерфейса, который генерируется одним из способов:
- EUI-64 — на основе MAC-адреса (описано ниже)
- Случайный — для обеспечения приватности (RFC 8981)
Шаг 4: DAD (Duplicate Address Detection) Перед использованием адреса хост проверяет его уникальность, отправляя Neighbor Solicitation (ICMPv6 тип 135) на solicited-node multicast адрес сформированного адреса. Если кто-то уже использует этот адрес — он ответит Neighbor Advertisement, и хост выберет другой Interface ID.
Шаг 5: Адрес готов к использованию Если в течение определённого времени ответа на DAD не получено, адрес считается уникальным и назначается интерфейсу.
Три варианта автоконфигурации: SLAAC, SLAAC+DHCPv6, DHCPv6
| Вариант | Флаги RA | Адрес | DNS, домен и др. | Шлюз |
|---|---|---|---|---|
| SLAAC only | A=1, O=0, M=0 | SLAAC | Из RA (RDNSS, RFC 8106) | Из RA |
| SLAAC + Stateless DHCPv6 | A=1, O=1, M=0 | SLAAC | DHCPv6 | Из RA |
| Stateful DHCPv6 | A=0, O=0, M=1 | DHCPv6 | DHCPv6 | Из RA |
На экзамене CCNA часто спрашивают: «Откуда хост узнаёт адрес шлюза по умолчанию?» Ответ: всегда из Router Advertisement — даже при использовании stateful DHCPv6. В DHCPv6, в отличие от DHCPv4, нет опции для шлюза по умолчанию.
8. DHCPv6: stateless и stateful режимы
Stateless DHCPv6
В этом режиме DHCPv6-сервер не выдаёт IPv6-адреса и не ведёт таблицу привязок. Он предоставляет только дополнительные параметры конфигурации:
- Адреса DNS-серверов
- Доменное имя
- Другие опции (NTP-серверы, SIP-серверы и т.д.)
Адрес хост получает через SLAAC, а за DNS и другими параметрами обращается к DHCPv6.
Настройка на маршрутизаторе Cisco (сервер):
ipv6 dhcp pool STATELESS-POOL
dns-server 2001:DB8:ACAD::53
domain-name example.com
interface GigabitEthernet0/0
ipv6 nd other-config-flag
ipv6 dhcp server STATELESS-POOL
Stateful DHCPv6
В этом режиме DHCPv6-сервер выдаёт IPv6-адреса из пула и ведёт таблицу привязок (binding table), аналогично DHCPv4. Этот режим используется, когда администратору необходимо точно контролировать, какие адреса назначены каким устройствам.
Процесс получения адреса (SARR):
Клиент DHCPv6-сервер
| |
| 1. SOLICIT (поиск сервера) |
| Dst: FF02::1:2 (all DHCP agents) |
|------------------------------------->|
| |
| 2. ADVERTISE (предложение) |
|<-------------------------------------|
| |
| 3. REQUEST (запрос адреса) |
|------------------------------------->|
| |
| 4. REPLY (подтверждение) |
|<-------------------------------------|
Настройка stateful DHCPv6 на маршрутизаторе Cisco:
ipv6 dhcp pool STATEFUL-POOL
address prefix 2001:DB8:ACAD:1::/64
dns-server 2001:DB8:ACAD::53
domain-name example.com
interface GigabitEthernet0/0
ipv6 address 2001:DB8:ACAD:1::1/64
ipv6 nd managed-config-flag
ipv6 nd prefix 2001:DB8:ACAD:1::/64 no-autoconfig
ipv6 dhcp server STATEFUL-POOL
DHCPv6 Prefix Delegation (DHCPv6-PD)
Это механизм, который позволяет провайдеру делегировать целый префикс клиентскому маршрутизатору, а тот распределяет адреса из этого префикса по своим внутренним подсетям. Широко используется в домашних маршрутизаторах.
9. Механизм EUI-64 для генерации идентификатора интерфейса
EUI-64 (Extended Unique Identifier — 64 бита) — это метод автоматического создания 64-битного идентификатора интерфейса на основе 48-битного MAC-адреса.
Алгоритм EUI-64: пошаговая инструкция
Исходные данные: MAC-адрес 00:0C:29:5A:12:34
Шаг 1: Разделите MAC-адрес на две половины:
00:0C:29 | 5A:12:34
Шаг 2: Вставьте между ними FF:FE:
00:0C:29:FF:FE:5A:12:34
Шаг 3: Инвертируйте 7-й бит (бит U/L — Universal/Local) в первом октете:
Первый октет: 00 = 0000 0000
^
7-й бит (считая от старшего, начиная с 1)
Инвертируем 7-й бит: 0000 0010 = 02
Результат:
02:0C:29:FF:FE:5A:12:34
В формате IPv6: 020C:29FF:FE5A:1234
Полный IPv6-адрес (с префиксом 2001:DB8:ACAD:1::/64):
2001:DB8:ACAD:1:20C:29FF:FE5A:1234/64
Почему инвертируется 7-й бит?
7-й бит MAC-адреса — это бит U/L (Universal/Local):
- 0 — адрес назначен глобально (производителем, OUI)
- 1 — адрес назначен локально (администратором)
В IEEE EUI-64 семантика такая же, но в IPv6 решили инвертировать этот бит для удобства: глобально уникальные адреса (которых большинство) будут иметь бит 1, а локально назначенные — бит 0. Это чисто конвенциональное решение (RFC 4291).
Проблема приватности EUI-64
Поскольку EUI-64 основан на MAC-адресе, а MAC-адрес уникален для каждого устройства, можно отслеживать перемещение устройства между сетями — идентификатор интерфейса не меняется.
Для решения этой проблемы разработаны расширения приватности (Privacy Extensions, RFC 8981):
- Генерируется случайный 64-битный Interface ID
- Он периодически меняется
- Большинство современных ОС (Windows, macOS, Linux, iOS, Android) используют случайные адреса по умолчанию
Для экзамена CCNA: вы должны уметь вычислять EUI-64 вручную, но помните, что на практике большинство конечных устройств используют случайные Interface ID.
Практика: вычислите EUI-64
Попробуйте самостоятельно определить Interface ID для MAC-адреса B4:96:91:3C:AB:F0:
Показать ответ
- Разделяем:
B4:96:91|3C:AB:F0 - Вставляем FFFE:
B4:96:91:FF:FE:3C:AB:F0 - Первый октет: B4 =
1011 0100→ инвертируем 7-й бит →1011 0110=B6 - Результат:
B696:91FF:FE3C:ABF0 - С префиксом
2001:DB8:1::/64:2001:DB8:1::B696:91FF:FE3C:ABF0/64
10. Сравнительная таблица IPv4 vs IPv6
| Характеристика | IPv4 | IPv6 |
|---|---|---|
| Длина адреса | 32 бита | 128 бит |
| Количество адресов | ~4,3 млрд (2³²) | ~3,4 × 10³⁸ (2¹²⁸) |
| Формат записи | Десятичный с точками: 192.168.1.1 | Шестнадцатеричный с двоеточиями: 2001:DB8::1 |
| Размер заголовка | Переменный: 20–60 байт | Фиксированный: 40 байт |
| Контрольная сумма заголовка | Есть | Нет (экономия ресурсов) |
| Фрагментация | Маршрутизаторами и отправителем | Только отправителем |
| NAT | Широко используется | Не нужен (достаточно адресов) |
| Broadcast | Есть | Нет (заменён multicast) |
| Автоконфигурация адреса | DHCP или ручная | SLAAC, DHCPv6 или ручная |
| Шлюз по умолчанию | DHCP или вручную | Из Router Advertisement |
| Разрешение адресов (L2↔L3) | ARP (broadcast) | NDP (multicast) — эффективнее |
| IPsec | Опциональный | Встроенная поддержка |
| Маска подсети | Маска или CIDR (/24) | Только длина префикса (/64) |
| Конфигурация | Обязательна (DHCP или вручную) | Может быть полностью автоматической |
| Мобильность | Сложная, требует Mobile IP | Улучшенная поддержка через Mobile IPv6 |
| QoS | Поле TOS (Type of Service) | Traffic Class + Flow Label |
Сравнение специальных адресов
| Назначение | IPv4 | IPv6 |
|---|---|---|
| Loopback | 127.0.0.1 | ::1 |
| Неопределённый | 0.0.0.0 | :: |
| Все узлы в сети | 255.255.255.255 (broadcast) | FF02::1 (multicast) |
| Все маршрутизаторы | 224.0.0.2 | FF02::2 |
| Частные адреса | 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 | FC00::/7 (ULA) |
| Link-local | 169.254.0.0/16 (APIPA) | FE80::/10 |
| Документация | 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24 | 2001:DB8::/32 |
11. Настройка IPv6 на маршрутизаторах Cisco: команды и примеры
Включение маршрутизации IPv6
По умолчанию маршрутизация IPv6 на маршрутизаторах Cisco отключена. Первый шаг — включить её глобально:
Router(config)# ipv6 unicast-routing
Без этой команды маршрутизатор не будет отправлять Router Advertisement и не будет маршрутизировать IPv6-трафик. Это одна из самых частых ошибок на экзамене и в лаборатории!
Назначение IPv6-адреса на интерфейс
Вариант 1: Статический адрес
Router(config)# interface GigabitEthernet0/0
Router(config-if)# ipv6 address 2001:DB8:ACAD:1::1/64
Router(config-if)# no shutdown
Вариант 2: Статический адрес + EUI-64
Router(config-if)# ipv6 address 2001:DB8:ACAD:1::/64 eui-64
Маршрутизатор автоматически сгенерирует Interface ID на основе MAC-адреса интерфейса.
Вариант 3: Только link-local адрес (вручную)
Router(config-if)# ipv6 address FE80::1 link-local
Вариант 4: Включение IPv6 без назначения GUA
Router(config-if)# ipv6 enable
Эта команда автоматически генерирует link-local адрес, но не назначает Global Unicast Address.
Проверка конфигурации IPv6
Просмотр IPv6-адресов на интерфейсах
Router# show ipv6 interface brief
Вывод (пример):
GigabitEthernet0/0 [up/up]
FE80::1
2001:DB8:ACAD:1::1
GigabitEthernet0/1 [up/up]
FE80::2
2001:DB8:ACAD:2::1
Подробная информация об интерфейсе
Router# show ipv6 interface GigabitEthernet0/0
Вывод показывает:
- Все IPv6-адреса интерфейса (link-local, GUA, multicast)
- Joined multicast groups
- MTU
- Настройки ND (Neighbor Discovery)
Таблица маршрутизации IPv6
Router# show ipv6 route
Вывод (пример):
IPv6 Routing Table - 5 entries
C 2001:DB8:ACAD:1::/64 [0/0]
via GigabitEthernet0/0, directly connected
L 2001:DB8:ACAD:1::1/128 [0/0]
via GigabitEthernet0/0, receive
C 2001:DB8:ACAD:2::/64 [0/0]
via GigabitEthernet0/1, directly connected
L 2001:DB8:ACAD:2::1/128 [0/0]
via GigabitEthernet0/1, receive
L FF00::/8 [0/0]
via Null0, receive
Коды маршрутов:
- C — connected (непосредственно подключённая сеть)
- L — local (адрес самого интерфейса, маска /128)
- S — static (статический маршрут)
- O — OSPF
- D — EIGRP
- R — RIP
Таблица соседей (аналог ARP)
Router# show ipv6 neighbors
Статическая маршрутизация IPv6
Маршрут через адрес next-hop
Router(config)# ipv6 route 2001:DB8:ACAD:3::/64 2001:DB8:ACAD:2::2
Маршрут через выходной интерфейс (для point-to-point)
Router(config)# ipv6 route 2001:DB8:ACAD:3::/64 Serial0/0/0
Маршрут через link-local адрес next-hop (для Ethernet)
Router(config)# ipv6 route 2001:DB8:ACAD:3::/64 GigabitEthernet0/1 FE80::2
Важно: при использовании link-local адреса как next-hop обязательно указывать выходной интерфейс, поскольку link-local адрес не уникален глобально.
Маршрут по умолчанию
Router(config)# ipv6 route ::/0 2001:DB8:ACAD:FF::1
Полный пример конфигурации
Рассмотрим типовую топологию: два маршрутизатора, соединённых напрямую.
[PC1] --- [R1 G0/0] ====== [G0/0 R2] --- [PC2]
G0/1 G0/1
2001:DB8:ACAD:1::/64 2001:DB8:ACAD:2::/64
Линк между R1 и R2:
2001:DB8:ACAD:FF::/64
Конфигурация R1:
R1(config)# ipv6 unicast-routing
R1(config)# interface GigabitEthernet0/0
R1(config-if)# description LAN R1
R1(config-if)# ipv6 address 2001:DB8:ACAD:1::1/64
R1(config-if)# ipv6 address FE80::1 link-local
R1(config-if)# no shutdown
R1(config-if)# exit
R1(config)# interface GigabitEthernet0/1
R1(config-if)# description Link to R2
R1(config-if)# ipv6 address 2001:DB8:ACAD:FF::1/64
R1(config-if)# ipv6 address FE80::1 link-local
R1(config-if)# no shutdown
R1(config-if)# exit
R1(config)# ipv6 route 2001:DB8:ACAD:2::/64 GigabitEthernet0/1 FE80::2
Конфигурация R2:
R2(config)# ipv6 unicast-routing
R2(config)# interface GigabitEthernet0/0
R2(config-if)# description LAN R2
R2(config-if)# ipv6 address 2001:DB8:ACAD:2::1/64
R2(config-if)# ipv6 address FE80::2 link-local
R2(config-if)# no shutdown
R2(config-if)# exit
R2(config)# interface GigabitEthernet0/1
R2(config-if)# description Link to R1
R2(config-if)# ipv6 address 2001:DB8:ACAD:FF::2/64
R2(config-if)# ipv6 address FE80::2 link-local
R2(config-if)# no shutdown
R2(config-if)# exit
R2(config)# ipv6 route 2001:DB8:ACAD:1::/64 GigabitEthernet0/1 FE80::1
Проверка связности
R1# ping 2001:DB8:ACAD:2::1
R1# traceroute 2001:DB8:ACAD:2::1
R1# show ipv6 route
R1# show ipv6 interface brief
R1# show ipv6 neighbors
Краткая шпаргалка по командам IPv6 для CCNA
| Команда | Описание |
|---|---|
ipv6 unicast-routing | Включить маршрутизацию IPv6 (глобальная) |
ipv6 address <addr>/<prefix> | Назначить адрес на интерфейс |
ipv6 address <prefix>/<len> eui-64 | Назначить адрес с EUI-64 |
ipv6 address autoconfig | Получить адрес через SLAAC (клиентский режим) |
ipv6 address dhcp | Получить адрес через DHCPv6 |
ipv6 address FE80::1 link-local | Назначить link-local адрес вручную |
ipv6 enable | Включить IPv6 (генерирует link-local) |
ipv6 route <dst> <next-hop> | Статический маршрут |
ipv6 route ::/0 <next-hop> | Маршрут по умолчанию |
ipv6 nd managed-config-flag | Установить M-flag в RA |
ipv6 nd other-config-flag | Установить O-flag в RA |
ipv6 dhcp server <pool> | Привязать DHCPv6-пул к интерфейсу |
show ipv6 interface brief | Кратко — адреса на интерфейсах |
show ipv6 interface <if> | Детали интерфейса |
show ipv6 route | Таблица маршрутизации |
show ipv6 neighbors | Таблица соседей (аналог ARP) |
show ipv6 dhcp pool | Информация о DHCPv6-пуле |
show ipv6 dhcp binding | Привязки DHCPv6 (stateful) |
12. Часто задаваемые вопросы (FAQ)
Может ли IPv6 работать одновременно с IPv4?
Да. Это называется Dual Stack (двойной стек) — интерфейс имеет и IPv4-, и IPv6-адрес одновременно. Это наиболее распространённый метод перехода. На маршрутизаторе Cisco вы просто назначаете оба адреса на один интерфейс:
interface GigabitEthernet0/0
ip address 192.168.1.1 255.255.255.0
ipv6 address 2001:DB8:ACAD:1::1/64
Помимо dual stack, существуют механизмы туннелирования (6to4, ISATAP, Teredo, GRE) и трансляции (NAT64/DNS64) для обеспечения совместимости.
Нужен ли NAT в IPv6?
В общем случае — нет. Одно из главных преимуществ IPv6 — достаточное количество адресов, чтобы каждое устройство имело глобально уникальный адрес. Безопасность, ранее ассоциировавшаяся с NAT, должна обеспечиваться межсетевыми экранами (firewall) и ACL.
Однако в некоторых специфических сценариях используется NPTv6 (Network Prefix Translation for IPv6, RFC 6296) — это не NAT в классическом смысле, а трансляция префиксов для упрощения мультихоминга.
Есть ли ARP в IPv6?
Нет. ARP заменён протоколом NDP (Neighbor Discovery Protocol, RFC 4861), который использует ICMPv6-сообщения:
- Neighbor Solicitation (NS) — аналог ARP Request (отправляется на solicited-node multicast, а не broadcast)
- Neighbor Advertisement (NA) — аналог ARP Reply
- Router Solicitation (RS) и Router Advertisement (RA) — для обнаружения маршрутизаторов
- Redirect — для оптимизации маршрутизации
Какая длина префикса стандартна для подсети?
Для подсетей с конечными устройствами стандартная длина — /64. Это не просто рекомендация — SLAAC и EUI-64 требуют 64-битного идентификатора интерфейса, а значит, 64-битного префикса. Для point-to-point линков между маршрутизаторами иногда используют /127 (RFC 6164), а для loopback — /128.
Как запомнить типы IPv6-адресов для экзамена?
Используйте мнемонику по первым символам:
| Первые символы | Тип | Мнемоника |
|---|---|---|
2 или 3 | Global Unicast | «2-3 — в мир» (глобальный) |
FE80 | Link-Local | «FE80 — только тут» (локальный канал) |
FC или FD | Unique Local | «FD — For Domestic» (внутренний) |
FF | Multicast | «FF — For Fans» (для группы) |
Сколько IPv6-адресов может быть на одном интерфейсе?
В отличие от IPv4, где обычно один-два адреса на интерфейс, в IPv6 на одном интерфейсе всегда несколько адресов:
- Как минимум один link-local (обязательный)
- Один или несколько Global Unicast или Unique Local
- Несколько multicast (solicited-node, all-nodes и др.)
Нужно ли учить IPv6 для CCNA?
Обязательно. Тема IPv6 является одной из ключевых в экзамене Cisco CCNA 200-301. Вопросы могут касаться:
- Определения типа адреса по его первым символам
- Сокращения и восстановления полной записи адреса
- Вычисления EUI-64
- Определения метода автоконфигурации по флагам RA
- Настройки статических маршрутов IPv6
- Различий между SLAAC, stateless DHCPv6 и stateful DHCPv6
13. Заключение
IPv6 — это не экзотическая технология будущего, а рабочий стандарт настоящего. Ключевые моменты, которые стоит запомнить:
- IPv4-адреса закончились — NAT лишь оттягивает неизбежное и создаёт свои проблемы
- 128-битное пространство IPv6 практически неисчерпаемо — каждое устройство может получить глобально уникальный адрес
- Два правила сокращения (ведущие нули и
::) делают адреса читаемыми;::используется только один раз - Три типа адресов — unicast (GUA, link-local, ULA), multicast, anycast; broadcast отсутствует
- SLAAC позволяет автоматически получить адрес без DHCP; DHCPv6 бывает stateless (только опции) и stateful (адреса + опции)
- EUI-64 генерирует Interface ID из MAC-адреса, но на практике современные ОС используют случайные адреса
- NDP заменяет ARP, используя multicast вместо broadcast
- Шлюз по умолчанию в IPv6 всегда определяется из Router Advertisement — даже при использовании DHCPv6
- На маршрутизаторах Cisco не забывайте команду
ipv6 unicast-routing
Что делать дальше?
- Практикуйтесь в Cisco Packet Tracer или GNS3 — настройте топологию из примера выше
- Решайте задачи на сокращение IPv6-адресов и вычисление EUI-64
- Изучите OSPFv3 — динамическую маршрутизацию для IPv6
- Настройте dual stack — работу IPv4 и IPv6 одновременно
- Ознакомьтесь с ACL для IPv6 — фильтрация трафика имеет свои особенности
Статья подготовлена для подготовки к экзамену Cisco CCNA 200-301. Если вы нашли неточность или у вас есть вопросы — оставьте комментарий ниже.
Ключевые слова: IPv6 для начинающих, IPv6 vs IPv4, CCNA IPv6, SLAAC, DHCPv6, EUI-64, link-local адрес, global unicast, multicast IPv6, NDP, Neighbor Discovery Protocol, настройка IPv6 Cisco, ipv6 unicast-routing, таблица маршрутизации IPv6, dual stack, формат адреса IPv6, сокращение IPv6