Как на маршрутизаторе запустить и настроить протокол маршрутизации ospf

Обновлено: 06.07.2024

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

Сразу после этого автоматически назначается router ID. По умолчанию это наибольший адрес Loopbaсk-интерфейсов.

2) Не оставляем это дело на самотёк. Главное правило: Router ID обязан быть уникальным. Нет, вы, конечно, можете их сделать и одинаковыми, но в этом случае у вас начнутся странности.

Одна из моих заявок была такой: на оборудовании заканчиваются метки LDP. Из 8 с гаком тысяч осталась только одна свободная. Никакие новые VPN не создавались и не работали. Разбирались, разбирались и в итоге увидели что процесс OSPF создаёт и удаляет тысячи записей в минуту в таблице маршрутизации. Топология постоянно перестраивается и на каждое такое перестроение выделяются новые метки LDP, после чего не освобождаются. А всё дело в случайно настроенных одинаковых Router ID.

Настраивать его можно, в принципе, как угодно, можно даже не настраивать, маршрутизатор назначит его сам, но для порядку мы это сделаем — в будущем обслуживать будет проще. Назначаем его в соответствии с адресом Loopback-интерфейса.

3) Теперь мы объявляем, какие сети мы будем анонсировать (передавать соседям OSPF). Обратите внимание, что в этой команде используется wildcard-маска, как в ACL

Все эти команды сработают одинаково в нашем случае. Поскольку у нас все локальные сети имеют адреса из сети 172.16.0.0/16, то мы будем использовать наиболее общую запись. При этом туда, разумеется, не попадёт внешний интерфейс в интернет FastEthernet0/1.6, потому что его адрес — 198.51.100.2 — не из этого диапазона. При такой настройке любой новый интерфейс, на котором вы укажете адрес из диапазона 172.16.0.0 — 172.16.255.255, автоматически становится участником процесса OSPF. Плохо это или хорошо, зависит от ваших желаний. area 0 означает принадлежность данных подсетей зоне с номером ноль (в наших примерах только такая и будет).

Area 0 это не простая зона — это так называемая Backbone-area. Это означает, что она объединяет все остальные зоны, т.е. пакет, идущий от любой ненулевой зоны в любую ненулевую, обязан проходить через area 0

Как только вы задали команду network с правильных интерфейсов слетают слова приветствия, но отвечать на них пока некому — соседей нет:

Теперь пропишем настройки OSPF в Кемерово (router адрес Loopback интерфейса, взятый из IP-плана):

02:27:33: %OSPF-5-ADJCHG: Process 1, Nbr 172.16.255.1 on FastEthernet0/0.5 from LOADING to FULL, Loading Done

02:27:33: %OSPF-5-ADJCHG: Process 1, Nbr 172.16.255.48 on FastEthernet0/1.5 from LOADING to FULL, Loading Done.

Здесь вы можете видеть, что были успешно установлены отношения смежности и произошёл обмен LSA. Каждый маршрутизатор построил свою LSDB.

Командой show ip route мы можем посмотреть, как изменилась таблица маршрутизации:

— candidate default, U — per-user static route, o — ODR P — periodic downloaded static route

Gateway of last resort is 198.51.100.1 to network 0.0.0.0

172.16.0.0/16 is variably subnetted, 17 subnets, 5 masks C 172.16.0.0/24 is directly connected, FastEthernet0/0.3 C 172.16.1.0/24 is directly connected, FastEthernet0/0.2 C 172.16.2.0/30 is directly connected, FastEthernet0/1.4 S 172.16.2.4/30 [1/0] via 172.16.2.2 C 172.16.2.16/30 is directly connected, FastEthernet0/1.5 C 172.16.2.32/30 is directly connected, FastEthernet0/1.7 C 172.16.2.128/30 is directly connected, FastEthernet0/1.8 C 172.16.2.196/30 is directly connected, FastEthernet1/0.911 C 172.16.3.0/24 is directly connected, FastEthernet0/0.101 C 172.16.4.0/24 is directly connected, FastEthernet0/0.102 C 172.16.5.0/24 is directly connected, FastEthernet0/0.103 C 172.16.6.0/24 is directly connected, FastEthernet0/0.104 S 172.16.16.0/21 [1/0] via 172.16.2.2 S 172.16.24.0/22 [1/0] via 172.16.2.18 O 172.16.24.0/24 [110/2] via 172.16.2.18, 00:13:03, FastEthernet0/1.5 C 172.16.255.1/32 is directly connected, Loopback0 O 172.16.255.48/32 [110/2] via 172.16.2.18, 00:13:03, FastEthernet0/1.5 198.51.100.0/28 is subnetted, 1 subnets C 198.51.100.0 is directly connected, FastEthernet0/1.6 S* 0.0.0.0/0 [1/0] via 198.51.100.1

Кроме известных ранее сетей (C — directly connected и S — Static) у нас появились два новых маршрута с пометкой O (OSPF). Тут всё должно быть понятно, но наблюдательный читатель спросит: “почему в таблице маршрутизации присутствуют два маршрута в сеть 172.16.24.0. Почему не останется более предпочтительный статический?” и будет прав. Вообще говоря, в таблицу маршрутизации попадает только лучший маршрут до сети — по умолчанию один. Но обратите внимание, что статический Bidirectional Forwarding Detectionмаршрут идёт до подсети 172.16.24.0/22, а полученный от OSPF до 172.16.24.0/24. Это разные подсети, поэтому обеим им нашлось место до солнцем. Дело в том, что OSPF понятия не имеет чего вы там напланировали и какой диапазон выделили — он оперирует реальными данными, то есть IP-адресом и маской:

Настройка OSPF (Open Shortest Path First) довольна проста и чем-то похожа на протоколы маршрутизации RIP и EIGRP , то есть состоит из двух основных шагов:

  • включения протокола глобальной командой router ospf PROCESS_NUMBER;
  • выбора сетей, которые протокол будет «вещать», для чего используется команда(ы) network 255.255.255.255 0.0.0.255 AREA_NUMBER ;

Как сразу заметно, в OSPF появляется указание «зоны» - area. Первая команда включения говорит сама за себя, но поясним про PROCESS_NUMBER и AREA_NUMBER – это номер процесса и номер зоны соответственно. Для установления соседства номер процесса OSPF не должен быть одинаковым, но обязательно должен совпадать номер зоны. Интерфейсы и сети указываем через обратную маску.

ПРИМЕР НАСТРОЙКИ OSPF

В нашей топологии у маршрутизаторов R1 и R2 есть напрямую подключенные подсети.

Нам нужно включить данные подсети в процесс динамической маршрутизации OSPF. Для этого нам сначала нужно включить OSPF на обоих маршрутизаторах и затем «вещать» данные сети с помощью команды network. На маршрутизаторах переходим в глобальный режим конфигурации и вводим следующие команды, в соответствии с нашей схемой: Нам нужно включить данные подсети в процесс динамической маршрутизации OSPF. Для этого нам сначала нужно включить OSPF на обоих маршрутизаторах и затем «вещать» данные сети с помощью команды network. На маршрутизаторах переходим в глобальный режим конфигурации и вводим следующие команды, в соответствии с нашей схемой:
router ospf 1
network 10.0.1.0 0.0.0.255 area 0
network 172.16.0.0 0.0.255.255 area 0
router ospf 1
network 192.168.0.0 0.0.0.255 area 0
network 172.16.0.0 0.0.255.255 area 0

Далее нам нужно проверить, заработала ли динамическая маршрутизация, и для этого используем команды show ip ospf neighbors и show ip route Вот и все – также просто, как и настроить RIP: главное не забывать указывать одинаковый номер автономной системы. Первая команда должна показать «соседа» - на обоих маршрутизаторах убедитесь, что там указан адрес другого маршрутизатора в выводе данной команды. Вторая команда выведет таблицу маршрутизации, и, маршруты, получаемые по OSPF, будут отмечены буквой O .

ВТОРОЙ СЦЕНАРИЙ НАСТРОЙКИ OSPF

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

В нашем примере у нас есть две зоны OSPF, area 0 и area 1. Как видно на схеме, маршрутизаторы R1 и R2 находятся в зоне 0, и R2 и R3 в зоне 1. Так как R2 соединяет две зоны, он становится ABR – Area Border Router (граничным маршрутизатором). Нашей задачей является вещание подсетей, напрямую подключенных к R1 и R3. Для этого, на R1 введем следующую команду:

router ospf 1
network 10.0.1.0 0.0.0.255 area 0
network 172.16.0.0 0.0.255.255 area 0
router-id 1.1.1.1
Мы вручную указали идентификатор маршрутизатора, и теперь процесс OSPF будет использовать данный RID при общении с другими OSPF соседями.

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

router ospf 1
network 192.168.0.0 0.0.0.255 area 1
network 90.10.0.0 0.0.0.255 area 1
router-id 3.3.3.3

Теперь перейдем к настройке R2 – так как он является граничным маршрутизатором, необходимо установить соседство и с R1 и с R3. Для этого, нам необходимо настроить отдельное соседство для каждой зоны – 0 для R1 и 1 для R2.

router ospf 1
network 172.16.0.0 0.0.255.255 area 0
network 192.168.0.0 0.0.0.255 area 1
router-id 2.2.2.2

Для проверки используем команды show ip ospf neighbor и show ip route ospf на маршрутизаторах R1 и R3. Буквы IA означают, что данные маршруты находятся в разных зонах.


Для запуска OSPF достаточно выполнить следующие команды:

Например, вот так выглядят настройки маршрутизатора F стандартной зоны:



А вот так выглядят настройки ABR маршрутизатора (маршрутизатор С):



Что означает номер процесса?

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

А что означает инверсная маска?

Инверсная маска (обратная маска) используется для более гибкого управления объявления подсетей в анонсах LSA, например когда требуется включить в анонсы LSA первые 8 или последние 64 подсетей определенной сети - вариантов много. Без инверсной маски пришлось бы вводить много похожих команд вручную. В OSPF данный функционал используется редко, однако мы рассмотрим его подробно в уроке по спискам доступа (Access Lists, ACL).

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

Команды просмотра настроек протокола

Для проверки и диагностики работы протокола можно воспользоваться приведенными ниже командами.


Настройки протокола, адреса подключенных соседей, номер и тип зоны, а также ID локального маршрутизатора можно узнать из следующих 2-х команд:




Топологическая база данных:



Тип сети, DR/BDR, ID маршрутизатора:


Таблица соседей и состояние смежности, установленные с ними:


Идентификатор маршрутизатора

Для управления выбором DR/BDR можно настроить Router ID:

Того же можно добиться с помощью настройки интерфейса обратной петли Loopback

Метрика маршрута

Можно также повлиять на выбор маршрута, то есть заранее предопределить какой какой маршрут будет иметь лучшую/худшую метрику. Например, может возникнуть ситуация, когда до сети назначения ведут сразу 2 и более маршрутов с одинаковыми метриками. Однако по ряду причин требуется использовать только определенный маршрут, а остальные оставить в резерве. Это достигается 3-мя способами.

1) Изменение стоимости интерфейса. Вернемся к нашей сети и выполни команды

и обрати внимание на установленную стоимость интерфейса и метрику маршрута



Теперь изменим стоимость интерфейса с помощью команды

И посмотрим снова на вывод команд



2) Изменение полосы пропускания . Стоимость маршрута рассчитывается по формуле исходная полоса пропускания/полоса пропускания интерфейса . За исходную полосу пропускания берется 100 Мбит/с. Полоса пропускания интерфейса уже по умолчанию установлена. Например, Ethernet - 10 Мбит/с, FastEthernet - 100 Мбит/с. Значение данного параметра можно изменить, однако это не повлияет на фактическую полосу пропускания интерфейса

3) Изменение исходной полосы пропускания . В вышеупомянутой формуле можно также изменить и числитель, то есть исходную полосу пропускания

OSPF поддерживает аутентификацию паролем открытого текста и хэшем MD5.

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

Аутентификация на отдельном интерфейсе:

1) Пароль открытым текстом

2) С помощью MD5

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

Глобальная настройка аутентификации:

Затем настроим пароли на каждом интерфейсе

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

Теория

Итак, в нашей супер сети присутствуют 4 маршрутизатора: два HUAWEI и два Cisco. Роутер R2 будет являться ASBR, R3 — ABR.


Напомню, что в OSPF маршрутизаторы делятся на несколько типов:

  • Внутренний маршрутизатор (internal router) — маршрутизатор, все интерфейсы которого принадлежат одной зоне. У таких маршрутизаторов только одна база данных состояния каналов.
  • Пограничный маршрутизатор (area border router, ABR) — соединяет одну или больше зон с магистральной зоной и выполняет функции шлюза для межзонального трафика. У пограничного маршрутизатора всегда хотя бы один интерфейс принадлежит магистральной зоне. Для каждой присоединенной зоны маршрутизатор поддерживает отдельную базу данных состояния каналов.
  • Магистральный маршрутизатор (backbone router) — маршрутизатор, у которого всегда хотя бы один интерфейс принадлежит магистральной зоне. Определение похоже на пограничный маршрутизатор, однако магистральный маршрутизатор не всегда является пограничным. Внутренний маршрутизатор интерфейсы которого принадлежат нулевой зоне, также является магистральным.
  • Пограничный маршрутизатор автономной системы (AS boundary router, ASBR) — обменивается информацией с маршрутизаторами, принадлежащими другим автономным системам или не-OSPF маршрутизаторами. Пограничный маршрутизатор автономной системы может находиться в любом месте автономной системы и быть внутренним, пограничным или магистральным маршрутизатором.[1]

Area 0 — магистральная (backbone) зона, area 1 — тупиковая зона (stub).

  • Магистральная (транзитная) зона (backbone (transit) area) — зона используемая для подключения других зон.
  • Тупиковая зона (stub area) — зона, не принимающая информацию о маршрутах, являющихся внешними для данной автономной системы.
  • Полностью тупиковая зона (totally stub area) — зона, не принимающая информацию о внешних маршрутах и маршрутах из других автономных систем.

Итак, приступим к настройке.

Первоначальная настройка:

Для начала нам необходимо создать vlan интерфейс, назначить ему соответствующий ip адрес и разрешить прохождение трафика через физический интерфейс, таким образом добиться ip коннективити между девайсами.

После этого включим процесс OSPF на маршрутизаторах:


Естественно, при настройке необходимо изменить значения router-id и анонсируемые сети для разных зон. Таким образом, первоначальная конфигурация OSPF будет выглядеть так:
R1 [Cisco]:

Маршрутизатор R4 является ABR, поэтому в нём описываются несколько зон. Пока мы не будем переводить зону 1 в состояние stub. Посмотрим, что у нас получилось:

DR, BDR, DROTHER

Мы видим, что маршрутизаторы R2 и R3 выбрались BDR и DR, соответственно. Напомню что это означает. Так как познать всю теорию OSPF не является целью нашего повествования, опишем эти понятия вкратце.

Выбор BDR и DR осуществляется на основе приоритета маршрутизатора, но по умолчанию приоритеты всех устройств равны 1. В этом случае процесс выбора проходит по идентификатору маршрутизатора, что мы и наблюдаем. Но есть одно НО. Если DR и BDR уже выбраны, перевыборы не происходят. Действует принцип: кто первый встал того и тапки. Проверим. Для этого исключим из процесса маршрутизатор R2.

Теперь R1 стал BDR, R3 же остался DR:


Сейчас мы снова включим в процесс OSPF на роутере R2 сеть 172.16.1.0/24.

Теперь посмотрим состояние маршрутизаторов:

Второй маршрутизатор перешёл в состояние DROTHER, т. е. он не является ни DR, ни BDR. Да будет так.

Межзональный обмен маршрутами

Теперь посмотрим, что мы имеем в таблицах маршрутизации.

Флаги IA означают, что маршрут пришёл из другой зоны OSPF.

То же самое на HUAWEI.

В глобальной таблице маршрутизации явно не видно, что маршрут 4.4.4.4/32 пришёл из другой зоны. Посмотрим более детально маршруты по протоколу OSPF.

Здесь мы видим, что маршруты 4.4.4.4/32 и 172.16.2.0/30 пришли из другой зоны (Inter-area).

Редистрибьюция маршрутов

Усложним ситуацию. Вспомним, что маршрутизатор R2 по совместительству является пограничным маршрутизатором автономной системы, т. е. за ним потенциально могут быть другие маршрутизаторы. Добавим парочку статических маршрутов в рай, т. е. туда, откуда не возвращаются, да простят меня DNS'ы гугла.

И добавим редистрибьюцию статических маршрутов:

Т. о. образом конфиг секции OSPF на маршрутизаторе R2:

Посмотрим таблицы маршрутизации.

Флаг E означает, что маршруты импортировались из другого протокола маршрутизации.

То же самое на HUAWEI:

Настройка тупиковых зон

Переходим к заключительному этапу — настройке тупиковой зоны area 1. Предварительно посмотрим какие маршруты пришли на несправедливо забытый маршрутизатор R4.

Видим, что пришли абсолютно все маршруты. Переведём зону 1 в тупиковую.


Смотрим таблицу маршрутизации:

Видим, что пришли все маршруты, кроме маршрутов из других автономных систем. На все остальные адреса пакеты будут маршрутизироваться по вновь пришедшему дефолтному маршруту.

Переведём зону 1 в абсолютно тупиковую. Это можно сделать только на ABR маршрутизаторе.

Посмотрим таблицу маршрутизации:

Видим, что теперь все пакеты, кроме подключенных напрямую сетей будут маршрутизироваться по дефолтному маршруту.

Динамическая маршрутизация. Настройка OSPF на Cisco IOS

Хотите узнать, для чего нужна динамическая маршрутизация cisco, как настроить OSPF на Cisco? Погрузитесь в эту статью!

Давайте рассмотрим следующую топологию сети:

Динамическая маршрутизация. Настройка OSPF на Cisco IOS

Допустим, в этой сети мы используем статическую маршрутизацию, и появилась необходимость добавить новый роутер (R4). Роутеры «знают» только про подключенные к ним сети напрямую (directly connected). В таком случае нам придется вручную добавить все маршруты к подсетям на R4, а на остальных роутерах добавить маршруты к подсетям, которые обслуживает R4:

Динамическая маршрутизация. Настройка OSPF на Cisco IOS

С ростом сети это становится достаточно трудоемкой задачей. Протоколы динамической маршрутизации позволяют обмениваться маршрутами автоматически, упрощая обслуживание сети. Также динамические протоколы маршрутизации сами определяют оптимальный маршрут для отправки пакетов (мы можем влиять на это в случае необходимости) и выбирать альтернативный маршрут в случае падения какого-то канала.

Например, R3 может связаться с R1 через несколько маршрутов: через 10.5.0.4/30, через 10.5.0.8/30 -> 10.5.0.0/30 и 10.5.0.16/30 -> 10.5.0.12/30 -> 10.5.0.0/30. При использовании OSPF роутеры будут постоянно обмениваться информацией про известные маршруты и состояние соединений. В случае падения прямого канала между R1 и R3 трафик пойдет через роутер R2.

Настройка OSPF

Вот так будет выглядеть топология нашей сети с добавленным новым роутером R4:

Динамическая маршрутизация. Настройка OSPF на Cisco IOS

Начнем с настройки роутера R1. Представляю Ваше вниманию непосредственно сам пример настройки.

Запустим процесс ospf:

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

Теперь отключим отправку hello пакетов на всех интерфейсах. Из соображений безопасности мы будем явно задавать интерфейсы, на которых будут устанавливаться neighbour отношения.

Теперь укажем интерфейсы, на которых мы будем отправлять hello пакеты. Для R1 это fa0/0 и fa0/1:

С помощью команды network мы можем сделать 2 вещи — сообщить, какие сети мы хотим анонсировать по OSPF другим роутерам и на каких интерфейсах мы будем отправлять hello пакеты. Именно поэтому ранее мы указали конкретные интерфейсы для hello пакетов. К примеру, на роутере R1 нам нужны 3 сети: 10.5.0.0/30, 10.5.0.4/30 и 172.16.0.0/26. Но в последней сети будут исключительно пользовательские устройства и нам бы совсем не хотелось, чтобы кто-то имел возможность с нее влиять на таблицы маршрутизации роутеров.

Формат команды network:

Первым параметром идет номер сети, вторым — wildcart маска и последним номер зоны.

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

Для понимания синтаксиса приведу пример, который позволит анонсировать обе служебные сети(10.5.0.0/30 и 10.5.0.4/30):

Дословно это означает: «анонсировать подсети с интерфейсов, которые начинаются на 10.5.0»

Теперь настроим R2:

После этого мы получим уведомление:

Это означает, что R1 и R2 установили neighbour отношения и обменялись информацией о известных маршрутах. Теперь на R2 должен быть один «сосед»:

Посмотрим таблицу маршрутизации на R2:

От R1 мы получили 2 маршрута по OSPF, о чем и говорит буква O в начале записи о маршруте.

Теперь наша таблица маршрутизации выглядит так:

Теперь можно попробовать сымитировать падения аплинка. Проведем трассировку маршрута с роутера R3 к клиентскому ПК с IP 172.16.0.2:

Из трассировки видно, что трафик пойдет напрямую к R1. Отключим интерфейс на R1, к которому подключен R3:

R3 заметил падение канала с R1:

Теперь трафик пойдет через альтернативный канал (R3 -> R2 — R1):

На этом настройка OSPF с одной зоной (area 0) закончена. Теперь наша сеть использует OSPF для динамической маршрутизации.

Multi Area OSPF

Для чего нам может понадобиться разделить нашу сеть на несколько зон? В первую очередь, для агрегации маршрутов. Например, в нашей топологии роутер R4 анонсирует в сеть 4 маршрута, но все сети из диапазона 172.16.1.0-172.16.1.255 будут принадлежать исключительно ему, и мы хотим анонсировать один маршрут — 172.16.1.0/24. Это особенно актуально в больших сетях с большой таблицей маршрутизации. Так же, в силу специфики всех link-state протоколов динамической маршрутизации, в OSPF каждый роутер узнает о падении любого канала в сети. Это, конечно, повышает качество выбора оптимального маршрута, но и заметно повышает нагрузку. Допустим, у нас есть 15 офисов в Хмельницком и 10 в Виннице — роутерам в Виннице совершенно не обязательно знать о том, что какой-то роутер в Хмельницком упал. Разделение сети на разные зоны решает данный вопрос.

Читайте также: