Настройка сети на базе IPv6 в EVE-NG
Протокол IPv4, разработанный в начале 1980-х годов, использует 32-битное адресное пространство, что теоретически позволяет создать около 4,3 миллиарда уникальных адресов. Из-за взрывного роста числа устройств, подключаемых к Интернету (компьютеры, смартфоны, IoT-устройства), а также из-за неэффективного распределения адресного пространства на заре Интернета, свободные блоки IPv4-адресов были полностью исчерпаны на уровне глобальных регистраторов в 2011 году (IANA).
Протокол IPv6 был разработан IETF как долгосрочное решение этой проблемы. Ключевым отличием является использование 128-битного адресного пространства, что дает 2128 (примерно 3.4*1038) уникальных адресов.
| Характеристика | IPv4 | IPv6 |
|---|---|---|
| Длина адреса | 32 бита | 128 бит |
| Формат записи | Десятичный, разделенный точками (192.168.1.1) | Шестнадцатеричный, разделенный двоеточиями (2001:db8:1::1) |
| NAT (Трансляция) | Широко используется для экономии адресов, ломает сквозную связность (end-to-end). | Не требуется. Принцип: «каждому устройству – глобальный адрес». |
| Широковещание (Broadcast) | Есть (ARP, DHCP Discover). | Отсутствует. Заменено на Multicast (групповая рассылка). |
| Автоконфигурация | DHCP (опционально APIPA). | SLAAC (Stateless Address Autoconfiguration) – получение префикса от маршрутизатора и самостоятельная генерация интерфейсной части. |
| ARP | Address Resolution Protocol. | NDP (Neighbor Discovery Protocol), использующий ICMPv6. |
| Структура заголовка | Сложная, переменная длина, контрольная сумма. | Упрощенная, фиксированная длина (40 байт), нет контрольной суммы (переложена на канальный и транспортный уровни). |
В лабораторных работах и документации согласно RFC 3849 используется специально зарезервированный префикс 2001:db8::/32. Адреса из этого диапазона не маршрутизируются в публичном Интернете и предназначены исключительно для примеров конфигурации, тестирования и обучения.
В данной работе используется протокол OSPF версии 3 (OSPFv3). В отличие от OSPFv2 (для IPv4):
- OSPFv3 изначально разработан для работы с IPv6 и активируется непосредственно на интерфейсе командой ipv6 ospf 1 area 0;
- идентификация маршрутизатора (Router-ID) в OSPFv3 по-прежнему выполняется 32-битным числом в формате IPv4 (например, 1.1.1.1), даже если на устройстве не настроены IPv4-адреса.
Сеть состоит из трех маршрутизаторов, образующих транзитную зону (Area 0), одного коммутатора для левого сегмента LAN и трех конечных устройств (VPCS).
Параметры сетевых устройств
| Template | Name/prefix | CPU | RAM (MB) | Ethernets |
|---|---|---|---|---|
| Cisco vIOS Router | RTR-ISP | 1 | 512 | 4 |
| Cisco vIOS Router | RTR-L | 1 | 512 | 4 |
| Cisco vIOS Router | RTR-R | 1 | 512 | 4 |
| Cisco vIOS Switch | SW-L | 1 | 512 | 8 |
| Virtual PC (VPCS) | vPC-L0 | – | – | – |
| Virtual PC (VPCS) | vPC-L1 | – | – | – |
| Virtual PC (VPCS) | vPC-R | – | – | – |
Параметры сетевых устройств
| Наименование узла | Интерфейс | IP-адрес | Маска подсети | Шлюз по умолчанию |
| RTR-ISP | Gi0/0 | 2001:db8:12::2 | /64 | – |
| RTR-ISP | Gi0/1 | 2001:db8:23::2 | /64 | – |
| RTR-L | Gi0/0 | 2001:db8:12::1 | /64 | – |
| RTR-L | Gi0/1 | 2001:db8:1::1 | /64 | – |
| RTR-R | Gi0/0 | 2001:db8:23::3 | /64 | – |
| RTR-R | Gi0/1 | 2001:db8:3::1 | /64 | – |
| SW-L | Gi0/0 | – | – | – |
| SW-L | Gi0/1 | – | – | – |
| SW-L | Gi0/2 | – | – | – |
| vPC-L0 | NIC | 2001:db8:1::10 | /64 | 2001:db8:1::1 |
| vPC-L1 | NIC | 2001:db8:1::11 | /64 | 2001:db8:1::1 |
| vPC-R | NIC | 2001:db8:3::20 | /64 | 2001:db8:3::1 |
Параметры сетевых устройств

Настройка сети
Практически все действия выполняются на маршрутизаторах. Коммутатор SW-L работает в режиме L2 (неуправляемый) и передает трафик между портами Gi0/0, Gi0/1 и Gi0/2 прозрачно.
Настройка маршрутизатора RTR-L. Этот маршрутизатор отвечает за левый сегмент сети (локальная сеть 2001:db8:1::/64). Его задача – обеспечивать связность клиентов (vPC-L0, vPC-L1) с остальной сетью и передавать информацию о своей сети через OSPFv3 соседям.
На RTR-L:
Would you like to enter the initial configuration dialog? [yes/no]: no
Router>enable
Router#config terminal
Router(config)#hostname RTR-L
RTR-L(config)#ipv6 unicast-routing
RTR-L(config)#interface gi0/1
RTR-L(config-if)#description LAN_LEFT
RTR-L(config-if)#ipv6 address 2001:db8:1::1/64
RTR-L(config-if)#ipv6 nd managed-config-flag
RTR-L(config-if)#no shutdown
RTR-L(config-if)#exit
RTR-L(config)#interface gi0/0
RTR-L(config-if)#description TO_RTR-ISP
RTR-L(config-if)#ipv6 address 2001:db8:12::1/64
RTR-L(config-if)#no shutdown
RTR-L(config-if)#exit
RTR-L(config)#ipv6 router ospf 1
RTR-L(config-rtr)#router-id 1.1.1.1
RTR-L(config-rtr)#exit
RTR-L(config)#interface range gi0/0-1
RTR-L(config-if-range)#ipv6 ospf 1 area 0
RTR-L(config-if-range)#end
RTR-L#write
Команда «ipv6 unicast-routing» критически важна. Без нее устройство работает как обычный хост IPv6 (может иметь адрес, пинговать), но не будет пересылать пакеты между интерфейсами и не будет участвовать в протоколах маршрутизации, то есть маршрутизатор не станет маршрутизатором.
«ipv6 address 2001:db8:1::1/64» – назначение статического IPv6-адреса интерфейсу. В IPv6 можно назначить несколько адресов на один интерфейс, но здесь мы задаем основной (Link-local адрес FE80::... генерируется автоматически).
«ipv6 nd managed-config-flag» – включает флаг «Managed (M)» в рассылках Router Advertisement (RA). Это указывает подключенным клиентам (vPC), что адреса нужно получать не только через SLAAC, но и обращаться к DHCPv6-серверу для получения дополнительных параметров (например, DNS), или же полностью получать адрес через DHCPv6 (Stateful).
В нашей упрощенной схеме DHCPv6 не используется, адреса заданы статически, но флаг установлен для демонстрации возможностей NDP.
В OSPFv3, в отличие от OSPFv2, включение интерфейса в процесс происходит командой на самом интерфейсе, а не командой «network» в режиме конфигурации роутера. Команда «interface range» позволяет применить настройку сразу к двум портам, что ускоряет работу.
На RTR-R:
Would you like to enter the initial configuration dialog? [yes/no]: no
Router>enable
Router#config terminal
Router(config)#hostname RTR-R
RTR-R(config)#ipv6 unicast-routing
RTR-R(config)#interface gi0/1
RTR-R(config-if)#description LAN_RIGHT
RTR-R(config-if)#ipv6 address 2001:db8:3::1/64
RTR-R(config-if)#ipv6 nd managed-config-flag
RTR-R(config-if)#no shutdown
RTR-R(config-if)#exit
RTR-R(config)#interface gi0/0
RTR-R(config-if)#description TO_RTR-ISP
RTR-R(config-if)#ipv6 address 2001:db8:23::3/64
RTR-R(config-if)#no shutdown
RTR-R(config-if)#exit
RTR-R(config)#ipv6 router ospf 1
RTR-R(config-rtr)#router-id 3.3.3.3
RTR-R(config-rtr)#exit
RTR-R(config)#interface range gi0/0-1
RTR-R(config-if-range)#ipv6 ospf 1 area 0
RTR-R(config-if-range)#end
RTR-R#write
На RTR-ISP:
Would you like to enter the initial configuration dialog? [yes/no]: no
Router>enable
Router#config terminal
Router(config)#hostname RTR-ISP
RTR-ISP(config)#ipv6 unicast-routing
RTR-ISP(config)#interface gi0/0
RTR-ISP(config-if)#description TO_RTR-LEFT
RTR-ISP(config-if)#ipv6 address 2001:db8:12::2/64
RTR-ISP(config-if)#no shutdown
RTR-ISP(config-if)#exit
RTR-ISP(config)#interface gi0/1
RTR-ISP(config-if)#description TO_RTR-RIGHT
RTR-ISP(config-if)#ipv6 address 2001:db8:23::2/64
RTR-ISP(config-if)#no shutdown
RTR-ISP(config-if)#exit
RTR-ISP(config)#ipv6 router ospf 1
RTR-ISP(config-rtr)#router-id 2.2.2.2
RTR-ISP(config-rtr)#exit
RTR-ISP(config)#interface range gi0/0-1
RTR-ISP(config-if-range)#ipv6 ospf 1 area 0
RTR-ISP(config-if-range)#end
RTR-ISP#write
На vPC-L0:
VPCS>set pcname vPC-L0
vPC-L0>ip 2001:db8:1::10/64 2001:db8:1::1
На vPC-L1:
VPCS>set pcname vPC-L1
vPC-L0>ip 2001:db8:1::11/64 2001:db8:1::1
На vPC-R:
VPCS>set pcname vPC-R
vPC-L0>ip 2001:db8:3::20/64 2001:db8:3::1
Проверка на vPC-R:
