Анализ и устранение сбоев маршрутизации IPv6: Neighbor Discovery и SLAAC
- Хосты не получают глобальный адрес IPv6 (GUA) или шлюз по умолчанию через механизм SLAAC.
- Периодическая недоступность IPv6-узлов в пределах одного L2-сегмента (NDP Neighbor Resolution failure).
- Интерфейсы хостов блокируют IPv6-адреса со статусом
dadfailed/tentativeиз-за ошибок Duplicate Address Detection. - Маршрутизаторы генерируют слишком частые сообщения Router Advertisement (RA), перегружая эфир беспроводных сетей.
1. Проверка состояния таблицы соседей IPv6 (NDP Cache)
# Cisco IOS-XE
show ipv6 neighbors
show ipv6 routers
show ipv6 interface GigabitEthernet0/0/1
# Linux диагностика
ip -6 neigh show
ip -6 route show
# Windows
netsh interface ipv6 show neighbors2. Анализ сообщений Router Advertisement (RA) и флагов SLAAC
Поведение клиентов IPv6 определяется флагами в сообщениях RA:
- A-флаг (Autonomous Address Configuration): разрешает клиентам сгенерировать адрес самостоятельно по SLAAC.
- M-флаг (Managed Address Configuration): указывает получать IPv6-адрес через Stateful DHCPv6.
- O-флаг (Other Configuration): указывает получать DNS/NTP через Stateless DHCPv6.
Корректная настройка маршрутизатора (Cisco IOS):
interface GigabitEthernet0/0/1
no shutdown
ipv6 address 2001:db8:acad:10::1/64
ipv6 enable
ipv6 nd prefix 2001:db8:acad:10::/64 86400 14400 no-autoconfig # Если используется DHCPv6
# Либо для классического SLAAC:
no ipv6 nd managed-config-flag
no ipv6 nd other-config-flag
ipv6 nd ra interval 30
ipv6 nd ra lifetime 1803. Устранение сбоев Duplicate Address Detection (DAD)
Если порт коммутатора находится в состоянии STP Forwarding Delay, хост не успевает отправить и получить Neighbor Solicitation для проверки DAD при включении:
# Включите PortFast на портах доступа коммутатора:
interface GigabitEthernet0/5
spanning-tree portfast
# Включение RA Guard для защиты от фальшивых маршрутизаторов IPv6
ipv6 snooping policy RA_BLOCK
device-role node
!
interface GigabitEthernet0/5
ipv6 nd raguard attach-policy RA_BLOCK4. Захват пакетов ICMPv6 в Wireshark / tcpdump
# Захват ключевых сообщений NDP (Router/Neighbor Solicitation/Advertisement)
tcpdump -nnvv -i eth0 'icmp6 && (ip6[40] == 133 || ip6[40] == 134 || ip6[40] == 135 || ip6[40] == 136)' Частые вопросы (FAQ)
Чем протокол NDP в IPv6 отличается от ARP в IPv4?
NDP работает на сетевом уровне с использованием сообщений ICMPv6 и адресного мультикаста (Solicited-Node Multicast: FF02::1:FFXX:XXXX), исключая широковещательный флуд (Broadcast), присущий ARP в IPv4.
Почему хост получает адрес Link-Local вида FE80::, но не может выйти в Интернет?
Link-Local адрес генерируется стеком ОС локально и действует только внутри L2-сегмента. Отсутствие Global Unicast адреса (2000::/3) указывает на то, что хост не получил сообщения Router Advertisement (RA) от маршрутизатора или они заблокированы фаерволом.
Что такое Rogue RA и как от них защититься?
Rogue RA — это несанкционированные сообщения Router Advertisement, рассылаемые некорректно настроенным сервером или злоумышленником, перенаправляющие весь IPv6 трафик на себя (Man-in-the-Middle). Защита строится с помощью механизма IPv6 RA Guard на L2-коммутаторах.
Зачем нужен DAD (Duplicate Address Detection)?
Перед назначением сгенерированного адреса хост переводит его в состояние 'tentative' и отправляет Neighbor Solicitation запрос. Если в ответ приходит Neighbor Advertisement, адрес считается занятым, блокируется, и хост сообщает об ошибке коллизии адресов.