Перейти к содержимому
AD Academy
CCNA — Основы сетей Cisco
Средний16 мин.Обновлено: Тема 10 из 12

OSPFv2: Router ID, Hello и DR/BDR

Динамическая маршрутизация, которая обновляется автоматически: как строится соседство, кто выбирается DR и как диагностировать проблемы.

Не прочитано

Что вы узнаете

  • Четыре вещи, которые должны совпадать между соседями
  • Verification — как проверить, что это действительно работает
  • Распространенные ошибки (и что проверять)

Перед этой темой стоит прочитать:EtherChannel: LACP и PAgP

Аналогия: статическая маршрутизация — это постоянный дорожный знак: если дорога закрыта, знак все равно направляет вас туда. OSPF — это Waze: все маршрутизаторы сообщают друг другу о состоянии каналов и пересчитывают маршрут за секунды.

1. DOWN → INIT: получен односторонний Hello. 2. 2-WAY: маршрутизаторы видят друг друга, в сети Ethernet выбираются DR и BDR по приоритету и Router ID. 3. EXSTART/EXCHANGE: обмен описанием базы, здесь важно совпадение MTU. 4. LOADING → FULL: базы синхронизированы. Router ID выбирается вручную, иначе по старшему loopback, иначе по активному интерфейсу. Совпадать должны area, подсеть, таймеры и аутентификация.

Четыре вещи, которые должны совпадать между соседями

  • Та же Area (например, Area 0) и та же сеть/маска подсети на канале.
  • Те же Hello и Dead Interval (по умолчанию 10 / 40 секунд).
  • Та же настройка аутентификации (Authentication), если она существует.
  • Уникальный Router ID — выбирается вручную с помощью router-id, иначе по наивысшему Loopback, иначе по активному интерфейсу.
  • В общей сети Ethernet DR и BDR выбираются по Priority (по умолчанию 1) и при равенстве по наивысшему Router ID — они централизуют обмен обновлениями.
Router(config)# router ospf 1
Router(config-router)# router-id 1.1.1.1
Router(config-router)# network 192.168.10.0 0.0.0.255 area 0
Router(config-router)# network 10.0.0.0 0.0.0.3 area 0

! Не отправлять Hello в сторону пользователей/серверов
Router(config-router)# passive-interface gi0/1
Router(config-router)# default-information originate

! Принудительно назначить определенный маршрутизатор DR
Router(config-if)# ip ospf priority 255

! Проверки
Router# show ip ospf neighbor
Router# show ip ospf interface brief
Router# show ip route ospf
bash

Verification — как проверить, что это действительно работает

R1# show ip ospf neighbor
Neighbor ID   Pri  State     Dead Time  Address       Interface
2.2.2.2         1  FULL/DR   00:00:34   10.0.0.2      GigabitEthernet0/0
3.3.3.3         1  FULL/BDR  00:00:31   10.0.0.3      GigabitEthernet0/0
! State = FULL → LSDB синхронизирована. Dead Time отсчитывается назад от 40 и сбрасывается при каждом Hello.

R1# show ip route ospf
O    192.168.20.0/24 [110/2] via 10.0.0.2, 00:04:11, GigabitEthernet0/0
O*E2 0.0.0.0/0       [110/1] via 10.0.0.2, 00:04:11, GigabitEthernet0/0
! O = получено от OSPF · 110 = Administrative Distance · 2 = Cost

R1# show ip ospf interface brief
Interface  PID  Area  IP Address/Mask  Cost  State  Nbrs F/C
Gi0/0        1     0  10.0.0.1/30         1  DR       2/2
Gi0/1        1     0  192.168.10.1/24     1  DR       0/0
bash

Распространенные ошибки (и что проверять)

  • Неверная Wildcard Mask — /24 = 0.0.0.255, /30 = 0.0.0.3. Неверная маска ⇒ интерфейс вообще не входит в OSPF (Nbrs 0/0).
  • Несоответствие MTU между соседями — соседство застревает в EXSTART/EXCHANGE. Проверяем в show interfaces и выравниваем до 1500.
  • Дублирующийся Router ID между двумя маршрутизаторами — соседство не устанавливается. Настраиваем router-id вручную, затем clear ip ospf process.
  • Разные Area по обе стороны канала, или разные Hello/Dead Timers — соседа нет вообще.
  • Разные Subnet Mask на одном и том же канале (например, /24 против /30) — OSPF отказывается устанавливать соседство.
  • ACL или Authentication блокируют Hello в одном направлении — сосед застрял в INIT.
  • Забыли passive-interface в сторону пользователей — Hello отправляется в пользовательскую сеть, шум и риск безопасности.
Архитектура и теория — под капотом

OSPF — это Link-State: каждый маршрутизатор распространяет LSA, все строят одинаковую карту сети (LSDB) и запускают алгоритм Dijkstra для расчета кратчайшего пути.

Down -> Init -> 2-Way -> ExStart -> Exchange -> Loading -> FULL
                  ^                                        ^
            видим Hello                             полное соседство

Hello=10s / Dead=40s (broadcast)   Cost = 100Mbps / BW
text
  • Router ID определяется один раз при запуске процесса и сам не меняется — изменение требует clear ip ospf process, поэтому его всегда устанавливают вручную на стабильном Loopback.
  • DR/BDR выбираются в Broadcast-сети для уменьшения количества соседств; по Priority, затем Router ID. В Point-to-Point нет DR.
  • Все соседи должны согласовать: Area ID, Hello/Dead timers, аутентификацию, MTU и Subnet.
  • Passive-interface: маршрутизатор по-прежнему анонсирует сеть, но не отправляет Hello — обязательно для пользовательских интерфейсов.
Практическая настройка (CLI)
R(config)# router ospf 1
R(config-router)# router-id 1.1.1.1
R(config-router)# network 192.168.10.0 0.0.0.255 area 0
R(config-router)# network 10.0.0.0 0.0.0.3 area 0
R(config-router)# passive-interface gi0/1
R(config-router)# default-information originate
R(config)# interface gi0/0
R(config-if)# ip ospf priority 255        ! заставить DR
R(config-if)# ip ospf cost 10
bash
Реальные сценарии в организации
  • Мультисайтовая сеть: каждый филиал анонсирует свои сети, а восстановление после сбоя происходит автоматически.
  • Loopback в качестве стабильного Router ID — не меняется, даже если интерфейс выходит из строя.
  • Single-Area (area 0) достаточно для большинства средних организаций.
Диагностика и устранение неисправностей
R# show ip ospf neighbor        ! Должен быть FULL или 2WAY (с DROTHER)
R# show ip ospf interface brief
R# show ip route ospf           ! Маршруты помечены O / O*E2
R# show ip protocols
R# debug ip ospf adj
bash
  • Сосед застрял в EXSTART/EXCHANGE → несоответствие MTU между интерфейсами.
  • Сосед в состоянии 2-WAY, и это нормально → в Broadcast-сети только DR/BDR достигают FULL, остальные маршрутизаторы намеренно остаются 2-WAY.
  • Duplicate Router ID → соседство постоянно разрывается и восстанавливается.
  • Сосед исчезает каждые 40 секунд → потеря пакетов Hello в линии.
Глоссарий и быстрая командная строка
  • 110 | Cost = 100M/BW | Hello 10 / Dead 40
  • network <net> <wildcard> area <n>
  • show ip ospf neighbor — команда №1
  • Рабочее состояние: FULL/DR, FULL/BDR, FULL/ -

Проверь себя

Какой статус соседства OSPF указывает на полную стабильность?

Что делает passive-interface в OSPF?

Эта страница вам помогла?