Blog of Khlebalin Dmitriy

(Дорогу осилит идущий…)

OSPF Cisco.

Недавно писал про статические маршруты  в Cisco. Пришло время погрузится в динамическую маршрутизацию, сегодня о протоколе OSPF.

Для начала краткий экскурс в теорию.

Существует два класса протоколов маршрутизации внутри автономных систем: Distance Vector, к которому относятся RIP, EIGRP и Link State, к которому относятся OSPF и IS-IS (с IS-IS я пока ни разу не сталкивался в продакшине). Идеология Link State подразумевает, что каждый маршрутизатор должен не просто знать самые лучшие маршруты во все удалённые сети, но и иметь в памяти полную карту сети со всеми существующими связями между другими маршрутизаторами в том числе. OSPF – наиболее распространённый протокол маршрутизации. Это связанно с тем, что его основной конкурент EIGRP вплоть до 2013 года был закрытым протоколом и мог использоваться только на оборудовании Cisco, в то время, как OSPF – это открытый протокол, и он изначально поддерживался как Cisco, так и другими производителями. Таким образом, OSPF завоевал популярность не смотря на некоторые его недостатки в сравнении с EIGRP: меньшую гибкость, отсутствие четкого описания механизма подсчёта метрики, повышенные требования к ресурсам маршрутизатора. В то же время, у OSPF есть и множество достоинств: иерархический дизайн сети (реализуется с помощью зон), удобство при отладке (так как можно видеть карту сети).

Стандартное значение административной дистанции для протокола OSPF – 110, что означает, что его маршруты считаются более приоритетными чем IS-IS, RIP, External EIGRP, Internal BGP, но менее приоритетными чем IGRP, EIGRP BGP. Такая административная дистанция – скорее преференция со стороны Cisco к своим протоколам. Так как с точки зрения здравого смысла, OSPF, конечно предпочтительнее RIP, в современных сетях, но он так же должен быть и предпочтительнее IGRP, который, в силу своего возраста является классовым протоколом маршрутизации. OSPF является бесклассовым (classless) протоколом маршрутизации, что означает передачу вместе с апдейтами информацию о маске подсети (префиксе), в то время, как старые классовые протоколы маршрутизации, опираются на стандартные классы сетей (A, B, C) и по этой причине в настоящее время малоприменимы.

Принцип работы OSPF.

  1. Маршрутизаторы обмениваются маленькими HELLO-пакетами
  2. Обменявшись пакетами, они устанавливают соседские отношения, добавляя каждый друг друга в свою локальную таблицу соседей
  3. Маршрутизаторы собирают состояния всех своих линков (связей с соседями), включающие в себя id Маршрутизатора, id соседа, сеть и префикс между ними, тип сети, стоимость линка (метрику) и формируют пакет, называемый LSA (Link State Advertisement).
  4. Маршрутизатор рассылает LSA своим соседям, те распространяют LSA дальше.
  5. Каждый маршрутизатор, получивший LSA добавляет в свою локальную табличку LSDB (Link State Database) информацию из LSA.
  6. В LSDB скапливается информация, обо всех парах соединённых в сети маршрутизаторов, то есть каждая строчка таблицы — это информация вида: «Маршрутизатор A имеет соединение со своим соседом маршрутизатором B, между ними сеть такая-то с такими-то свойствами».
  7. После обмена LSA, каждый маршрутизатор знает про все линки, на основании пар строится полная карта сети, включающая все маршрутизаторы и все связи между ними.
  8. На основании этой карты каждый маршрутизатор индивидуально ищет кратчайшие с точки зрения метрики маршруты во все сети и добавляет их в таблицу маршрутизации.

Как видно из описания алгоритма, он достаточно сложный и рессурсоёмкий. Это объясняет высокие требования OSPF к производительности маршрутизатора и оперативной памяти. Теперь, давайте представим, что происходит, если у одного из маршрутизаторов пропадает связь с соседом:

  1. Он рассылает всем новые LSA
  2. Все заново строят карту сети
  3. Заново считают кратчайшие маршруты во все сети
  4. Обновляют свою таблицу маршрутизации

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

OSPF пакет помещается в IP пакет, у которого адрес отправителя – адрес отправившего пакет маршрутизатора, а адрес получателя, как правило, мультикастовый. Пакет помещается в соответствующий мультикастовый фрейм, например, Ethernet. Следует обратить внимание, что OSPF напрямую инкапсулируется в IP, а не в TCP или UDP. Этот момент важен при написании списков контроля доступа.

Виды OSPF сообщений.

Всего существует пять типов OSPF сообщений:

  1. Hello – отправляются регулярно для поиска соседей и установки соседских отношений
  2. Database Description DBD – используются для проверки синхронизации LSDB у соседних маршрутизаторов
  3. Link state request LSR – принудительный запрос у некого маршрутизатора его LSA. Может использоваться, например, когда маршрутизатор только включился и ему надо узнать текущие связи в сети, или, когда у маршрутизатора пропала сеть, и он хочет узнать нет ли у других маршрутизаторов альтернативных маршрутов к ней.
  4. Link state update LSU – содержит состояния связей маршрутизатора.
  5. Link State Acknowledgment LSAck – пакет-подтверждение, высылается в ответ на другие типы пакетов. Это связано с тем, что OSPF не использует протокол TCP и для надёжной доставки нужен свой собственный механизм подтверждений.

OSPF Hello и Dead интервалы

Hello пакеты рассылаются маршрутизаторами регулярно. Периодичность можно менять в соответствии с задачами, но по умолчанию они шлются раз в 10 секунд в сетях со множественным доступом (BMA) и сетях точка-точка (point-to-point) и раз в 40 секунд в сетях со множественным доступом без возможности широковещательной рассылки (NBMA). Если маршрутизатор не получает ни одного пакета в течении Dead-интервала, то считается, что сосед пропал и отношения разрываются, что влечёт за собой потерю, линка, отправку LSU, пересчёт топологии и т.д. Dead-интервал по умолчанию равен четырём Hello-интервалам, (40 секунд для BMA и 120 для NBMA).

ID маршрутизатора в OSPF

Так как маршрутизаторы строят карту сети, где в качестве узлов используются другие маршрутизаторы, то очень важно, чтобы все они имели уникальные имена. Это необходимо для того, чтобы, глядя на полученные из разных источников LSA, понять, что речь идёт об одних и тех же устройствах. В качестве такого уникального имени в OSPF используется поле «Router ID». Идентификатор маршрутизатора выглядит как ip адрес, то есть, состоит из четырёх октетов, разделённых точками. Причём, даже в OSPF для IPv6 идентификатор выглядит как IPv4 адрес. Идентификатор всегда должен присутствовать. Не так важно, какой он будет, важна уникальность идентификаторов в пределах сети. Его можно задать вручную, либо, если этого не сделать, он будет присвоен автоматически.

В общем случае, алгоритм назначения маршрутизатору идентификатора следующий (в порядке приоритета):

  1. Если ID задан явно с помощью команды router-id, то используется именно он
  2. Если router-id не вводился, то берётся самый большой адрес из всех loopback интерфейсов, настроенных на данном маршрутизаторе
  3. Если loopback интерфейсов нет, то берётся самый большой адрес из всех включенных интерфейсов на данном маршрутизаторе. Причём, интерфейс не обязательно должен входить в OSPF процесс, не обязательно его сеть должна быть перечислена при настройке OSPF, достаточно чтобы был настроен адрес и интерфейс был включен.

Здесь под самым большим адресом подразумевается буквальное сравнение по октетам, то есть, например, 10.10.10.20>10.10.10.10, а 2.0.0.1>1.100.100.100, то есть сравниваем по октетам слева направо, как только увидели разницу, то сразу принимаем решение о том, кто больше и дальше не проверяем.

Работа OSPF в сетях со множественным доступом.

Одна из проблем подхода OSPF к построению карты сети – использование его в сетях с множественным доступом. Часто используется топология, когда множество маршрутизаторов не подключаются последовательно друг к другу, а соединены через некоторую общую сеть, например, все имеют отдельный интерфейс в некоторой IP-сети для обмена трафиком друг с другом, все подключены один коммутатор, через который обмениваются, или все имеют интерфейс в некотором общем VLAN. В этом случае, OSPF в теории должен устанавливать соседские отношения по принципу «каждый с каждым» в пределах этой общей сети, что приводит к огромным таблицам соседей, повышенной нагрузке на канал, на память и процессор. Ниже приведена таблица, в которой показана зависимость количества соседских отношений от количества маршрутизаторов в одной сети, общая формула для количества отношений имеет вид n(n-1)/2.

Количество маршрутизаторов в сети со множественным доступом Количество соседских отношений
5 10
20 190
100 4950
n n(n-1)/2

Для того чтобы преодолеть эту проблему в OSPF существует механизм выбора Designated Router (DR) и Backup Designated Router (BDR). DR и BDR – это роли маршрутизаторов. Когда имеется сеть со множественным доступом и в ней более двух маршрутизаторов, то один выбирается на роль DR, а второй – на BDR. Каждый маршрутизатор, который хочет отправить, например, LSA, шлёт его не всем в сети, а на специальный мультикастовый адрес, который слушает только DR и BDR, а DR рассылает LSA всем в сети. Таким образом у нас получается не связь «каждый с каждым», а связь «каждый с DR» + «DR с каждым», что позволяет существенно снизить нагрузку в случае, если маршрутизаторов в таком сегменте много. BDR же ничего никому не шлёт – он только слушает то же что и DR и в случае выхода из строя DR-а, BDR мгновенно занимает его место, а среди оставшихся маршрутизаторов проходят выборы нового BDR.

Метрика в OSPF.

Сам по себе открытый протокол OSPF не предъявляет никаких требований к тому, как должна считаться метрика и как должно оцениваться «качество маршрута», в стандарте просто говорится, что у каждого линка есть некая стоимость (cost), если маршрут проходит через несколько линков, то их стоимость суммируется. Самым лучшим считается тот маршрут, у которого стоимость меньше остальных. Понятно, что мы имеем дело с той же метрикой, только без внятного механизма его подсчёта. Разные производители могут по разному считать стоимость, поэтому Cisco предусмотрела два варианта вычисления стоимости:

  1. Стоимость считается как обратная величина от скорости линка, например, 1 – для гигабита, 10 – для ста мегабит, 100 – для десяти мегабит, 1000 – для одного мегабита и т.п. Такой вариант хорош, когда мы строим сеть только на оборудовании cisco и знаем, что все маршрутизаторы считают метрику по такому алгоритму. В этом случае стоимость будет считаться автоматически, что существенно упростит настройку.
  2. Стоимость задаётся администратором вручную для каждого линка исходя из своих представлений о качестве этого линка. Такой вариант может применяться в случае, если качество линка не измеряется одной его скоростью. Например, администратор может искуственно завысить метрику для линка, на котором проводится таррификация трафика, или на котором часто возникают ошибки. Это даёт большую гибкость, но требует ручной настройки. Второй случай, когда приходится исползовать этот метод – присутствие в сети маршрутизаторов разных производителей. В этой ситуации надо обеспечить адекватный одинаковые представления о стоимости на всех маршрутизаторах. Надо изучить, как считается стоимость у других производителей, посчитать её так же и задать вручную на маршрутизаторах Cisco.

При выборе первого способа стоимость считается так: берётся величина в 1 гигабит и делится на скорость интерфейса. Этот подход был придуман в те времена, когда 1 гигабит был максимальной скоростью, которую только можно представить. Если считать метрику таким образом, то стоимость гигабиат будет равна единице, но и стоимость 10 гигабитного канала тоже будет равна единице (так как стоимость – целое положительное число). Для того чтобы изменить то значение, которое делится на скорость линка, есть команда auto-cost reference-bandwidth, после которой указывается скорость в мегабитах. То есть, чтобы 1 Гбит отличался от 10 Гбит по стоимости, надо ввести команду:

Router(config-router)#auto-cost reference-bandwidth 10000

% OSPF: Reference bandwidth is changed.

Please ensure reference bandwidth is consistent across all routers.

После этого у 10 Гбит будет стоимость 1, у 1 Гб – стоимость 10, у 100 Мб – стоимость 100 и т.д. Важно ввести одинаковое значение на всех маршрутизаторах, чтобы метрика считалась не противоречиво.

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

Полезные ссылки для понимания деталей:

http://ciscotips.ru/ospf

http://ciscotips.ru/singlearea-ospf-configuration

https://easy-network.ru/50-urok-30.html

https://habr.com/ru/company/ua-hosting/blog/466449/

https://habr.com/ru/post/418391/

https://habr.com/ru/company/ua-hosting/blog/466677/

Настройка OSPF для одной области.

У меня есть вот такая схема:

Пропишу адреса на компы:

Далее по аналогии…

Первично настрою маршрутизаторы.

R1. 

R1#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R1(config)#interface fastEthernet 0/0

R1(config-if)#ip address 1.1.1.1 255.0.0.0

R1(config-if)#no shutdown

R1(config-if)#

*Mar  1 00:04:22.411: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up

*Mar  1 00:04:23.411: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up

R1(config-if)#exit

R1(config)#interface fastEthernet 0/1

R1(config-if)#ip address 10.1.1.1 255.0.0.0

R1(config-if)#no shutdown

*Mar  1 00:05:12.147: %LINK-3-UPDOWN: Interface FastEthernet0/1, changed state to up

*Mar  1 00:05:13.147: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/1, changed state to up

R1(config-if)#exit

R1(config)#exit

R1#

*Mar  1 00:05:32.915: %SYS-5-CONFIG_I: Configured from console by console

R1#wr

Building configuration…

[OK]

R1#ping 10.1.1.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 10.1.1.2, timeout is 2 seconds:

.!!!!

Success rate is 80 percent (4/5), round-trip min/avg/max = 1/8/16 ms

R1#

Остальные также по аналогии…

Для того, чтобы настроить процесс маршрутизации OSPF на узлах, необходимо сначала создать процесс OSFP и указать его номер:

Router(config)#router ospf process_ID

Параметр process_ID может принимать значения от 1 до 65535.
Итак, интерфейсы маршрутизаторов настроены в соответствии с приведенной топологией, теперь надо настроить OSPF. Возьмем номер процесса равным 1.
Для того, чтобы объявить подключенные сети, необходимо в режиме настройки OSPF указать объявляемую сеть при помощи команды network:

Router(config-router)network A.B.C.D W.X.Y.Z area area_id

разберем более подробно надпись выше:

  • B.C.D — маска анонсируемой сети
  • X.Y.Z — обратная маска сети
  • area_id — номер OSPF области

Объявим на R1 сети, подключенные к нему. Начнем с интерфейса fa0/1:

R1#sh run int fa0/1 | i ip addr

В данном случае в качестве A.B.C.D будет использоваться адрес сети, полученный путем применения операции «логическое И» между IP-адресом и маски сети: 10.1.1.1 (сеть необязательно вычислять, можно указать адрес, указанный на интерфейсе, а роутер сам заменит его на адрес сети).
Для расчета обратной маски вычтем из 255.255.255.255 текущую маску подсети 255.0.0.0, получим 0.255.255.255
Параметр area_ID в случае OSPF для одной области будет равен 0, поскольку в OSPF нулевая область является дефолтной и используется в качестве магистральной области.

В данном случае в качестве A.B.C.D будет использоваться адрес сети, полученный путем применения операции «логическое И» между IP-адресом и маски сети: 10.1.1.1 (сеть необязательно вычислять, можно указать адрес, указанный на интерфейсе, а роутер сам заменит его на адрес сети).
Для расчета обратной маски вычтем из 255.255.255.255 текущую маску подсети 255.0.0.0, получим 0.255.255.255
Параметр area_ID в случае OSPF для одной области будет равен 0, поскольку в OSPF нулевая область является дефолтной и используется в качестве магистральной области.

R1.

R1#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R1(config)#router ospf 1

R1(config-router)#network 10.0.0.0 0.255.255.255 area 0

R1(config-router)#network 1.0.0.0 0.255.255.255 area 0

R1(config-router)#exit

 

R2.

R2#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R2(config)#router ospf 1

R2(config-router)#network 20.0.0.0 0.255.255.255 area 0

R2(config-router)#network 1.0.0.0 0.255.255.255 area 0

R2(config-router)#

*Mar  2 07:07:44.920: %OSPF-5-ADJCHG: Process 1, Nbr 10.1.1.1 on FastEthernet0/0 from LOADING to FULL, Loading Done

R2(config-router)#network 2.0.0.0 0.255.255.255 area 0

R2(config-router)#exit

R2(config)#exit

R2#wr

*Mar  2 07:08:19.296: %SYS-5-CONFIG_I: Configured from console by console

R2#wr

Building configuration…

[OK]

 

R3.

R3#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R3(config)#router ospf 1

R3(config-router)#network 30.0.0.0 0.255.255.255 area 0

R3(config-router)#network 2.0.0.0 0.255.255.255 area 0

R3(config-router)#

*Mar  2 07:17:10.416: %OSPF-5-ADJCHG: Process 1, Nbr 20.1.1.1 on FastEthernet0/1 from LOADING to FULL, Loading Done

R3(config-router)#exit

R3(config)#exit

R3#wr

*Mar  2 07:17:19.592: %SYS-5-CONFIG_I: Configured from console by console

R3#wr

Building configuration…

[OK]

 

Посмотрим, что получилось, нагляднее всего будет посмотреть на втором маршрутизаторе R2, так как он посередине.

R2#sh ip route

Маршруты вроде прилетают.

Теперь посмотрим список OSPF-соседей на R2:

R2#sh ip ospf neighbor

Явно я здесь ID не задал, поэтому чтобы посмотреть свой идентификатор наберем:

R2#sh ip ospf | i ID

По умолчанию, если принудительно не настроен Router ID или Loopback-интерфейс, в качестве идентификатора маршрутизатора выбирается наибольший IP-адрес, что в моем случае и подтверждается.

Интересный момент, здесь Router ID не настроен и вроде все подсети прилетают, а вот когда делал это на Микроте, то подсети прилетали, но он постоянно ругался на отсутствие явно заданного Router ID.

Попробую добавить Router ID на все три маршрутизатора:

R1.

R1#

*Mar  2 07:09:54.960: %OSPF-5-ADJCHG: Process 1, Nbr 20.1.1.1 on FastEthernet0/0 from LOADING to FULL, Loading Done

R1#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R1(config)#router ospf 1

R1(config-router)#router-id 3.3.3.3

Reload or use «clear ip ospf process» command, for this to take effect

R1(config-router)#exit

R1(config)#exit

R1#

*Mar  2 07:40:04.800: %SYS-5-CONFIG_I: Configured from console by console

R1#clear ip ospf process

Reset ALL OSPF processes? [no]: y

R1#

*Mar  2 07:40:31.164: %OSPF-5-ADJCHG: Process 1, Nbr 20.1.1.1 on FastEthernet0/0 from FULL to DOWN, Neighbor Down: Interface down or detached

*Mar  2 07:40:31.272: %OSPF-5-ADJCHG: Process 1, Nbr 20.1.1.1 on FastEthernet0/0 from LOADING to FULL, Loading Done

 

R2.

R2#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R2(config)#router ospf 1

R2(config-router)#router-id 4.4.4.4

Reload or use «clear ip ospf process» command, for this to take effect

R2(config-router)#exit

R2(config)#exit

R2#

*Mar  2 07:41:04.864: %SYS-5-CONFIG_I: Configured from console by console

R2#clear ip ospf process

Reset ALL OSPF processes? [no]: y

R2#

*Mar  2 07:41:44.068: %OSPF-5-ADJCHG: Process 1, Nbr 30.1.1.1 on FastEthernet0/1 from FULL to DOWN, Neighbor Down: Interface down or detached

*Mar  2 07:41:44.072: %OSPF-5-ADJCHG: Process 1, Nbr 3.3.3.3 on FastEthernet0/0 from FULL to DOWN, Neighbor Down: Interface down or detached

*Mar  2 07:41:44.128: %OSPF-5-ADJCHG: Process 1, Nbr 30.1.1.1 on FastEthernet0/1 from LOADING to FULL, Loading Done

*Mar  2 07:41:44.128: %OSPF-5-ADJCHG: Process 1, Nbr 3.3.3.3 on FastEthernet0/0 from LOADING to FULL, Loading Done

 

R3.

R3#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R3(config)#router ospf 1

R3(config-router)#router-id 5.5.5.5

Reload or use «clear ip ospf process» command, for this to take effect

R3(config-router)#exit

R3(config)#exit

R3#

*Mar  2 07:44:00.832: %SYS-5-CONFIG_I: Configured from console by console

R3#clear ip ospf process

Reset ALL OSPF processes? [no]: y

R3#

*Mar  2 07:44:15.788: %OSPF-5-ADJCHG: Process 1, Nbr 4.4.4.4 on FastEthernet0/1 from FULL to DOWN, Neighbor Down: Interface down or detached

*Mar  2 07:44:15.872: %OSPF-5-ADJCHG: Process 1, Nbr 4.4.4.4 on FastEthernet0/1 from LOADING to FULL, Loading Done

 

Снова посмотрим на R2:

R2#sh ip route

С маршрутами все тоже самое.

R2#sh ip ospf neighbor

А вот поле нейбор ID поменялось, это говорит о том, что, принудительно настроенный Router-id в режиме конфигурации OSPF имеет приоритет над наибольшим IP-адресом на роутере.

Что с loopback интерфейсом?

R1.

R1#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R1(config)#interface lo0

R1(config-if)#

*Mar  2 08:05:56.604: %LINK-3-UPDOWN: Interface Loopback0, changed state to up

*Mar  2 08:05:57.604: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up

R1(config-if)#ip address 6.6.6.6 255.255.255.255

R1(config-if)#router ospf 1

R1(config-router)#network 6.6.6.6 0.0.0.0 area 0

R1(config-router)#exit

R1(config)#exit

R1#wr

*Mar  2 08:07:01.576: %SYS-5-CONFIG_I: Configured from console by console

R1#wr

Building configuration…

[OK]

 

R2.

R2#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R2(config)#interface lo0

*Mar  2 08:07:29.228: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up

R2(config-if)#ip address 7.7.7.7 255.255.255.255

R2(config-if)#router ospf 1

R2(config-router)#network 7.7.7.7 0.0.0.0 area 0

R2(config-router)#exit

R2(config)#exit

R2#wr

*Mar  2 08:08:33.696: %SYS-5-CONFIG_I: Configured from console by console

R2#wr

Building configuration…

[OK]

 

R3.

R3#wr

Building configuration…

[OK]

R3#conf t

Enter configuration commands, one per line.  End with CNTL/Z.

R3(config)#interface lo0

R3(config-if)#

*Mar  2 08:08:37.416: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up

R3(config-if)#ip address 8.8.8.8 255.255.255.255

R3(config-if)#router ospf 1

R3(config-router)#network 8.8.8.8 0.0.0.0 area 0

R3(config-router)#exit

R3(config)#exit

R3#

*Mar  2 08:09:24.572: %SYS-5-CONFIG_I: Configured from console by console

R3#wr

Building configuration…

[OK]

 

Снова посмотрим на R2:

R2#sh ip route

Таблица маршрутов несколько изменилась.

R2#sh ip ospf neighbor

Или глюк, или я чего-то не понимаю, как видно, что после clear ip ospf process все три маршрутизатора стали DR. Если есть версии почему так, прошу написать в комментариях?

R2#sh ip ospf | i ID

Взглянем на маршруты прилетающие по OSPF:

R2#show ip route ospf

R1#sh ip ospf route

Получается следующий порядок применения:

1) принудительно настроенный Router-id в режиме конфигурации OSPF
2) если Router-id не указан, в качестве идентификатора выбирается активный Loopback-интерфейс
3) если Loopback-интерфейс не задан, в качестве Router-id выступает наибольший IP-адрес на роутере.

На остальных маршрутизаторах маршруты тоже прилетают, а значит все работает.

Приведу кусок конфига с маршрутизатора R2:

Вроде как в одной зоне рекомендовано не более 60 маршрутизаторов (прочитал на одном из форумов), точно инфы не нашел.

Моя текущая схема возможно не очень наглядна, OSPF интереснее смотреть вот на такой:

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

Всем хорошей работы!!!

01.10.2019 Posted by | Network and Wi-fi: cisco, mikrotik, huawei, tp-link, d-link, zyxel и другое... | Комментарии к записи OSPF Cisco. отключены