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

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Глоссарий

  • 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
  • No labels