Page tree
Skip to end of metadata
Go to start of metadata

Глоссарий

  • Neighbor Discovery Protocol (NDP) - протокол сетевого уровня, решающий задачи обнаружения канального адреса соседа, определения дублирующегося адреса, автонастройки IPv6-адреса и пр. Оперирует ICMPv6-пакетами разных типов;
  • Router Solicitation (RS) - один из типов ICMPv6 сообщений, которое хост посылает в сеть при попытке обнаружить шлюз в сегменте сети для получения IPv6-адреса и других реквизитов;
  • Router Advertisement (RA) - рассылаются маршрутизаторами в сегменте сети, анонсируют используемый префикс, его длину, MTU, шлюз по умолчанию и способ формирования динамического IPv6-адреса хостом;
  • EUI-64 - уникальный идентификатор, генерирующийся сетевым интерфейсом на основе MAC-адреса. В зависимости от настроек хоста, может применяться для генерации младших 64 бит IPv6-адреса;
  • Stateless Address Configuration (SLAAC) - механизм автоматической конфигурации IPv6-адреса, опираясь только на анонсируемый в RA префикс и его длину.  Его использование предопределяет флаг 'A' в сообщении RA;
  • Stateless DHCP - механизм предоставления хосту дополнительной информации (DNS и пр.) через выделенный DHCPv6-сервер. Базовая конфигурация по-прежнему конфигурируется механизмами SLAAC. Его использование предопределяется флагами 'A' и 'O' в сообщении RA;
  • Stateful DHCP - механизм полной конфигурации реквизитов IPv6-адреса через выделенный DHCPv6-сервер (по аналогии с IPv4). Его использование предопределяет флаг 'M' в сообщении RA.

Security RA

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

Рассмотрим типовой сценарий:

Коммутатор третьего уровня посылает RA на multicast-адрес ff02::1. На этом же сегменте сети злоумышленник также генерирует сообщения RA, но уже со своим адресом в качстве default gateway. Настроим коммутатор доступа так, чтобы сообщения RA могли приходить только с доверенных портов.

Включаем Security RA глобально:

(config)#ipv6 security-ra enable

Выбираем абонентские порты и запрещаем отправку RA сообщений с них:

(config)#int e1/0/1-7
(config-if-port-range)#ipv6 security-ra enable

Проверяем конфигурацию Security RA:

#sh ipv6 security-ra                    
IPv6 security RA information:
Global IPv6 Security RA State: enabled
Ethernet1/0/1
IPv6 Security RA State: Yes
Ethernet1/0/2
IPv6 Security RA State: Yes
...

Примечание

Механизмы Security RA и SAVI являются взаимоисключающими.

SAVI

Гораздо более продвинутой технологией является SAVI (Source Address Validation Improvement), которая выступает IPv6-аналогом таких привычных механизмов, как DHCP Snooping и ARP inspection. Функции SAVI включают в себя ND Snooping, DHCPv6 Snooping и RA Snooping. ND Snooping используется для проверки ND пакетов, он осуществляет биндинг IPv6 адресов, полученных через Stateless-конфигурацию. DHCPv6 Snooping анализирует пакеты протокола DHCPv6 и также осуществляет биндинг IPv6 адресов, полученных через Stateful-конфигурацию. RA Snooping позволяет избежать отправки нелегитимных RA сообщений узлами в сети. Дополним нашу схему сети Stateless DHCP сервером, который будет отдавать информацию об IPv6-адресе DNSv6 сервера (fec0:0:0:1::1) и имени домена (domain.example). Раздача адресов хостам будет производиться по схеме SLAAC + Stateless DHCP сервер. На картинке показаны три действия, происходящие при этом, давайте рассмотрим их:

  1. Хост отправляет Router Solicitation запрос (RS) на мультикастовый адрес ff02::2.
  2. Коммутатор третьего уровня принимает RS-сообщение и посылает в ответ RA на multicast-адрес ff02::1 с префиксом и флагами 'A' и 'O', что сигнализирует хосту о необходимости обратиться к DHCPv6 серверу за дополнительными настройками.
  3. Хост на основе полученного префикса формирует свой global-unicast адрес, используя либо метод EUI-64, либо случайно генерируя оставшуюся после префикса часть IPv6 адреса. Link-local адрес источника RA-сообщения будет использован, как шлюз по умолчанию. Далее он обращается к DHCPv6 серверу через специальный multicast-адрес ff02::1:2 для получения дополнительных реквизитов.  

Информация

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


Продолжим настройку нашей схемы и займемся настройкой коммутатора третьего уровня. Он будет рассылать по сети RA-сообщения с флагами 'A,' 'O' и анонсировать префикс 2001:db8:100:1::/64.

Включаем сервис DHCPv6:

(config)#service dhcpv6

Создаем VLAN 100 и соответствующий ему SVI:

(config)#vlan 100
(config)#int vlan100

Назначаем L3-интерфейсу VLAN100 IPv6 адрес:

(config-if-vlan100)#ipv6 address 2001:db8:100:1::1/64

Настраиваем его на работу со SLAAC, анонсируя флаги 'A' и 'O', а также IPv6-префикс:

(config-if-vlan100)#no ipv6 nd suppress-ra
(config-if-vlan100)#ipv6 nd other-config-flag
(config-if-vlan100)#ipv6 nd prefix 2001:db8:100:1::/64
(config-if-vlan100)#exit

Теперь настраиваем SAVI и используемые в схеме порты:

(config)#savi enable
(config)#savi ipv6 dhcp-slaac enable
(config)#savi check binding probe mode
(config)#int e1/0/1
(config-if-ethernet1/0/1)#switchport access vlan 100
(config-if-ethernet1/0/1)#ipv6 dhcp snooping trust
(config-if-ethernet1/0/1)#int e1/0/4
(config-if-ethernet1/0/4)#switchport mode trunk
(config-if-ethernet1/0/4)#switchport trunk allowed vlan 100 
(config-if-ethernet1/0/4)#savi ipv6 check source ip-address mac-address
(config-if-ethernet1/0/4)#savi ipv6 binding num 10

Проверяем получение хостом IPv6 адреса, шлюза по умолчанию и дополнительной информации от DHCPv6 сервера:

$ ip addr show dev enp3s0 | grep inet6
    inet6 2001:db8:100:1:f2de:f1ff:fe19:d5eb/64 scope global dynamic noprefixroute 
    inet6 fe80::f2de:f1ff:fe19:d5eb/64 scope link noprefixroute 

$ ip -6 route | grep default
default via fe80::faf0:82ff:fe76:1a6e dev enp3s0 proto ra metric 20100 pref medium

$ cat /etc/resolv.conf | grep "search\|fec"
search domain.example
nameserver fec0:0:0:1::1

Проверяем работу SAVI:

#sh savi ipv6 check source binding 

Static binding count: 0
Dynamic binding count: 2
Binding count: 2

MAC                IP                                       VLAN Port             Type    State     Expires   
--------------------------------------------------------------------------------------------------------------
f0-de-f1-19-d5-eb  2001:db8:100:1:f2de:f1ff:fe19:d5eb       100  Ethernet1/0/4    slaac   BOUND     13043     
f0-de-f1-19-d5-eb  fe80::f2de:f1ff:fe19:d5eb                100  Ethernet1/0/4    slaac   BOUND     13041     
--------------------------------------------------------------------------------------------------------------

Важно!

Присутствует возможность создать статическую SAVI запись: 'savi ipv6 check source binding ip 2001:db8:100:1::80 mac b8-27-eb-ea-05-e1 interface Ethernet1/0/4 type static'.

Таким образом в нашей схеме механизм Security RA используется на коммутаторе доступа, а SAVI на коммутаторе агрегации.

Ручное назначение IPv6 префикса на порт

На коммутаторах SNR имеется возможность вручную назначать разрешенные префиксы на порт, полученные методом Prefix Delegation, что повышает безопасность сети в целом. Функционал работает совместно с SAVI. Пропишем наш префикс c global-unicast адресом, а затем префикс fe80::/64 под который будут подпадать все link-local адреса. Второе действие необходимо для правильной работы хоста, ведь для работы с тем же шлюзом используется именно link-local адрес:

(config)#ipv6 cps prefix 2001:db8:100:1::/64 vlan 100
(config)#ipv6 cps prefix fe80::/64 vlan 100 
(config)#ipv6 cps prefix check enable