Просмотр Исходного

h2. Общее.

h4. Соседи OSPF:

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

h4. Пакеты OSPF:

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

h3. Соседи. Установка отношений соседства.

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

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-пакетами.

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

h5. Шаг 1. Проверить правильность настройки OSPF согласно [статье|REDUCTOR9:Настройка OSPF для получения маршрутов до абонентов].

h5. Шаг 2. Проверить наличие соседей.
{code}
sh ip ospf neighbor
{code}

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

h5. Шаг 3. Проверить введенные данные при настройке OSPF на Шаг 1 и сравнить с конфигом:
{code}
cat /etc/frr/ospfd.conf
{code}

При несоответствии исправить необходимые параметры. Сам конфиг генерируется из шаблона /usr/local/share/frr5/ospfd.conf.j2

h5. Шаг 4. Проверить соответствующие заданные параметры Hello Interval,Router Dead Interval,Area ID,Authentication

h5. Шаг 5. Проверьте наличие OSPF пакетов на настроенном интерфейсе и в сети:
{code}
tcpdump -nvvv proto ospf
{code}

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

h5. Шаг 6. Если все предыдущие условия не привели к пониманию ошибки, необходимо использовать debug

Варианты:
{code}
debug ospf packet hello
debug ospf lsa
debug ospf event
{code}

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

После завершения debug не забудьте его отключить "no debug ..."