В 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 (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 сервер. На картинке показаны три действия, происходящие при этом, давайте рассмотрим их:
В действительности количество шагов больше. Показаны те, что важны для понимания работы описываемых технологий на коммутаторах 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 на коммутаторе агрегации.
На коммутаторах 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 |