ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Протокол OSPF
Про динамическую маршрутизацию
Онлайн курс по Кибербезопасности
Изучи хакерский майндсет и научись защищать свою инфраструктуру! Самые важные и актуальные знания, которые помогут не только войти в ИБ, но и понять реальное положение дел в индустрии
OSPF наиболее широко используемый протокол внутренней маршрутизации. Когда идёт речь о внутренней маршрутизации, то это означает, что связь между маршрутизаторами устанавливается в одном домене маршрутизации, или в одной автономной системе. Представьте компанию среднего масштаба с несколькими зданиями и различными департаментами, каждое из которых связано с другим с помощью канала связи, которые дублируются с целью увеличения надежности. Все здания являются частью одной автономной системы. Однако при использовании OSPF, появляется понятие «площадка», «зона» (Area), которое позволяет сильнее сегментировать сеть, к примеру, разделение по «зонам» для каждого отдельного департамента.
Видео: протокол OSPF (Open Shortest Path First) за 8 минут
Для понимания необходимости данных «зон» при проектировании сети, необходимо понять, как OSPF работает. Есть несколько понятий, связанных с этим протоколом, которые не встречаются в других протоколах и являются уникальными:
OSPF – протокол маршрутизации с проверкой состояния каналов. Представьте себе карту сети – для того, чтобы ее сформировать, OSPF совершает следующие действия:
Типы маршрутизаторов OSPF
Разберем различные типы маршрутизаторов при использовании протокола OSPF:
Area Border Router – маршрутизатор внутри нулевой зоны, через который идет связь с остальными зонами
Designated Router, Backup Designated Router – этот тип маршрутизаторов обсуждался выше, это основной и резервирующий маршрутизаторы, которые ответственны за базу данных маршрутизаторов в сети. Они получают и посылают обновления через Multicast остальным маршрутизаторам в сети.
Autonomous System Boundary Router – этот тип маршрутизаторов соединяет одну или несколько автономных систем для осуществления возможного обмена маршрутами между ними.
Подведем итоги
Полный курс по Сетевым Технологиям
В курсе тебя ждет концентрат ТОП 15 навыков, которые обязан знать ведущий инженер или senior Network Operation Engineer
Протоколы состояния канала и однозоновый OSPF (часть 2)

Из всех просмотренных видео, прочитанных книг для подготовки к CCNP ROUTE, материал из этой показался наиболее легким для усвоения. Позволяет разложить все по полочкам. Кроме теории мне также понравились практические примеры. В конце каждой главы есть ссылки на уроки на youtube.
Часть 1.
Типы сетей OSPF
Почему типы сетей OSPF важны
По умолчанию тип сети OSPF зависит от типа сегмента сети. Различные типы сетей OSPF имеют различные значения hello- и dead- таймеров, и это одни из значений, которые должны совпадать для установления соседства между двумя маршрутизаторами. Кроме того, некоторые типы сетей OSPF не имеют DR и BDR, а у других есть особые условия, которые необходимо соблюдать.
Кроме того, они все одинаковые, правильно? 🙂
Не беспокойтесь, мы рассмотрим каждый тип сети OSPF, необходимый для сдачи экзамена CСNP ROUTE!
Если не указано иное, сегмент сети находится в зоне 0 — основной зоне.
Адрес подсети широковещательной сети — 10.1.1.0/24. Последний октет каждого IP адреса будет номером маршрутизатора. Каждый маршрутизатор имеет петлевой интерфейс, с номером маршрутизатора в каждом октете. (Петлевой интерфейс для R1 — 1.1.1.1/32 и т.д.)
Широковещательная сеть OSPF
Конфигурация OSPF в сегменте Ethernet для широковещательной сети будет оставлена по-умолчанию, также будут выбраны DR и BDR, для влияния на выбор DR/BDR можно использовать команду ip ospf priority.
Для большого сегмента сети хорошая идея использовать мощные маршрутизаторы для выполнения этих ролей (DR/BDR), так как это влечет за собой нагрузку на CPU. Как всегда, все, что мы делаем на маршрутизаторе имеет свою цену.
Вывод команды show ip ospf interface ethernet0 на маршрутизаторе R1 показывает нам тип сети, а также много другой информации. Заметьте, значения по-умолчанию hello- и dead- таймеров широковещательной сети — 10 и 40 секунд соответственно. По-умолчанию dead time равен четырехкратному hello time.
Для широковещательного сегмента не обязательно делать определенный маршрутизатор DR или BDR, но для нашего следующего примера это не так.
Сеть OSPF NBMA
Сейчас мы добавим еще сегмент к существующей сети, на frame relay. Новый сегмент использует адрес 172.12.123.0/24. От R1 идет два канала PVC до R2 и R3; между «спицами»(spoke) PVC нет. Интерфейс Serial0 каждого маршрутизатора находится в зоне 0.
Последовательные интерфейсы в этом новом сегменте по-умолчанию будут нешироковещательными с множественным доступом (NBMA). Так как узлы сети не образуют полносвязную сеть, хаб-маршрутизатор R1 должен быть DR и здесь может не быть BDR.
Почему? У DR и любого потенциального BDR должна быть возможность получать мультикаст от всех остальных маршрутизаторов в сети. В топологии «звезда» у spoke-маршрутизатора нет возможности получать широковещательный или мультикаст трафик от другого spoke-маршрутизатора, так как весь трафик проходит через хаб — а маршрутизаторы не перенаправляют широковещательный или мультикаст трафик!
Перед настройкой любой OSPF конфигурации поверх frame relay, убедитесь, что опция broadcast у вас включена!
Иначе OSPF пакеты не будут передаваться через frame relay.
Недостаточно просто убедиться, что R1 стал DR — мы должны предотвратить возможность становления DR/BDR для R2 и R3! Для этого изменим приоритет со значения по-умолчанию (1) на 0.
Маршрутизатор с наибольшим значением приоритета интерфейса, на котором включен OSPF, становится DR. Если значения приоритета равны, то сравниваются идентификаторы маршрутизаторов (RID), выигрывает — наибольший.
Фактически, мы мошенничаем с выбором DR, не оставляя шансов для spoke-маршрутизаторов, даже при исчезновении хаба! Установка приоритета в 0 для spoke-маршрутизаторов не оставляет им возможности стать DR в случае перезагрузки хаб-маршрутизатора.
«NB» в слове NBMA означает «нешироковещательный», так что при конфигурировании хаб-маршрутизатора нужно вручную указывать соседей, как показано ниже. Для spoke-маршрутизаторов такое не требуется.
У вас может быть сеть NBMA c DR и BDR, но они оба должны быть хаб-маршрутизаторами. Сеть с двумя хабами может использовать один как DR, другой как BDR. Каждый DR или BDR должен иметь статически настроенных соседей; такая настройка не нужна на других маршрутизаторах. (Если у вас много хаб-маршрутизаторов, один из них может быть BDR).
Заметьте, hello- и dead- таймеры равны 30 и 120 соответственно. Dead-таймер снова в четыре раза больше, чем hello.
Последовательные интерфейсы по-умолчанию NBMA, но вы можете изменить тип сети OSPF интерфейса командой ip ospf network.
Типы сетей OSPF Point-To-Point и Point-To-Multipoint
Сейчас мы добавим прямое соединение между R1 и R3, но расположим его в зоне 13. Номер подсети 172.12.13.0/27. Интерфейсы Serial1 обоих маршрутизаторов находятся в этой зоне 13.
Все non-backbone зоны должны иметь маршрутизатор с логическим или физическим интерфейсом в основной зоне 0. В зоне 13 два таких маршрутизатора, так что конфигурация правильная.
show ip ospf interface serial1 покажет данный сегмент OSPF по-умолчанию для типа сети OSPF point-to-point. Этот вывод показывает также по-умолчанию hello- и dead- таймеры для данного типа сети — 10 и 40 секунд соответственно.
Заметьте, что в списке нет DR и BDR. В канале «точка-точка» только два маршрутизатора. Следовательно, нет необходимости даже иметь DR или BDR, и ни один маршрутизатор не будет выбран в качестве таковых.
show ip ospf neighbor показывает прочерки на месте, где обычно указана роль соседа. Процесс выбора DR/BDR опускается в point-to-point и point-to-multipoint сетях. Команда neighbor обычно не нужна в этих сетях. Ниже R3 видит R1 как DR в сети NBMA, тогда как он же без роли видим в сети point-to-point.
Прочерк после FULL/ показывает, что сосед не является ни DR, ни BDR, ни DROther, что означает, что процесса выбора DR/BDR не было. Вы увидите подобную ситуацию в OSPF сети point-to-multipoint, что OSPF воспринимает, как набор каналов point-to-point.
Например, мы можем вернуться и изменить конфигурацию OSPF сети frame relay как сети point-to-multipoint командой ip ospf network point-to-multipoint на последовательном интерфейсе маршрутизатора R1. DR/BDR выбраны не будут и команда neighbor не нужна.
Теперь сеть OSPF типа point-to-multipoint предлагает два варианта — широковещательная и нет.
Конфигурация широковещательной OSPF сети Point-To-Multipoint
Этот тип сети не требует команды neighbor, но вы можете определить стоимость для данного соседа.
Заметьте, что опция broadcast отсутствует, так как по-умолчанию сети типа point-to-multipoint — широковещательные.
Нешироковещательная OSPF сеть Point-To-Multipoint
С другой стороны, в нешироковещательной сети point-to-multipoint команда neighbor требуется. Вы можете добавить стоимость для соседа, но соседи должны быть статически определены для данного типа сети.
Запуск широковещательных OSPF сетей над топологией NBMA
То, что вы можете что-то сделать, не означает, что вы должны это делать!
Нам следует использовать команду ip ospf network broadcast на всех маршрутизаторах сети frame relay, и, так как сеть полносвязная, технически все должно работать и маршрутизаторы будут вести себя так, как если бы были в LAN сети.
В реальной жизни использование широковещательной OSPF сети в сегменте NBMA может привести к непредсказуемым результатам, и лично я не стал бы так делать.
Зачем тратить время на устранение проблем, когда можно придерживаться настроек по-умолчанию?
Виртуальный канал (virtual link) OSPF
Настройки OSFP сети, запущенной через frame relay, были восстановлены до значений по-умолчанию для сети типа NBMA и останутся таковыми до конца данного раздела.
Сейчас мы добавим маршрутизатор R4 в нашу сеть. R4 и R3 будут соседями через зону 34, у R4 будет петлевой интерфейс в зоне 4. Адрес подсети для сегмента между R3 и R4 — 172.12.34.0/24, сегмент ethernet.
Результат данной конфигурации — неполные таблицы маршрутизации, что приводит нас к еще одному типу сетей OSPF. С зоной 34 проблем нет — один из маршрутизаторов с интерфейсом в этой зоне, также имеет физический интерфейс в основной зоне (R3).
Но в зоне 4 нет ни одного маршрутизатора с интерфейсом в зоне 0. Значит нужно сконфигурировать логическое соединение с зоной 0 — virtual link.
Так как у маршрутизатора R3 есть интерфейс в зоне 0, запуск виртуального канала между R3 и R4 позволит достичь полной связности в сети. Проблема в том, что у R1 нет маршрута до петлевого интерфейса R4, несмотря на то, что этот интерфейс был включен в OSPF.
Зона, через которую проходит виртуальный канал называется транзитной (transit area), она не может быть stub-зоной любого типа (stub, total stub, nssa) (Если вас раздражают все эти названия — не беспокойтесь, в данном курсе впереди еще будет много информации по ним!).
Вот команды для создания виртуального канала:
Виртуальные каналы должны быть сконфигурированы на обоих концах транзитной зоны. Сейчас перейдем к R3 и завершим конфигурацию.
И еще несколько деталей…
—Команда virtual link использует RID удаленного устройства, не обязательно IP адрес интерфейса, находящегося в транзитной зоне. Следите за этим — это очень распространенная ошибка. Проверяйте RID!
—Также не беспокойтесь насчет сообщений об ошибках в выводе команд R3, это нормально, вы будете видеть такие сообщения пока не закончите настраивать виртуальный канал. А вот если сообщения об ошибках появляются после настройки — то у вас проблема.
Всегда проверяйте виртуальный канал командой show ip ospf virtual-link. Если все настроено правильно, то он должен подняться за секунды.
Виртуальные каналы просто настраивать, но по какой-то причине они пугают людей. По моему опыту, сообщение об ошибке, как для маршрутизатора R3, вызывает панику, но все, что значит такое сообщение — только то, что настройка виртуального канала не закончена.
Знания рассеивают страх и панику.
99% ошибок при настройке виртуального канала вызывают следующие действия:
—использование неправильного значения RID
—попытка использовать stub-зону в качестве транзитной
—ошибка при настройке аутентификации для виртуального канала, в случае, когда зона 0 использует аутентификацию.
Этот третий случай выделен специально. Последнее всегда забывается! Виртуальный канал — это расширение зоны 0, и если зона 0 использует аутентификацию, она должна быть настроена и для виртуального канала тоже.
В этом разделе мы рассмотрели много команд OSPF, но не забывайте вашего старого друга — show ip protocols. Безотносительно типа сети, эта команда покажет вам маршрутизируемые сети, информацию об аутентификации для канала, и многое другое. Это замечательная команда для начала устранения проблем для любого протокола маршрутизации.
Настройка OSPF. Конфигурирование ABR и ASBR
Настройка ABR и ASBR
Схема данной статьи аналогична предыдущей, за исключением интерфейса E0/0 на R2. Он участвует в процессе маршрутизации EIGRP 100.
Итак, интерфейсы на маршрутизаторах настроены в соответствии с топологией, теперь поднимем OSPF на роутерах (в качестве Router-id используем ip-адрес с порядковым номером роутера)
Теперь пропишем EIGRP на R2:
Проверим установившиеся соседства и таблицы маршрутизации:
R1:
OSPF успешно поднялся, а на R2 интерфейс E0/0 отображается как локальный, поскольку административная дистанция у него меньше, чем у EIGRP. Проверим запущенные процессы маршрутизации:
В описании EIGRP 100 видно, что выполняется маршрутизация сети 2.0.0.0, настроим редистрибьюцию EIGRP в OSPF. Делается это следующей командой в режиме настройке OSPF:
Как видно выше, можно перераспределить множество протоколов. Но нас интересует именно EIGRP:
Разберем чуть более подробно команду выше:
После этого проверим выводы таблицы маршрутизации на R1 и R3:
R1:
У нас появился маршрут до сети 20.0.0.0/8 с указанной административной дистанцией 100. Сам же маршрут помечен символами O E2, что говорит о том, что маршрут получен из внешнего источника путем редистрибьюции. Сам же маршрутизатор, выполняющий перераспределение является пограничным маршрутизатором автономной системы (ASBR).
Autonomus System Boundary Router (ASBR, пограничный маршрутизатор автономной системы) — обменивается сетями с роутерами, принадлежащим другим автономным системам (процессам маршрутизации, например EIGRP, BGP, Static route, другой процесс OSPF). ASBR может быть внутренним, граничным или магистральным роутером.
Проверим, кто из роутеров является ABR/ASBR:
Как для R1, так и для R3 маршрутизатор R2 является как ABR (в ospf-областях 0 и 2 соответственно), так и ASBR.
Более подробную информацию по ABR можно получить тут
OSPF (часть первая)
Данная статья была написана для себя, чтоб при необходимости быстро освежить память и разобраться с теорией. Решил ее опубликовать, возможно кому-то будет полезна, а может в чем то ошибаюсь.
В данной статье попытаемся разобраться с теорией работы протокола OSPF. Не будем углубляться в историю и процесс создания протокола, данная информация в изобилии есть почти в каждой статье о OSPF. Мы постараемся более детально разобраться как работает протокол OSPF и как строит свою таблицу маршрутизации. Важно дать общее определение протокола:
OSPF (англ. Open Shortest Path First) — протокол динамической маршрутизации, основанный на технологии отслеживания состояния канала (link-state technology) и использующий для нахождения кратчайшего пути алгоритм Дейкстры.
Возникает сразу вопрос — Что есть технология отслеживания состояния канала? Данное название считаю не совсем удачным. Сложилось так, что существует два типа протоколов динамической маршрутизации: Link-state и Distance-Vector. Рассмотрим их принципы работы:
В Distance-Vector протоколах, маршрутизатор узнает информацию о маршрутах посредством маршрутизаторов непосредственно подключенных в один с ним сегмент сети. То есть, маршрутизатор имеет информацию о топологии только в границах его соседних маршрутизаторов и понятия не имеет как устроена топология за этими маршрутизаторами, ориентируясь только по метрикам. В Link-state протоколах каждый маршрутизатор должен непросто знать самые лучшие маршруты во все удалённые сети, но и иметь в памяти полную карту сети со всеми существующими связями между другими маршрутизаторами в том числе. Это достигается за счет построения специальной базы LSDB, но подробнее об этом позже.
Итак, начнем с того, как же строится LSDB из которой маршрутизатор узнает о всех-всех маршрутах? Построим начальную топологию для изучения. Выглядит она так:
Будем настраивать OSPF. С чего начинается OSPF? C установления соседства между маршрутизаторами — после активации OSPF на интерфейсах маршрутизатора, маршрутизаторы начинают рассылать Hello сообщения. Данное сообщение рассылается на мультикастовый адрес — 224.0.0.5 каждые 10 секунд (Hello Timer). Мы включим сначала OSPF на маршрутизаторе vIOS1.
Посмотрим как выглядит Hello-пакет:
В сообщении важно обратить внимание на такие поля как Area ID, Source OSPF Router. При запуске процесса OSPF выбирается Router ID, который необходим для идентифицирования маршрутизатора среди остальных маршрутизаторов OSPF. Правила выбора данного параметра следующие:
1. Настроен специальной командой router-id A.B.C.D — в формате ip адерса.
2. Настроен один loopback-интерфейс и несколько интерфейсов с различными адресами:
Итак, мы включили OSPF на vIOS1 и он начал каждые 10 секунд отправлять Hello-пакеты. Включим OSPF на vIOS2 и проследим как будут устанавливаться отношения соседства.
Итак, внимательно следим за последовательностью сообщений. Сначала Hello отправляет только маршрутизатор 1.1.1.1 ( 192.168.1.1 ), как только мы включим OSPF на 192.168.1.2, то отправится Hello пакет. vIOS1 и vIOS2 получат Hello пакеты друг у друга и для того, чтоб соседство состоялось важно, чтобы в конфигурации OSPF на обоих маршрутизаторах были одинаковыми следующие параметры:
База LSDB будет содержать в себе информацию о маршрутах и данная LSDB после установления соседства должна быть идентичная на всех маршрутизаторах в пределе одной зоны. И, первым делом, маршрутизаторы после установления соседства начинают процесс синхронизаций своих баз данных друг с другом (vIOS1 c vIOS2). Как можно увидеть все начинается с обменом между собой сообщений DB Description (DBD). Чтоб стало более понятно, расскажем о типах сообщений, который использует OSPF:
Объявление о состоянии канала (Link State Advertisement, LSA) — единица данных, которая описывает локальное состояние маршрутизатора или сети. Множество всех LSA, описывающих маршрутизаторы и сети, образуют базу данных состояния каналов (LSDB). LSDB состоит из нескольких видов LSA. Очень подробно о каждом LSA написано в этой статье. В сообщениях DBD используется достаточно много флагов для определения состояния синхронизации, а также данные сообщения содержат информацию о собственной базе данных. То есть, vIOS1 сообщает в данных сообщениях, что в моей базе есть информация о таких сетях, как 192.168.0/24, 1.1.1.0/24 (LSA Type 1), а vIOS2 в свою очередь сообщает, что у него есть записи о сетях: 192.168.2.0/24, 2.2.2.0/24 (LSA Type 1). После получения сообщений DBD, каждый маршрутизатор отправляет LSAck в подтверждение о полученном сообщении, и, далее, сравнивает информацию в базе соседа со своей. Если найдено, что не достает какой-либо информации, то маршрутизатор отправляет LS Request, где запрашивает полную информацию о каком-либо LSA. Например, vIOS1 запросил LS Request у vIOS2, vIOS2 отправляет в ответ LS Update, в которой уже содержится подробная информация о каждом маршруте. Ниже показан LS Update:
Как видите, в данном сообщении vIOS2 рассказывает об известных ему подсетях и информацию связанную с ними. Также, vIOS1 рассказывает о своей LSDB. И в конце концов, маршрутизаторы имеют одинаковую LSDB. Как только процесс завершен, запускается алгоритм Дейкстры (Shortest Path First). Он рассчитывает все известные маршруты из LSDB и лучшие из них помещает в таблицу маршрутизации. Лучший, тот у которого метрика ниже, но об этом позже.
Задумаемся о вопросе, что будет, если мы активируем OSPF на vIOS3? Так как vIOS3 придется строить LSDB и синхронизировать её с другими маршрутизатора, то встает вопрос с кем именно синхронизировать? С vIOS1 или vIOS2? С каждым по отдельности? Насколько это оптимально? Поэтому в OSPF есть такое понятие как DR — Designated router. Введем данное понятие:
Выделенный маршрутизатор (designated router, DR) — управляет процессом рассылки LSA в сети. Каждый маршрутизатор сети устанавливает отношения соседства с DR. Информация об изменениях в сети отправляется DR, маршрутизатором обнаружившим это изменение, а DR отвечает за то, чтобы эта информация была отправлена остальным маршрутизаторам сети.
Другими словами, если в сегменте сети появляется новый маршрутизатор, то он будет синхронизировать свою LSDB именно с DR. Также важно заметить, что и не только новые, но и все остальные маршрутизаторы при изменении сети или появлении нового маршрута будут сообщать об этом DR, а остальные будут забирать данную информацию с DR. Но тут же возникают вопросы — Что будет, если DR выйдет из строя? Как выбирается DR?
При выходе его из строя должен быть выбран новый DR. Новые отношения соседства должны быть сформированы и, пока базы данных маршрутизаторов не синхронизируются с базой данных нового DR, сеть будет недоступна для пересылки пакетов. Для устранения этого недостатка выбирается BDR — Backup designated router:
Резервный выделенный маршрутизатор (backup designated router, BDR). Каждый маршрутизатор сети устанавливает отношения соседства не только с DR, но и BDR. DR и BDR также устанавливают отношения соседства и между собой. При выходе из строя DR, BDR становится DR и выполняет все его функции. Так как маршрутизаторы сети установили отношения соседства с BDR, то время недоступности сети минимизируется. Таким образом, у нас в сети получаются не только DR, но и BDR. Остальные маршрутизаторы будут получать и сообщать актуальную информацию о сети только посредством их. DR и BDR выбирается только внутри одного сегмента, а не зоны! То есть, у маршрутизаторов vIOS1, vIOS2, vIOS3, vIOS4 будут выбраны одни DR и BDR, а, например, между vIOS и vIOS1 будут определены свои DR и BDR уже относительно их сегмента сети, даже, если они в одной Area 0. Для общения с DR и BDR, маршрутизаторы используют мулитькастовый адрес — 224.0.0.6.
Следующий вопрос — Как выбирается DR/BDR? Применяются следующие критерии:
После получения новой информации от vIOS3, DR рассылает LS Update сообщения всем маршрутизаторам на адрес 224.0.0.5, на что остальные маршрутизаторы, получив пакет отправляют LS Acknowledge для DR, но уже на адрес 224.0.0.6 (адрес для DR/BDR).
По такой же схеме у нас подключается и vIOS4. После синхронизации, у всех маршрутизаторов одна и так же LSDB. Посмотрим как выглядят состояния соседства у vIOS3. Команда show ip ospf neighbor:
Как мы можем увидеть, DR — 2.2.2.2, BDR — 1.1.1.1, а с vIOS4 выбрано состояние 2WAY/DROTHER. О состояниях соседства была дана ссылка выше.
А вот состояния соседства на vIOS1 c установленном соседством c vIOS:
Как видите у него два DR потому, что у него имеется сосед и в другом сегменте сети.
Мультизоны
Рассмотрим принципы работы OSPF в случае, когда используется несколько зон. Изменим нашу топологию, добавив новые маршрутизаторы:
Начнем с того, что сконфигурируем OSPF на vIOS1 и vIOS так, что их интерфейсы Gi0/1 на vIOS и vIOS1 будут находиться в зоне 1. Посмотрим, что изменитcя. vIOS1 теперь имеет интерфейсы и в Area 0 (Gi0/0), и в Area 1 (Gi0/0). Такой маршрутизатор называется ABR — Area Border Router ( чуть ниже дадим более корректное определение ABR). ABR будет рассылать информацию о маршрутах из одной зоны в другую. Делается это посредством LSA Type 3:
Type 3 LSA — Network Summary LSA — суммарное объявление о состоянии каналов сети:
По своей сути, структура LSA Type 3 не сильно отличается от LSA Type 1, но они по-разному влияют на работу протокола. При получения обновленного или при потере какого-либо LSA Type 1&2, запускается заново SPF (алгоритм вычисления кратчайшего пути) и пересчитывает LSDB.
При получении LSA Type 3, данный процесс не происходит — получается маршрут с метрикой в LSA Type 3. В этом LSA хранится данные о том, через какой ABR был получен данный маршрут ( ABR указан в поле Advertising Router) и метрика, чтоб достичь данный ABR уже имеется в LSDB. Таким образом, метрика из LSA Type 3 суммируется с метрикой маршрута до ABR и получаем готовый маршрут без перезапуска SPF. Данный процесс называется Partial SPF calculation. Это довольно важно потому, что в больших сетях размеры LSDB могут быть довольно большими и часто запускать SPF не есть хорошо. Также, создание LSA Type 3 говорит о том, что изменения и пересчет LSDB это дела одной зоны. ABR только сообщает, что с каким-то маршрутом что изменилось.
Также важно заметить, что любой маршрут из ненулевой зоны в любую ненулевую зону проходит через Area 0. Если есть ABR, он не может быть не подключен к Area 0 (исключаем вариант с virtual-link). Area 0 является ядром, которое соединяет все остальные зоны и обеспечивает маршрутизацию между зонами. Определение ABR выглядит так:
Пограничный маршрутизатор (area border router, ABR) — соединяет одну или больше зон с магистральной зоной и выполняет функции шлюза для межзонального трафика. У пограничного маршрутизатора всегда хотя бы один интерфейс принадлежит магистральной зоне. Для каждой присоединенной зоны маршрутизатор поддерживает отдельную базу данных состояния каналов.
Разобрались с установлением соседства, созданием LSDB и SPF, с обычной зоной. А сейчас разберемся с сходимостью и реакцией OSPF на изменения в топологии.
Посмотрим на нашу топологию и представим, что vIOS3 перестал работать (состояние каналов не изменилось). Поможет в перестроении топологии Dead Interval Timer — 40 секунд. Если в течении данного интервала, маршрутизатор не получает Hello-пакета от соседа, то рушится соседство. В нашем случае, DR разошлет LS Update с LSA Type 2, где укажется, что среди подключенных маршрутизаторов нет vIOS3, это приведет к тому, что запустится SPF и пересчитает LSDB уже без LSA полученных от vIOS3. Важно заметить, что на обычном маршрутизаторе типа vIOS4 даже исчерпание Dead Interval Timer и потеря соседства с vIOS3 не приводит к пересчету топологии, именно сообщение LS Update c LSA Type 2 запускает этот процесс.
Type 2 LSA — Network LSA — объявление о состоянии каналов сети:
Включим обратно vIOS3 и установим соседство заново. Следующим экспериментом будет — реакция на отключения интерфейса Gi0/1 на vIOS3. Как только vIOS3 детектирует падения линка, он моментально отправляет LS Update к DR на адрес 224.0.0.6, где сообщается о падении определенных маршрутов при помощи выставления флага в LSA — LS Age равный 3600 секунд. Для LSDB это Max Age и все LSA c Max Age не учитываются при SPF, поэтому их не будет в таблице маршрутизации. Возникает вопрос: А когда Age LSA естественным путем достигает Max Age, что происходит? Для этого в OSPF есть LSRefreshTime — равный половине Max Age, через каждые 1800 секунд отправляется LS Update с маршрутизатора для обновления данных таймеров:
Далее, DR обработав данный LS Update, отправляет всем остальным маршрутизаторам LS Update на адрес 224.0.0.5. Как только, маршрутизаторы получили новую информацию — они отправляют LSAck. Тем самым достигается хорошая сходимость в OSPF.
Выбор лучшего маршрута
Маршрутизатор выбирает лучший маршрут на основании наименьшего значения метрики. Однако, OSPF учитывает и несколько других факторов при выборе маршрута. В данном случае важен источник маршрута и его тип. Приоритет выбора маршрута следующий:
cost = reference bandwidth / link bandwidth. Reference bandwidth — базис пропусной способности. По умолчанию, на Cisco равен 100Mbit.
ABR Loop Prevention. Как мы говорили выше, между зонами принцип работы OSPF похож на distance-vector протокол. Используя механизмы предотвращения петель, можем получить, что выбирается неоптимальный путь. Например, между зонами существует правило подобное Split Horizon из distance-vector протоколов. Рассмотрим это на примере, если изменить нашу топологию на границе зоны 0 и 4 так:
то мы получим, что vIOS18 будет выбирать неоптимальный путь с метрикой 100 через интерфейс Gi0/0. Происходит это в силу того, что vIOS18 не будет учитывать LSA Type 3, полученные не от зоны 0. Также, выше указанное правило запрещает передавать данный LSA Type 3 обратно в зону 0.















