Устранение неполадок при работе с OSPF

Skip to end of metadata
Go to start of metadata
Вы просматриваете старую версию данной страницы. Смотрите текущую версию. Сравнить с текущим  |   просмотр истории страницы

Теория

Соседи OSPF

  • Соседи (neighbours) — два маршрутизатора, интерфейсы которых находятся в одном широковещательном сегменте (и на которых включен OSPF на этих интерфейсах)
  • Отношения соседства (adjacency) — взаимосвязь между соседними маршрутизаторами, установленная с целью синхронизации информации
  • Hello-протокол (hello protocol) — протокол, использующийся для установки и поддержания соседских отношений
  • База данных соседей (neighbours database) — список всех соседей (также используется термин neighbour table)

Пакеты OSPF

  • Hello — пакеты, которые используются для обнаружения соседей, установки отношений соседства и мониторинга их доступности (keepalive)
  • DBD — пакеты, которые описывают содержание LSDB
  • LSR — пакеты, с помощью которых запрашивается полная информация об LSA, которых недостает в LSDB локального маршрутизатора
  • LSU — пакеты, которые передают полную информацию, которая содержится в LSA
  • LSAck — пакеты, с помощью которых подтверждается получение других пакетов

Соседи и установка отношений соседства

Обнаружение соседей начинается после того как:

  1. Протокол был включен глобально
  2. Выбран Router ID
  3. OSPF включен на интерфейсах

Для обнаружения и мониторинга соседей используются сообщения Hello.

Для того чтобы маршрутизаторы стали соседями, необходимо чтобы в hello-пакетах совпали значения таких полей:

  • Hello Interval — частота отправки сообщений Hello.
  • Router Dead Interval — период времени, по прохождению которого, сосед считается недоступным, если не было Hello.
  • Area ID — так как в OSPF граница зоны проходит через маршрутизатор, то маршрутизаторы в одном широковещательном сегменте, должны быть в одной зоне. Подробнее про зоны ниже.
  • Authentication — пароль использующийся для аутентификации и тип аутентификации. Маршрутизаторы не обязательно должны использовать аутентификацию, но если она используется, то пароли и тип должны совпадать.
  • Stub area flag — не обязательный флаг, который устанавливается на всех маршрутизаторах, которые принадлежат тупиковой зоне (stub area).

У маршрутизаторов должны совпадать сеть и маска сети.

Для того чтобы маршрутизаторы установили отношения соседства у них, кроме уже перечисленных критериев, должны совпадать значения IP MTU на интерфейсах. Информация о значении IP MTU передается в DD-пакетах и сравнивается в начале обмена DD-пакетами.

Поиск и устранение неисправностей

Все приведённые ниже команды можно вполнить только внутри контейнера BGP Blackhole, то есть после выполнения команды

chroot /app/bgp_blackhole

1. Настройте OSPF

Как это сделать подробно описано в статье.

2. Проверьте наличие соседей

sh ip ospf neighbor

Если соседи есть, то OSPF работает.

3. Проверьте сгенерированный конфигурационный файл

Конфигурационный файл сервера OSPF можно просмотреть командой:

cat /etc/frr/ospfd.conf

он генерируется на основе введённых в меню настройки параметров из шаблона:

/usr/local/share/frr5/ospfd.conf.j2

При несоответствии нужно исправить необходимые параметры.

Особое внимание обратите на параметры:

  • Hello Interval
  • Router Dead Interval
  • Area ID
  • Authentication

4. Проверьте наличие OSPF трафика

Пусть eth1 - интерфейс, на котором должны быть доступны соседи.

tcpdump -nvvvi eth1 proto ospf

Если используется VLAN, например трафик должен быть на интерфейсе eth1.15, но его нет - попробуйте исключить путаницу с номером тега - проверьте наличие трафика на eth1.

Если трафика нет, возможно, соседи доступны на другом интерфейсе. Проверьте все интерфейсы сразу:

tcpdump -nvvvi any proto ospf

Должны присутствовать данные LSDB

5. Воспользуйтесь режимом отладки

Варианты:

# vtysh -d ospfd

debug ospf packet hello
debug ospf lsa
debug ospf event

Результаты будут отображаться в /var/log/frr/ospfd.log

Если пользовались режимом отладки, то после завершения работ его нужно отключить. Перезапустите контейнер командой:

/app/bgp_blackhole/service restart
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.