Урок 35. Поиск и устранение неисправностей в OSPF

 

Неправильно настроена зона 

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

Как узнать в чем кроется проблема? 

Обычно после правильной настройки появляется следующее сообщение, указывающее на установление смежности и полную синхронизацию:

Уведомление об установлении полной смежности

Если его нет, то это явный признак того, что имеются проблемы на уровне L2 и L3. 

Допустим на L2 все хорошо, как быть дальше? 

Посмотрим на рисунок ниже. На R1 установили по ошибке зону 1 вместо зоны 2.

Сетевая диаграмма

Для начала можно проверить настройки протокола всех маршрутизаторов командой show ip protocols:

Отображение номера зоны OSPF в текущих настройках

Отображение номера зоны OSPF в текущих настройках в R2

Отображение номера зоны OSPF в текущих настройка в R3

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

Другой способ заключается в отладчике событий OSPF. Запускается он командой  debug ip ospf events:

Обнаружение несоответствия номера зоны в отладочных логах

 

 

Неправильно настроены таймеры 

Иногда для улучшения скорости сходимости протокола уменьшают интервал таймеров Hello. Однако значения всех таймеров должны быть одинаковы для соседних роутеров, иначе отношения смежности не будут установлены. Следует учитывать тот факт, что изменение Hello таймера автоматически изменяет и таймеры Dead и Wait.  

Как себя поведут роутеры в данном случае? 

Также, как и с несовпадающим номером зоны - Hello пакеты будут игнорироваться. Чтобы проверить таймеры выполните show ip ospf interface:

Отображение установленных таймеров OSPF

А вот как будет выглядеть лог отладчика (запускаем с помощью debug ip ospf events):

Сообщения логов отладчика

Что будет, если изменить только значение Dead? 

Значение Hello останется прежним, а Wait - станет равным Dead.

 

Одинаковое значение Router ID 

В OSPF очень важно иметь уникальный Router ID и дубликаты не допустимы. В качестве ID выбирается IP адрес работающего интерфейса или Loopback, если специально не выполнена следующая команда: 

Router(config-router)#router-id значение 

Если по ошибке сконфигурирован Loopback с одинаковым адресом на соседних роутерах, то будет выведен лог, указывающий на дубликат:

Сообщение об одинаковых Router-ID

Чтобы увидеть ID выполните show ip protocol:

Отображение текущего Router-ID

 

 

Аутентификация 

Как мы уже знаем из предыдущих уроков неверно настроенная аутентификация может стать проблемой при установлении состояния “соседства”. В RIP и EIGRP настройка очень похожа, однако в OSPF имеется небольшой нюанс, так как она может быть настроена локально на интерфейсе либо глобально для всего маршрутизатора.  

Для проверки конфигурации можно воспользоваться командами, указанными ниже: 

Router# show ip ospf номер_процесса

Проверка аутентификации в OSPF

Проверка аутентификации в R1

 

Router# show running-config

Проверка настроек OSPF аутентификации в текущей конфигурации в R2

Проверка OSPF аутентификации в текущей конфигурации в R1

 

 

Несовпадение значений MTU 

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

Рассмотрим простую сеть ниже.

Сетевая диаграмма

На R4 используется стандартное значение MTU = 1500, а на R5 - так называемые Jumbo кадры с MTU = 3000. 

Посмотрим на состояние смежности:

Отображение состояние смежности OSPF в R4

Отображение состояние смежности OSPF в R5

Оба маршрутизатора “застряли” в состоянии Exstart. Как мы знаем на этом этапе роутеры выбирают DR/BDR и начинают обмениваются пакетами DBD, которые содержат топологические данные. Именно пакеты DBD чувствительны к размеру MTU и если соседи имеют разные значения, то сторона с меньшим MTU будет игнорировать пакеты с более высоким значением.

Запускаем отладчик, чтобы в этом убедиться:

Включение отладчика логов OSPF

Решить данную проблему можно 2-мя способами: 

    1. Подкорректировать MTU
    2. Указать роутеру, чтобы он игнорировал расхождения в значениях MTU

 

Для корректировки применяем команду на интерфейсе: 

Router#(config-if)# mtu значение 

Проверяем: 

Router# show ip interface номер_интерфейса

проверка MTU в настройках интерфейса

 

Для игнорирования применяем следующую команду: 

Router(config-if)# ip ospf mtu-ignore

 

Redistribute connected 

Работая с командой redistribute connected следует учитывать то, что она работает только для классовых сетей. Например, у нас 2 интерфейса, на первом настроен адрес сети 199.1.1.0/24, а на другом - 10.1.1.0/24. Выполнив команду появится следующее предупреждение:

Предупреждение, что будут анонсированы только классовые сети

После чего будет анонсирована только сеть 199.1.1.0/24, потому что мы ее не делили на более мелкие подсети. Сеть 10.1.1.0 относится к классу А, однако имеет маску отличную от 255.0.0.0, поэтому и будет проигнорирована. 

Но как заставить маршрутизатор включить подобные подсети в свои анонсы? 

Можно включить OSPF процесс на данных интерфейсах и пометить их как пассивные, то есть применить следующую команду: 

Router(config-router)# passive-interface название_интерфейса