img

Траблшутинг OSPF

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img
Почитайте первую часть статьи.
Топология

Первая проблема. Два роутера работают с одной областью OSPF, и каждый роутер имеет loopback интерфейс, объявленный в OSPF. Вот вывод таблиц маршрутизации:

show ip route show ip route

Как мы можем наблюдать, что роутер R1 узнал о сети 10.2.2.0/24 от роутера R2, но в таблице маршрутизации роутера R2 пусто. Что не так?

show ip ospf interface loopback 0 show ip ospf interface loopback 0

Видно, что OSPF не включен на интерфейсе loopback0 роутера R1, так что же мы тогда объявляем в сетях?

show ip protocols | begin Networks

Похоже, мы объявляем сеть 10.10.1.0/24, но эта сеть не настроена ни на одном интерфейсе... Сеть 10.1.1.0/24 настроена на интерфейсе loopback0 роутера R1.

show run | section router ospf

Здесь вы видите неправильно введенную команду network. Удалим ее.

R1(config)#router ospf 1
R1(config-router)#no network 10.10.1.1 0.0.0.0 area 0
R1(config-router)#network 10.1.1.0 0.0.0.255 area 0

Давайте удостоверимся, что команда network настроена правильно.

show ip route | include 10.1.1.

Проблема устранена! Эта проблема может показаться не серьезной, но использование неправильных сетевых операторов - это то, что происходит постоянно. Особенно если мы используем меньшие подсети (например, /27 или /28 или аналогичные), люди склонны делать ошибки с обратными маскам.

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

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


Урок №2

Топология

Очередная возможная ситуация. Опять два роутера, но другая проблема. Вот таблицы маршрутизации:

show ip route show ip route

В очередной раз роутер R2 не увидел сеть 10.1.1.0/24. Что интересно, что роутер R1 не имеет сети 10.1.1.0/24 в своей таблице маршрутизации как непосредственно подключенной.

show ip protocols | begin Networks

Мы можем проверить, что роутер R1 использует правильную настройку команды network. Поскольку R1 даже не имеет сети в своей таблице маршрутизации, предположим, что проблема с интерфейсом.

show ip interface brief

Кажется, кто-то забыл применить команду "no shutdown" на интерфейсе.

R1(config)#interface loopback 0
R1(config-if)#no shutdown

Давайте включим интерфейс.

show ip route | include 10.1.1.
И теперь он появляется в таблице маршрутизации роутера R2. Итог урока: нельзя объявлять то, чего у тебя нет!

Урок №3

Топология

Новый урок! Одна область, опять два роутера... мы хотели бы иметь "full connectivity", но не работает OSPF ... вот вывод таблиц маршрутизации:

show ip route ospf show ip route ospf

Роутер R1 не показывает никаких маршрутов OSPF, R2 показывает ... Необходимо выяснить, что не так:

show ip protocols

Быстро взглянем на роутер R2, чтобы убедиться, что он действительно объявляет правильную сеть(и). Да это так и есть.

show ip protocols

Вывод роутера R1 более интересен ... видно, что у него настроен distribute-list.

show access-lists

В этом заключается наша проблема. Давайте удалим distribute-list.

R1(config)#router ospf 1
R1(config-router)#no distribute-list 1 in

Эта команда отключит его.

show ip route ospf
Задача решена! Итог урока: знать о distribute-list, запрещающий объявление и / или установку префиксов в таблице маршрутизации.

Урок №4

Топология

Взглянем на более сложные проблемы OSPF. На изображении выше мы имеем роутер R1 и роутер R2, но на этот раз мы имеем конфигурацию OSPF с несколькими областями. Вот конфигурация OSPF этих роутеров:

show run | section router ospf show run | section ospf

Видно, что все сети были объявлены. Область 2 не связана напрямую с областью 0, поэтому была создана виртуальная связь.

show ip route show ip route

Роутер R1, однако, не увидел сеть 2.2.2.0/24 от роутера R2, но роутер R2 увидел сеть 1.1.1.0/24. Лучше всего начать с виртуальной линии здесь:

show ip ospf virtual-links show ip ospf virtual-links

Хм, это выглядит не очень хорошо. Виртуальная связь отключена. Обратите внимание на IP-адреса, которые мы видим здесь, это IP-адреса, настроенные на интерфейсах FastEthernet обоих маршрутизаторов.

show ip ospf neighbor show ip ospf neighbor

Всякий раз, когда мы настраиваем виртуальное соединение, нам нужно настроить идентификатор маршрутизатора OSPF другой стороны, а не IP-адрес другой стороны!

show run | incl virtual-link show run | incl virtual-link

Вот ошибка, так что давайте исправим ее.

R1(config)#router ospf 1
R1(config-router)#no area 12 virtual-link 192.168.12.2
R1(config-router)#area 12 virtual-link 2.2.2.2

R2(config)#router ospf 1
R2(config-router)#no area 12 virtual-link 192.168.12.1
R2(config-router)#area 12 virtual-link 1.1.1.1

Вот так должна выглядеть virtual-link, настроенная между идентификаторами маршрутизаторов OSPF.

так должна выглядеть virtual-link так должна выглядеть virtual-link

Сразу после ввода правильных команд появятся данные сообщения в консоли.

show ip route ospf

Запись OSPF для сети 2.2.2.0/24 появилась.


Урок №5

Топология

Другая проблема. Те же роутеры, но появился "домен внешней маршрутизации". Это может быть другой протокол маршрутизации, такой как RIP или EIGRP, который мы будем распространять в OSPF. R2 перераспределяет сеть 2.2.2.0 / 24 в OSPF, но по какой-то причине она не отображается на R1. Чтобы было интересно, мы не будем просматривать конфигурацию OSPF на роутерах.

show ip route

Нет сети 2.2.2.0/24 на роутере R1, поэтому давайте изучим роутер R2.

show ip route | include 2.2.2.

Как мы можем видеть, сеть находится в таблице маршрутизации роутера R2 как directly connected.

show ip protocols

Как мы можем видеть роутер R2 был настроен для перераспределения напрямую подключенных сетей. Это должно включать сеть 2.2.2.0/24 на интерфейса loopback0.

show ip ospf database external

Однако в базе данных OSPF пусто? Что может быть причиной этого? Возможно, вы помните правила различных типов областей OSPF. Давайте выясним, что это за область!

show ip protocols | include areas

Вот и объяснение, это stub area! Stub area не допускают LSA type 5 (внешние маршруты). Мы можем либо превратить эту область в normal area или NSSA. Давайте переведем в NSSA.

R1(config)#router ospf 1
R1(config-router)#no area 12 stub
R1(config-router)#area 12 nssa

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

Изменим тип области на обоих маршрутизаторах. Область NSSA допускает внешние маршруты с помощью LSA type 7.

show ip ospf database nssa-external

Наша сеть 2.2.2.0 / 24 теперь в базе данных OSPF маршрутизатора R2.

show ip route | include 2.2.2.

Итог урока: Stub area не допускают внешних префиксов (LSA Type 5). Либо измените область на NSSA, либо прекратите перераспределение.


Урок №6

Топология

Очередная проблема. Проблема default route OSPF. На рисунке имеются роутер R1 и роутер R2, и сеть 192.168.12.0 /24 объявленная в OSPF. Loopback интерфейсы роутера R2 не объявляется в OSPF, но мы используем default route, чтобы роутер R1 мог добраться до них. Здесь представлены конфигурации OSPF:

show run | section router ospf show run | section router ospf

Видно, что в выводе роутера R2 присутствует команда default-information originate для объявления default route.

show ip route

Увы, но мы не видим default route на роутере R1. Будем искать неполадки в настройке. Давайте проверим роутер R2:

show ip route

В таблице маршрутизации роутера R2 не виден default route. Чтобы OSPF объявлял default route, можно использовать два варианта:

  • Убедитесь, что у вас есть default route в routing table (невозможно объявлять то, чего нет);
  • Примените команду default-information originate always. Она объявит default route, даже если он не прописан.
R2(config)#ip route 0.0.0.0 0.0.0.0 null 0

Выше первый метод решения проблемы. Мы создадим default route на роутере R2. Обычно указывается default route на ISP роутере, но сейчас другого роутера нет. Мы укажем default route для интерфейса null0, и он будет внесен в routing table.

show ip route ospf

Правило работает!

R2(config)#no ip route 0.0.0.0 0.0.0.0 null 0
R2(config)#router ospf 1
R2(config-router)#default-information originate always
show ip route ospf

Итог урока: что бы объявить default route с помощью OSPF, вам нужно иметь default route в таблице маршрутизации или использовать ключевое слово "always".


Урок №7

Топология

Немного сложнее проблема... те же два роутера , все в зоне 0. Вот настройки OSPF:

show run | section router ospf show run | section router ospf

Ничего особенного, все сети объявлены, и мы используем одну область.

show ip route show ip route

Увы ... таблицы маршрутизации пусты! По крайней мере, никакой отсутствует информация о OSPF ... Настройки network выглядят хорошо, так что это хороший момент вникнуть поглубже в OSPF LSDB. Давайте сначала проверим идентификаторы маршрутизатора OSPF:

show ip ospf neighbor show ip ospf neighbor

Здесь мы видим OSPF router ID. Если вы внимательно посмотрите на информацию выше, вы заметите что-то необычное. State full, но роутер R1 не выбрал DR / BDR, а роутер R2 выбрал роутер R1 в качестве BDR.

show ip ospf database router

Мы можем использовать команду show ip ospf database router для поиска информации от определенного соседа OSPF. Роутер R1 говорит нам, adv router is not-reachable. Это плохо.

show ip ospf database router

Роутер R2 также сообщает нам, что роутер R1 недоступен, и если вы посмотрите внимательно, то увидите, что он видит связь как point-to-point. Мы не видим этого в выводе на роутере R1. Это, вероятно, означает, что роутер R1 и роутер R2 используют другой тип сети OSPF, что приводит к разнице в LSDB. Это не позволит нашим роутерам устанавливать маршруты в таблицу маршрутизации!

show ip ospf interface fastEthernet 0/0 | include Network Type show ip ospf interface fastEthernet 0/0 | include Network Type

Теперь мы кое-что выяснили. Тип сети отличается ... широковещательная передача на роутере R2 и точка-точка на роутере R1. Нам действительно удалось установить соседство OSPF с этим, но возникает разница в LSDB.

Произведем исправления.

R1(config)#interface fa0/0
R1(config-if)#ip ospf network broadcast

Изменение типа сети на роутере R1 сделает свое дело.

show ip route ospf show ip route ospf

Наконец "О" появляется в наших таблицах маршрутизации...проблема решена!

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

Урок №8

Топология

Очередная внештатная ситуация. OSPF настроено между роутерами R1 и R2, но не все сети объявлены. Loopback интерфейсы роутера R2 перераспределяются в OSPF. Вот настройки обоих роутеров:

show run | section router ospf show run | section router ospf

Мы наблюдаем команду redistribute connected на роутере R2, которая должна перераспределить сети на интерфейсах обратной связи в OSPF.

show ip route

Однако здесь ничего нет ...

show ip protocols | include filter show ip protocols | include filter

Обычно было бы неплохо проверить, есть ли distribute list или нет.

show run | include redistribute

Ключ к решению этой проблемы - эта команда. Если вы наберете redistribute connected OSPF будет распространять только classful networks.

R2(config)#router ospf 1
R2(config-router)#redistribute connected subnets

Нам нужно добавить параметр "subnets", позволяющий заставить его выполнять redistribute subnet основных сетей.

show ip route ospf

Ну вот, наша маршрутная таблица заполнена.

Итог урока: добавьте параметр " subnets " при использовании перераспределения или перераспределяются только classful networks.
Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
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) а пакеты, отправленные с компьютера, находят путь до се
21 ноября
20:00
Бесплатный вебинар
Введение в Docker