Траблшутинг сходимости OSPF в сетях NBMA: настройка соседей и типов сетей
- OSPF соседи застревают в состоянии
INIT,2-WAYилиATTEMPT. - Отсутствие автоматического обнаружения соседей по Multicast адресам
224.0.0.5и224.0.0.6. - Асимметричная видимость маршрутов в топологии Hub-and-Spoke DMVPN (Phase 1/2/3).
- Постоянные перевыборы DR/BDR, вызывающие пересчет алгоритма SPF (Shortest Path First).
1. Особенности OSPF в средах NBMA (Non-Broadcast Multi-Access)
В сетях NBMA (например, mGRE/DMVPN, VPLS без multicast snooping, спутниковые линки) широковещательные и мультикаст-пакеты не передаются аппаратно между узлами. OSPF требует либо явного указания статических соседей (neighbor), либо принудительной смены типа сети (ip ospf network).
2. Сравнение типов сетей OSPF в NBMA
| Тип сети OSPF | Требует DR/BDR? | Использует Multicast? | Требует 'neighbor'? | Hello / Dead таймеры |
|---|---|---|---|---|
Non-Broadcast | Да | Нет (Unicast) | Да (обязательно) | 30 / 120 с |
Point-to-Multipoint | Нет | Да (Multicast) | Нет | 30 / 120 с |
Broadcast | Да | Да (Multicast) | Нет | 10 / 40 с |
Point-to-Point | Нет | Да (Multicast) | Нет | 10 / 40 с |
3. Настройка классического режима NBMA (Статические соседи)
! Конфигурация на Hub-маршрутизаторе
interface Tunnel0
ip address 172.16.1.1 255.255.255.0
ip ospf network non-broadcast
ip ospf priority 255 ! Гарантируем, что Hub станет DR
!
router ospf 1
neighbor 172.16.1.2 priority 0
neighbor 172.16.1.3 priority 0
! Конфигурация на Spoke-маршрутизаторе
interface Tunnel0
ip address 172.16.1.2 255.255.255.0
ip ospf network non-broadcast
ip ospf priority 0 ! Запрещаем Spoke становиться DR/BDR4. Рекомендуемое решение для DMVPN: Point-to-Multipoint
Режим Point-to-Multipoint исключает необходимость выборов DR/BDR и строит маршруты от хоста к хосту (/32 host routes):
! Настройка на Hub и всех Spoke
interface Tunnel0
ip ospf network point-to-multipoint
ip ospf hello-interval 10
ip ospf dead-interval 405. Траблшутинг и верификация
! Проверка совпадения параметров Hello/Dead и Network Type
show ip ospf interface Tunnel0
! Проверка статуса установления смежности
show ip ospf neighbor detail
! Отладка Hello пакетов
debug ip ospf hello Частые вопросы (FAQ)
Почему OSPF сосед находится в состоянии 'ATTEMPT'?
Состояние ATTEMPT бывает только в сетях NBMA (non-broadcast) при ручной настройке neighbor. Оно означает, что локальный роутер отправил одноадресный Hello-пакет соседу, но еще не получил никакого ответа.
Что произойдет, если Spoke станет DR в топологии Hub-and-Spoke?
Если Spoke станет DR, топология L3 разрушится, так как другие Spoke-маршрутизаторы не имеют прямых L2/L3 туннелей между собой без участия Hub. Всегда настраивайте 'ip ospf priority 0' на периферийных узлах.
Почему в сети OSPF Point-to-Multipoint маршруты анонсируются с маской /32?
По спецификации RFC 2328 в режиме Point-to-Multipoint OSPF рассматривает каждый подключенный узел как отдельный хостовый маршрут (/32) для обеспечения связности при неполносвязной (partial-mesh) топологии.
Совместимы ли различные OSPF Network Types между двумя концами одного линка?
Совместимы только те типы, у которых совпадают таймеры Hello/Dead и отношение к DR/BDR. Например, Point-to-Point и Broadcast могут сойтись только при ручной подгонке таймеров, но это нарушит установку маршрутов в FIB.