img

Поиск и устранение проблем в OSPF

В этой статье рассматривается OSPF и все проблемы, которые могут возникнуть с этим протоколом. OSPF отличается от EIGRP протоколом состояния канала, но общим для них является то, что оба протокола маршрутизации устанавливают соседство до обмена информацией о маршрутизации. В случае OSPF мы обмениваемся LSA (объявление о состоянии канала), чтобы создать LSDB (база данных о состоянии канала). Наилучшая информация из LSDB будет скопирована в таблицу маршрутизации.

В этой части мы начнем с устранения неполадок соседей OSPF. Как только у нас есть рабочее соседство OSPF, мы рассмотрим другие проблемы, такие как отсутствующие маршруты.

Full просмотр соседства OSPF

При просмотре соседства OSPF, мы видим, что оно сообщает нам Full. Необходимо больше информации для понимания состояния Full.

Если смежность соседства OSPF не полная, мы рассматриваем одно из следующих состояний:

  • Соседей нет вообще
  • Оно "залипло" в ATTEMPT.
  • Оно "залипло" в INIT.
  • Оно "залипло" в 2-WAY.
  • Оно "залипло" в EXSTART/EXCHANGE.
  • Оно "залипло" в LOADING.

Давайте начнем и рассмотрим разные ситуации, которые могут возникнуть с соседством OSPF!


Видео: протокол OSPF (Open Shortest Path First) за 8 минут


Урок 1

у нас есть 2 маршрутизатора

Мы начнем со сценариев, когда OSPF вообще не имеет соседства. В приведенном выше примере у нас есть 2 маршрутизатора.

нет никакого OSPF соседства

Как вы можете видеть, у нас нет никакого OSPF соседства, что может быть не так?

show ip ospf interface show ip ospf interface

Можно было просто посмотреть на текущую конфигурацию и выяснить, что не так, но мы не ищем простых путей. Мы используем другие полезные команды OSPF. Сначала используем команду show ip ospf interface. Мы видим, что OSPF не включен на интерфейсе FastEthernet 0/0 R1, но он работает на R2.

Кто-то допустил ошибку с командой network и набрал неверный сетевой адрес

Кто-то допустил ошибку с командой network и набрал неверный сетевой адрес ... простая ошибка, но такие вещи случаются.

R1(config)#router ospf 1
R1(config-router)#no network 192.168.21.0 0.0.0.255 area 0
R1(config-router)#network 192.168.12.0 0.0.0.255 area 0

Настройка правильного сетевого адреса и обратной маски устраняет эту ошибку.

Настройка правильного сетевого адреса
Проблема решена. Соседство OSPF установлено. Это было легкое начало... Итог урока: проверьте правильность настройки сетевого адреса, обратной маски и области.

Урок 2

2 маршрутизатора, но проблема другая

Очередная проблема. Схема аналогичная: 2 маршрутизатора, но проблема другая.

нет никакого соседства OSPF

Как вы видите, нет никакого соседства OSPF.

Протокол OSPF был включен на интерфейсе обоих маршрутизаторов

Протокол OSPF был включен на интерфейсе обоих маршрутизаторов, поэтому мы знаем, что был использован правильный тип сети. Однако если вы внимательно посмотрите на R1, то увидите, что на нем написано "No Hellos (Пассивный интерфейс)". Если вы настроите пассивный интерфейс, то сеть на интерфейсе все равно будет объявлена, но она не будет отправлять приветственные пакеты OSPF. Таким образом, невозможно создать соседство OSPF.

невозможно создать соседство OSPF

Вот она проблема.

R1(config)#router ospf 1
R1(config-router) #no passive-interface Fe0/0

Удалим пассивный интерфейс.

Удалим пассивный интерфейс

Соседство OSPF работает. Проблема устранена!

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

Урок 3

те же маршрутизаторы, другая проблема

Следующий сценарий с теми же маршрутизаторами, но другая проблема.

R1 показывает, что наш сосед OSPF находится в состоянии INIT R2 ничего не показывает

Интересно... R1 показывает, что наш сосед OSPF находится в состоянии INIT, а R2 ничего не показывает.

OSPF был правильно настроен на обоих интерфейсах OSPF был правильно настроен на обоих интерфейсах

Как мы видим, в примере выше OSPF был правильно настроен на обоих интерфейсах.

Поскольку R1 показывает состояние INIT, мы можем сделать вывод, что он получает что-то от R2. R2 ничего не показывает, поэтому, вероятно, ничего не получает от R1. OSPF использует пакеты приветствия для установления соседства OSPF, и они отправляются с использованием многоадресного адреса 224.0.0.5.

можем ли мы пропинговать адрес многоадресной рассылки можем ли мы пропинговать адрес многоадресной рассылки

Рекомендуется проверить, можем ли мы пропинговать адрес многоадресной рассылки, который OSPF использует для пакетов приветствия. Мы видим, что R1 и R2 оба не получают ответа.

Отправка эхо-запросов друг другу проходят без проблем Отправка эхо-запросов друг другу проходят без проблем

Отправка эхо-запросов друг другу проходят без проблем. Так что может вызвать проблемы с отправкой и получением многоадресного трафика OSPF? Как насчет списка доступа?

на R2 имеется входящий список доступа на R2 имеется входящий список доступа

Мы что-то нашли. И это то, что на R2 имеется входящий список доступа с именем BLOCKSTUFF.

в нижней части access-list имеется данный запрет

Список доступа разрешает только TCP, UDP и ICMP трафик. OSPF не использует TCP или UDP, и он удаляется этим списком доступа из-за deny any. Мы этого не видим в верхнем листинге, но в нижней части access-list имеется данный запрет.

R2(config)#ip access-list extended BLOCKSTUFF
R2(config-ext-nacl)#5 permit ospf any any
проведем коррекцию

Проведем коррекцию access-list, чтобы был разрешен трафик OSPF.

теперь она отображается как Full

Проблема решена, теперь она отображается как Full.

теперь можно пинговать адрес многоадресной рассылки 224.0.0.5 OSPF теперь можно пинговать адрес многоадресной рассылки 224.0.0.5 OSPF

Ну что, теперь можно пинговать адрес многоадресной рассылки 224.0.0.5 OSPF. Мы видим ответ с другой стороны.

Итог урока: не блокируйте многоадресные адреса OSPF 224.0.0.5 и 224.0.0.6 (DR / BDR).

Урок 4

от же сценарий, другая проблема

Это еще не все! Тот же сценарий, другая проблема:

Соседство OSPF  отсутствует, но мы видим, что OSPF был включен на интерфейсе Соседство OSPF  отсутствует, но мы видим, что OSPF был включен на интерфейсе Соседство OSPF  отсутствует, но мы видим, что OSPF был включен на интерфейсе Соседство OSPF  отсутствует, но мы видим, что OSPF был включен на интерфейсе

Соседство OSPF отсутствует, но мы видим, что OSPF был включен на интерфейсе.

Пинг на адреса многоадресной рассылки проходит Пинг на адреса многоадресной рассылки проходит

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

что происходит за кулисами

Это очень полезная отладка, которая позволяет увидеть, что происходит за кулисами.

сбросим процесс OSPF

Мы сбросим процесс OSPF, чтобы ускорить отладку. Имейте в виду, что вы также можете сбросить только одно соседство OSPF. Это лучшая идея, если это применяется в производственной сети (сети предприятия или организации).

R1 говорит, что он получил пакет

Теперь нам есть с чем работать. R1 говорит, что он получил пакет hello, но у нас есть несоответствующие параметры hello. R означает то, что мы получили, а C - что мы настроили.

Как мы видим, существует несоответствие в маске подсети. R1 настроен с маской подсети 255.255.255.0, в то время как R2 имеет маску подсети 255.255.255.128. OSPF будет сравнивать маску подсети только в том случае, если вы используете широковещательный тип сети.

show ip ospf interface show ip ospf interface

Можно использовать команду show ip ospf interface для проверки типа сети, и видно, что она является broadcast.

Здесь мы видим, что R2 имеет другую маску подсети Здесь мы видим, что R2 имеет другую маску подсети

Здесь мы видим, что R2 имеет другую маску подсети. Необходимо это исправить!

R2(config)#interface Fe0/0
R2(config-if)#ip address 192.168.12.2 255.255.255.0

Достаточно просто...

соседство  OSPF работает соседство  OSPF работает

Теперь мы видим, соседство OSPF работает.

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

Урок 5

Та же топология, и у нас очередная проблема с пакетами hello

Давайте продолжим, но уже со следующей ошибкой. Та же топология, и у нас очередная проблема с пакетами hello. Сразу перейдем к отладочной части:

проблема похожа на наш последний сценарий

Эта проблема похожа на наш последний сценарий. Есть часть параметров, которые должны совпадать в hello-пакете, чтобы создать соседство OSPF. dead-interval на R1 сконфигурирован на 24 секунды, а на R2 - на 11 секунд. hello-interval сконфигурирован на 10 секунд на R2 и 6 секунд на R1. Поменяем настройки параметров:

R1(config)#interface Fe0/0
R1(config-if)#ip ospf hello-interval 10
R1(config-if)#ip ospf dead-interval 11

Нам нужно изменить это на уровне интерфейса.

Введенные команды с новыми параметрами
Введенные команды с новыми параметрами решают нашу проблему. Соседство OSPF работает.

Урок 6

Топология

Еще одна проблема, с которой нам, возможно, придется столкнуться, это аутентификация. OSPF предлагает 3 метода аутентификации:

  • без аутентификации
  • Plaintext
  • MD5 аутентификация
нет соседей OSPF нет соседей OSPF

Как мы видим, у нас нет соседей OSPF. Давайте используем debug:

Debug ip ospf adj

Debug ip ospf adj поможет нам решить эти неполадки. Видно, что мы получаем пакет с аутентификацией типа 2, а используется тип 0. Вот что это значит:

  • Type 0: нет аутентификации.
  • Type 1: plaintext аутентификация.
  • Type 2: MD5 аутентификация.

Соответственно - R1 сконфигурирован без аутентификации, а R2 сконфигурирован на использование аутентификации MD5.

R2 сконфигурирован на использование аутентификации MD5

Мы также можем посмотреть информацию OSPF для каждого интерфейса, чтобы увидеть, включена ли аутентификация или нет.

включена ли аутентификация или нет

Это то, что настроено на интерфейсе R2.

R1(config)#interface FastEthernet0/0
R1(config-if)#ip ospf authentication message-digest
R1(config-if)#ip ospf message-digest-key 1 md5 MYKEY

Мы копируем и вставляем его в R1.

копируем и вставляем его в R1

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

R1(config)#interface FastEthernet0/0
R1(config-if)#no ip ospf message-digest-key 1 md5 MYKEY
R1(config-if)#ip ospf message-digest-key 1 md5 WRONGKEY

Сначала мы поменяем ключ:

отладчик говорит нам, что мы используем неправильный ключ

Наш отладчик говорит нам, что мы используем неправильный ключ между нашими маршрутизаторами.

Извлеченный урок: убедитесь, что вы используете один и тот же тип аутентификации OSPF и пароль между маршрутизаторами.

Урок 7

Тот же сценарий

Что еще может пойти не так? Кажется, что нет никаких проблем, связанных с соседством OSPF! Тот же сценарий, теперь другая проблема:

Соседство отсутствует OSPF Соседство отсутствует OSPF

OSPF-соседство отсутствует.

есть несоответствие в номере области

На одном из наших маршрутизаторов появилось сообщение. Оно не требует объяснений, похоже, у нас есть несоответствие в номере области.

R1 настроен для области 1, а R2 настроен для области 0 R1 настроен для области 1, а R2 настроен для области 0

R1 настроен для области 1, а R2 настроен для области 0. Исправляем:

network
R1(config)#router ospf 1
R1(config-router)#no network 192.168.12.0 0.0.0.255 area 1
R1(config-router)#network 192.168.12.0 0.0.0.255 area 0

Мы используем команду network, чтобы задать правильный номер области.

network

Ура, все работает!

Итог урока: убедитесь, что ваши маршрутизаторы OSPF согласовывают один и тот же номер области.

Урок 8

а этот раз R1 и R2 находятся в одной зоне 1

Рисунок выше слегка отличается от предыдущего. На этот раз R1 и R2 находятся в одной зоне 1.

нет соседей нет соседей

Вот так сюрприз... нет соседей! Запускаем отладку:

Запускаем отладку

Очень интересно! Существует несоответствие в опции stub/transit area. OSPF имеет различные типы областей, и оба маршрута должны согласовываться с типом области (stub, nssa, totally stub и totally nssa).

R1, по-видимому, настроен на использование normal area

R1, по-видимому, настроен на использование normal area.

R2, похоже, настроен на использование stub area

R2, похоже, настроен на использование stub area. Несоответствие в типе области означает, что мы не можем установить соседство OSPF.

R2 имеет команду area 1 stub

На листинге выше мы видим, что R2 имеет команду area 1 stub. Удалим ее.

R2(config)#router ospf 1
R2(config-router)#no area 1 stub

Изменим область 1 на normal area для R2.

Изменим область 1 на normal area для R2 Изменим область 1 на normal area для R2
Итог урока: убедитесь, что ваши маршрутизаторы OSPF используют один и тот же тип области.

Урок 9

Очередная ситуация с неполадками с OSPF

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

посмотрим на конфигурацию OSPF обоих маршрутизаторов посмотрим на конфигурацию OSPF обоих маршрутизаторов

Это простая конфигурация.

таблица соседства OSPF не пустая таблица соседства OSPF не пустая

У нас таблица соседства OSPF не пустая, но оба маршрутизатора "застряли" в состоянии 2WAY. Помимо поиска нужного нам слова "FULL", следует обратить внимание на две вещи, отображаемые командой show:

  • Оба маршрутизатора показывают друг друга как DROTHER.
  • Приоритет для обоих маршрутизаторов равен 0.

В multi-access сети, такой как Ethernet, OSPF будет выполнять выборы DR/BDR, если тип сети broadcast или non-broadcast.

Проверяем тип сети:

Оба интерфейса настроены для типа сети broadcast Оба интерфейса настроены для типа сети broadcast

Оба интерфейса настроены для типа сети broadcast. Это значение по умолчанию для интерфейсов Ethernet. Это означает, что у нас есть выборы DR/BDR, но оба маршрутизатора настроены на приоритет 0, а это означает, что они не будут участвовать в выборах DR/BDR. По этой причине они застряли в состоянии 2WAY. Необходимо это исправить:

R1(config)#interface fastEthernet 0/0
R1(config-if)#ip ospf priority 1

Мы изменим приоритет на одном из маршрутизаторов.

Мы видим, что R1 был выбран для DR Мы видим, что R1 был выбран для DR

Все работает. Мы видим, что R1 был выбран для DR, потому что он имеет приоритет 1. Итог урока: Типы широковещательной и не вещательной сети требуют выбора DR/BDR. Убедитесь, что один из маршрутизаторов выбран.

В следующей статье мы разберем еще 8 уроков траблшутинга OSPF.
Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
DevOps
Скидка 25%
DevOps-инженер с нуля
Научитесь использовать инструменты и методы DevOps для автоматизации тестирования, сборки и развертывания кода, управления инфраструктурой и ускорения процесса доставки продуктов в продакшн. Станьте желанным специалистом в IT-индустрии и претендуйте на работу с высокой заработной платой.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
В начале 2000-х, когда идея мессенджеров только формировалась, расширяемый протокол обмена сообщениями и информацией о присутств
img
Задержка в сети, или сетевая задержка, - это временная задержка при передаче запросов или данных от источника к адресату в сетев
img
Система доменных имен (DNS – Domain Name System) обеспечивает сетевую коммуникацию. DNS может показаться какой-то невидимой сило
img
Wi-Fi это технология, которая использует радиоволны для отправки и получения сигналов от находящихся поблизости устройств, чтобы
img
BGP (Border Gateway Protocol) - это протокол граничного шлюза, предназначенный для обмена информацией о маршрутизации и доступно
img
Когда читаете данную статью, браузер подключается к провайдеру (или ISP) а пакеты, отправленные с компьютера, находят путь до се
ЗИМНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59