Общее.
Соседи OSPF:
- Соседи (neighbours) — два маршрутизатора, интерфейсы которых находятся в одном широковещательном сегменте (и на которых включен OSPF на этих интерфейсах)
- Отношения соседства (adjacency) — взаимосвязь между соседними маршрутизаторами, установленная с целью синхронизации информации
- Hello-протокол (hello protocol) — протокол, использующийся для установки и поддержания соседских отношений
- База данных соседей (neighbours database) — список всех соседей (также используется термин neighbour table)
Пакеты OSPF:
- Hello — пакеты, которые используются для обнаружения соседей, установки отношений соседства и мониторинга их доступности (keepalive)
- DBD — пакеты, которые описывают содержание LSDB
- LSR — пакеты, с помощью которых запрашивается полная информация об LSA, которых недостает в LSDB локального маршрутизатора
- LSU — пакеты, которые передают полную информацию, которая содержится в LSA
- LSAck — пакеты, с помощью которых подтверждается получение других пакетов
Соседи. Установка отношений соседства.
Обнаружение соседей начинается после того как:
- Протокол был включен глобально
- Выбран Router ID
- 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-пакетами.
Поиск и устранение неисправностей.
Шаг 1. Проверить правильность настройки OSPF согласно статье.
Шаг 2. Проверить наличие соседей.
sh ip ospf neighbor
Если соседи есть, то OSPF работает.
Шаг 3. Проверить введенные данные при настройке OSPF на Шаг 1 и сравнить с конфигом:
cat /etc/frr/ospfd.conf
При несоответствии исправить необходимые параметры. Сам конфиг генерируется из шаблона /usr/local/share/frr5/ospfd.conf.j2
Шаг 4. Проверить соответствующие заданные параметры Hello Interval,Router Dead Interval,Area ID,Authentication
Шаг 5. Проверьте наличие OSPF пакетов на настроенном интерфейсе и в сети:
tcpdump -nvvv proto ospf
Должны присутствовать данные LSDB
Шаг 6. Если все предыдущие условия не привели к пониманию ошибки, необходимо использовать debug
Варианты:
debug ospf packet hello debug ospf lsa debug ospf event
Результаты будут отображаться в /var/log/frr/ospfd.log
После завершения debug не забудьте его отключить "no debug ..."