Какие из следующих протоколов маршрутизации используют логику состояния канала

Обновлено: 01.05.2024

1. Основы IGP протокола OSPF класса Link-State или базовая настройка динамической маршрутизации на роутере Cisco

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

1.1 Введение

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

1.2 Основы протокола OSPF

На данный момент в мире две версии протокола OSPF: OSPFv2 и OSPFv3. Первая используется для динамической маршрутизации IPv4 (RFC 2328), вторая для IPv6 (RFC 2740). Вне зависимости от версии протокола OSPF относится к группе IGP протоколов, а это означает, что используется он в пределах одной автономной системы. Когда мы разберемся с тем, как работает OSPF, вы поймете, что этот протокол не применим для глобальной маршрутизации в силу естественных причин, связанных с производительностью роутеров, им просто не хватит вычислительной мощности, чтобы просчитать все маршруты Интернета по алгоритмам, применяющимся в OSPF.

В основе работы протокола OSPF лежит Алгоритм Дейксты или алгоритм поиска кратчайшего пути, отсюда, собственно и вытекает SPF (shortest path first). Для обмена информацией о маршрутах, а также для обмена дополнительной информацией, использует несколько разных типов пакет. Какие? Потом разберемся. Сейчас нам нужно для себя отметить, что пакеты OSPF инкапсулируются в IP-пакеты. Вы должны помнить, что у IP-пакета есть код вложения, увидев этот код, роутер поймет, что находится внутри IP-пакета, для OSPF зарезервирован код 89. Передача OSPF пакета может происходить как unicast, так и multicast, при этом используется два multicast адреса:

Ну и еще одна важна вещь, о которой стоит сказать. OSPF относится к протоколам типа Link-State, а это означает, что каждый маршрутизатор внутри автономной системы обладает полным представлением о том, как устроена его сеть на уровне IP протокола (то есть на сетевом уровне моделей TCP/IP и OSI 7), в дальнейшем мы убедимся, что это не так и поймем, почему это не так, опять же, всё упирается в производительность железок.

1.3 Терминология протокола OSPF

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

ПРЕДУПРЕЖДЕНИЕ: не пытайтесь заучить эти термины, лучше при прочтении возвращается к этому месту, если какое-то слово покажется вам незнакомым, смысла заучивать нет, все необходимое запомнится само по мере погружения в тему.

Для облегчения задачи мы разделим термины на три группые. Стоит добавить, что терминология OSPF является устоявшейся, но все равно некоторые вендоры могут вводить что-то свое, в этом случае рекомендую обращаться к документации вендора или в Google, там ответ вы точно найдете.

1.3.1 Основные термины протокола OSPF

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

Это были общие термины, относящиеся к протоколу OSPF

1.3.2 Соседи и отношения соседства в OSPF

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

  1. Сосед/соседи (neighbor/neighbors) – это два маршрутизатора, которые находятся в одной канальной среде, но это еще не всё. На интерфейсах этих маршрутизаторов, смотрящих друг на другу, должен быть включен и правильно настроен OSPF, то есть настройки должны быть консистентные с обеих сторон.
  2. Отношение соседства (adjacency) – маршрутизаторы в OSPF должны постоянно синхронизировать свои базы данных, в которых хранится информации о сети, если два маршрутизатора нормально обмениваются такой информацией, то можно сказать, что они имеют соседские отношения.
  3. Hello-протокол (hello-protocol) – для поиска соседей, установления соседства, а также для поддержания соседских отношений маршрутизаторы используют hello-пакеты.
  4. База данных соседей (neighbors database) – маршрутизатор должен знать всех своих соседей, чтобы в случае чего потыкать в них палочкой и что-нибудь уточнить или что-нибудь сообщить своим соседям, например, если появилась новая сеть. Для этих целей у маршрутизаторов есть список соседей, иногда этот список называется neighbors table.

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

1.3.3 Виды пакетов в OSPF

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

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

1.4 Как работает протокол OSPF: краткая теория и практика на примере маршрутизаторов Cisco.

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

1.4.1 Схема для демонстрации и настройки IP-протокола на маршрутизаторе

Начнем с того, что я покажу вам схему, с которой мы будем работать и IP-адреса, которые будем использовать. Схему я собирал в EVE-NG, дамп трафика делал при помощи Wireshark, в качестве Telnet клиента я использую SecureCRT. Сама схема показана ниже.

1.1 Схема для демонстрации базовой настройки протокола OSPF на оборудование Cisco

Да, вот так незамысловато. Два роутера, два интерфейса, они подписаны на рисунке. На физическом интерфейсе RO1 я буду использовать IP-адрес 10.0.0.1/24, а на физическом интерфейсе RO2 10.0.0.2/24, у каждого роутера есть Loopback интерфейс, цель которых – имитировать клиентские сети. Если вам так неудобно, то представьте, что к роутеру RO1 подключен компьютер с IP-адресом 1.1.1.1, а к роутеру RO2 подключен компьютер с адресом 2.2.2.2.

Протоколы маршрутизации в сетях TCP/IP

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

Протоколы маршрутизации делятся на два вида, зависящие от типов алгоритмов, на которых они основаны:

  • Дистанционно-векторные протоколы, основаны на Distance Vector Algorithm (DVA);
  • Протоколы состояния каналов связи, основаны на Link State Algorithm (LSA).

Так же протоколы маршрутизации делятся на два вида в зависимости от сферы применения:

  • Междоменной маршрутизации;
  • Внутридоменной маршрутизации.

Перечень протоколов маршрутизации составляют протоколы: RIP v1/v2, RIPng (IPv6), OSPF, BGP v4 (IPv6).

Дистанционно-векторный алгоритм

В дистанционно-векторном алгоритме (DVA) основная идея заключается в рассылке маршрутизаторов друг другу так называемого вектора расстояний. В векторе расстояний содержится информация (расстояние) от передающего маршрутизатора до всех соседних (известных) ему сетей.

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

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

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

Самым распространенным представителем дистанционно-векторного алгоритма является протокол RIP (Routing Information Protocol) – протокол маршрутной информации.

Алгоритм состояния связей

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

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

Дополнительную информацию о других сетях маршрутизаторы получаются путем обмена короткими пакетами, называемыми HELLO, со своими соседями. Отличительной особенностью алгоритма LSA от алгоритма DVA, который постоянно обменивается широковещательными пакетами (вектор расстояний), алгоритм LSA использует небольшие пакеты HELLO, содержащие информацию только о состоянии линий связи. Более развернутую информацию о сетях, алгоритм состояния связей передает в том случае, когда, на основе пакетов HELLO, было зафиксировано изменение состояния линий связи (например, маршрутизатор вышел из строя или добавили новый маршрутизатор).

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

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

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

В маршрутизаторе с динамическим протоколом резидентно загруженная программа (демон - gated или routed для UNIX) изменяет таблицы маршрутизации на основе информации, полученной от соседних маршрутизаторов.

Динамические протоколы делят на две группы:

EGP (External Gateway Protocol) - внешний протокол маршрутизации для использования между AS. В группу входят - BGP, IDPR.

IGP (Interior Gateway Protocol) - внутреннего протокола маршрутизации для использования внутри AS. В группу входят - RIP, OSPF, IGRP (CISCO), IS-IS.

14.2 Протокол RIP

RIP (Routing Information Protocol) - протокол маршрутной информации, использует алгоритм Белмана-Форда. Выбирается самый короткий маршрут (distance-vector).

Первый стандарт RIP RFC1058 (Routing Information Protocol C.L. Hedrick Jun-01-1988).

Последняя версия RIPv2 RFC2453 (RIP Version 2 G. Malkin November 1998).

Используется транспортный протокол UDP.

Порт сервера по умолчанию 520.

Маршрут характеризуется вектором расстояния до места назначения.

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

Таблица маршрутов должна содержать для каждого маршрута:

IP-адрес места назначения (направление вектора).

Метрика маршрута (от 1 до 15; число шагов до места назначения, модуль вектора).

IP-адрес ближайшего маршрутизатора по пути к месту назначения.

Флаг, что маршрутная информация была изменена.

Различные таймеры маршрута. (например, актуальности информации)

Коды поля command

Address Family Identifier - сетевой протокол, для IP=2, для Инициализации=0xFFFF.

Route Tag - Предназначено, чтобы отделить "внутренние" маршруты RIP (маршруты для сетей в пределах RIP маршрутизируемого домена) от "внешних" маршрутов RIP, которые, возможно, были импортированы от EGP или другого IGP.

Например, маршруты, импортированные от EGP или BGP, могут иметь номер Автономной Системы, из которой маршруты были изучены.

IP Address - IP адрес, при запросе - адрес сети, для которой нужно определить маршрут. При ответе - адрес сети, которая является доступной для источника ответа.

Subnet Mask - соответствующая маска.

Metric - число шагов (hops) до места назначения, должно быть 14.2.1 Порядок работы

Периодические отклики - Каждые 30 сек маршрутизатор посылает широковещательно копию своей маршрутной таблицы соседним маршрутизаторам.

Запрос принят.
- Если был запрос "Аутентификация" отправляется полная таблица маршрутизации.
- Иначе обрабатывается каждый пункт в запросе: если присутствует маршрут на указанный адрес, показатель устанавливается в определенное значение, иначе показатель устанавливается в 16. (Показатель, установленный в 16, это специальное значение, которое означает "бесконечно" (infinity) и сообщает, что маршрута к этому пункту назначения не существует.) Возвращается ответ.

Ответ принят. Если ответ признан корректным, таблица маршрутизации может быть обновлена. Могут быть добавлены новые записи, существующие записи могут быть модифицированы или удалены. При этом timeout-timer (тайм-аут) выставляется =180 сек. По истечении запись, становится не активной на 120 сек (garbage-collection timer). По истечении 120 сек, запись удаляется и в регулярном обновлении запись рассылается с метрикой =16, т.е. на удаление.

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

14.2.2 Недостатки RIP

Ограничение в 16 хопов. Фактически ограничивает количество сетей.

Медленная реакция на изменение сети. При этом могут возникнуть циклические маршруты.

Самый короткий маршрут может быть перегружен (медленным).

14.3 Протокол OSPF

OSPF (Open Shortest Path First) - открыть наикратчайший маршрут первым (алгоритм Дикстры), является протоколом состояния канала (link-state).

Первый стандарт - RFC1131 (OSPF specification J. Moy Oct-01-1989).

Последняя версия OSPFv2 - RFC2328 (OSPF Version 2 J. Moy April 1998).

Поле protocol = 89 (в заголовке IP).

Основные достоинства OSPF.

Отсутствие ограничения на размер сети.

Автономная система может быть поделена на области маршрутизации.

Высокая скорость установления маршрутов.

Маршрутизация учитывает тип сервиса IP (type-of-service - ToS), т.е. для разных сервисов могут быть разные маршруты.

Каждому интерфейсу может быть назначена метрика на основании
- пропускной способности
- времени возврата
- надежности
- загруженности (очередь пакетов)
- размера максимального блока данных, который может быть передан через канал.
Отдельная цена может быть назначена для каждого типа сервиса IP.

Если маршруты имеют одинаковую цену, OSPF распределяет траффик поровну между этими маршрутами. Это называется балансировкой нагрузки (Load balancing).

Поддерживает подсети (маску).

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

Используется групповая (multicast) адресация вместо широковещательной.

14.3.1 Области маршрутизации OSPF

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

Опорная область (backbone) - область через которую связываются другие маршрутизаторы. Имеет ID = 0.0.0.0.

Построение сети с помощью OSPF.

Маршрутизатор опорной сети (Backbone Router - BR) - подключен к опорной сети.

Граничный маршрутизатор области (Area Border Router - ABR) - подключен к нескольким областям.

Граничный маршрутизатор автономной системы (Autonomous System Boundady Router - ASBR) - подключен к другим автономным системам.

Внутренний маршрутизатор (Internal Router - IR) - все его подключения только внутри одной области.

Ответственный маршрутизатор (Designated Router - DR) - собирает и раздает маршрутную информацию в области. В OSPF существует иерархия маршрутизаторов.

Резервный ответственный маршрутизатор (Backup Designated Router - DR) - резервирует DR.

Коды поля TYPE

Коды поля AuType

Для рассылки используется групповой адрес 224.0.0.5 (ALL-OSPF-Routers).

Выполняет следующие функции:

Поиск соседних маршрутизаторов.

Выбор маршрутизаторов DR и BDR.

Определение статуса канала.

Установление партнерских отношений между маршрутизаторами.

Options (опции) - характеризует возможности, которые предоставляет данный маршрутизатор.

Rtr Pri (Приоритет) - используется при выборе Backup Designated Router.

Маршрутизаторы обмениваются данными из баз данных OSPF.

M-bit (The More bit) - станавливается в 1 если являются продолжением.

LSA (Link State Advertisement) - уведомление о состоянии канала, подробнее рассмотрен в 14.3.3.

Запрос части базы данных для обновления.

Передача части базы данных, которая была запрошена.

Используется для подтверждения получения фрагмента базы данных.

14.3.3 Уведомление о состоянии канала

Link State Advertisement (LSA) - уведомление о состоянии канала.

14.3.3.1 Формат заголовка LSA

Заголовок LSA

Типы уведомлений LSA

Options - содержит значения типов сервиса (TOS - type-of-service), поддерживаемые маршрутизатором.

Первый стандарт TOS - RFC1349 (Type of Service in the Internet Protocol Suite P. Almquist July 1992 ASCII).

Последняя версия TOS (теперь DSF) - RFC2474 (Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers K. Nichols, S. Blake, F. Baker, D. Black December 1998).

Формат поля Options

PRECEDENCE - приоритет дейтаграммы.

Коды типа сервиса (TOS)

14.3.3.1 Формат Router-LSAs

описание состояния интерфейсов маршрутизатора.

bit V (virtual) - если V=1, маршрутизатор является оконечной точкой активного виртуального канала.

bit E (external) - если E=1, маршрутизатор является граничным для данной области (ABR).

bit B (border) - если B=1, маршрутизатор является граничным для автономной системы (ASBR).

Коды типов связей, поле Type

Идентификаторы канала, поле Link ID, что используется для ID в зависимости от типа связи, поле Type

/b table6td align=center height=Дополнительная специальная TOS-информация может быть включена, для обратной совместимости с предыдущими версиями OSPF. Для каждой связи и для каждого TOS, специальныя TOS-информация может кодироваться следующим образом:

TOS - зашифрованный код TOS в OSPF. Таблица "Коды типа сервиса (TOS)".

TOS metric - метрика для специальной TOS-информации.


14.3.3.2 Формат Network-LSAs

описание набора маршрутизаторов подключенных к сети


14.3.3.3 Формат Summary-LSAs

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

сводная информация о канале к граничному маршрутизатору автономной системы, рассылается граничным маршрутизатором области внутри своей области.


14.3.3.4 Формат AS-external-LSAs

описания внешних каналов автономной системы.

bit E - при E=1 метрика считается больше любой метрики, при E=1 сравнивается с другими.

14.3.4 Маршрутная таблица OSPF

Маршрутная таблица OSPF содержит в себе:

IP-адрес места назначения и маску;

тип места назначения (сеть, граничный маршрутизатор и т.д.);

тип функции (возможен набор маршрутизаторов для каждой из функций TOS);

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

тип пути (характеризует путь как внутренний, межобластной или внешний, ведущий к AS);

цена маршрута до цели;

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

объявляющий маршрутизатор (используется для межобластных обменов и для связей автономных систем друг с другом).

Подключится к демону OSPF, можно с помощью telnet по порту 2604, и просмотреть базу.

Реальная база OSPF. Видно, что только одна область (0.0.0.0).

ADV Router - Advertising router, который породил LS.

14.3.4 Маршрутная таблица в Linux составленная OSPF

Динамическая таблица (linux) маршрутизации составленная протоколом OSPF

1. EGP (External Gateway Protocol) - внешний протокол маршрутизации для использования между AS. В группу входят - BGP , IDPR.

2. IGP (Interior Gateway Protocol) - внутреннего протокола маршрутизации для использования внутри AS. В группу входят - RIP, OSPF , IGRP (CISCO), IS-IS.

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

Принцип работы заключается в следующем:

  1. После включения маршрутизаторов протокол ищет непосредственно подключенных соседей и устанавливает с ними “дружеские” отношения.
  2. Затем они обмениваются друг с другом информацией о подключенных и доступных им сетях. То есть они строят карту сети (топологию сети). Данная карта одинакова на всех маршрутизаторах.
  3. На основе полученной информации запускается SPF (Shortest Path First - Выбор наилучшего пути) алгоритм, который рассчитывает оптимальный маршрут к каждой сети. Данный процесс похож на построение дерева, корнем которого является сам маршрутизатор, а ветви - пути к доступным сетям. Данный процесс, то есть конвергенция, происходит очень быстро.

SPF протоколы не рассылают периодические обновления, как это делают векторные алгоритмы. Вместо этого они рассылают обновления каждые 30 минут, причем не всю базу данных, а только определенную часть, не загружая при этом сеть.

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

Для сравнения возьмем сеть и посмотрим как протоколы RIP и SPF построят маршрут от узла А до сети Е.

RIP построит следующий маршрут, учитывая наименьшее расстояния до цели:


SPF протоколы построят иной маршрут, но с учетом скорости и надежности канала:


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

К SPF протоколам относят OSPF и IS-IS. Это 2 похожих протокола, которые были разработаны разными организациями. Мы будем рассматривать только протокол OSPF.

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

Иерархия и структура сети

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

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


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

В OSPF зона 0 (Area 0) всегда является магистральной (backbone), к которой подключаются остальные зоны. Связь между зонами всегда осуществляется только через магистральную зону.

Всего существует 6 зон:

Название зоны

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

Обычная зона. Может содержать пограничные маршрутизаторы зоны ABR и пограничные маршрутизаторы автономной системы ASBR, то есть может подключаться к другим автономным системам.

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

Totally Stub - полностью тупиковая

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

Not-So-Stubby-Area (NSSA) - частично тупиковая сеть

Такая же сеть, как и Stub, однако может иметь ASBR маршрутизатор.

“Усиление” NSSA, кроме того маршруты к другим зонам заменены на маршрут по умолчанию.

Мы же рассмотрим только магистральные и стандартные зоны.

Следует выделить специальные маршрутизаторы, играющие определенную роль при разделении на зоны:

Магистральный маршрутизатор ( Backbone router, BR ) - используется только в зоне 0.

Пограничный маршрутизатор ( Area Border Router, ABR ) - включается на стыке 2-х и более зон.

Внутренний маршрутизатор ( Internal Route r) - обычный внутризонный маршрутизатор.

Пограничный маршрутизатор автономной сети ( AS Boundary router, ASBR ) - подключается на стыке разных автономных систем


К маршрутизаторам BR, ABR, ASBR предъявляются большие требования по мощности и пропускной способности, так как они оперируют с большими потоками данных.

Составление таблиц протокола

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

Таблица смежности или таблица соседей ( Adjacency table ) - содержит всех непосредственно подключенных соседей:



Топологическая таблица (Link State Data Base, LSDB) - содержит информацию обо всех маршрутизаторах своей зоны и активных интерфейсах этих маршрутизаторах. Все маршрутизаторы одной зоны имеют одинаковую таблицу


Таблица маршрутизации (Route table) - вычисляется алгоритмом SPF на основе информации из топологической таблицы


Чтобы понять назначение всех этих таблиц сравним работу протокола с работой обычного навигатора, установленного в машине. Водителю необходимо доехать из пункта А в пункт В. Для этого в навигатор загружают карту, чтобы он смог найти дорогу. Эта карта и является аналогом Топологической таблицы LSDB. Затем навигатор вычисляет оптимальный маршрут, учитывая при этом множества параметров:

  • пробки на дорогах
  • дорожное покрытие
  • скоростное ограничение
  • платные и бесплатные дороги
  • радары и многое другое.

Подобные параметры также учитываются протоколами SPF.

В результате на экране навигатора отображаются один или несколько маршрутов. Эти маршруты являются аналогом таблицы маршрутизации протокола OSPF.

Как же строятся таблицы смежности и топологии?

Для этого маршрутизаторы рассылают друг другу специальные обновления, называемые анонсами LSA (Link State Advertisements). Анонсы рассылаются по адресам 224.0.0.5 и 225.0.0.6. Существуют несколько типов анонсов. Мы их рассмотрим ниже в этом уроке.

Типы OSPF сетей

Маршрутизация работает на уровне L3, однако для того, чтобы связать маршрутизаторы другом с другом, используются различные технологии, работающие на уровнях L1 и L2. Одна из таких технологий Ethernet. Существуют и другие технологии такие, как Frame Relay, ATM, ISDN и так далее. Мы подробно их изучим в одной из следующих глав. Сейчас вкратце остановимся на том, каковы особенности работы протокола OSPF в сетях, где используются перечисленные технологии.

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

Выделяют следующие типы OSPF сетей:

  • Point-to-Point (сети типа точка-точка) - связь организуется только между парой маршрутизаторов. DR и BDR не выбираются. Например, 2 маршрутизатора связаны с помощью технологии ISDN.


  • Broadcast (широковещательные сети) - сети с множественным доступом (то есть объединяет сразу несколько маршрутизаторов) с поддержкой широковещательных рассылок. Например, сеть Ethernet. DR и BDR в данном случае выбираются


  • Nonbroadcast multiaccess, NBMA - сеть с множественным доступом, однако широковещательная рассылка в них не поддерживается. В таких сетях задействованы технологии Frame Relay, ATM, X.25. DR и BDR в них могут выбираться, а могут и не выбираться. Все зависит от режима работа сети NBMA


В данном курсе рассматривать сети NBMA мы не будем, однако для общей информации приведу таблицу режимов работы сетей NBMA

Режим работы

Похож на режим Broadcast в Ethernet, однако необходимо вручную указать всех соседей. Все маршрутизаторы должны находиться в одной подсети. Выбираются DR и BDR, работает в полносвязной топологии.

Сеть воспринимается как набор нескольких соединений point-to-point. Соседи обнаруживаются автоматически за счет многоадресной (multicast) рассылки пакетов Hello. Все маршрутизаторы должны находиться в одной подсети. DR и BDR не выбираются, все соседи обнаруживаются автоматически.

Похож на режим point-to-point, то есть устанавливается только парное соединение. DR и BDR не выбираются.

Похож на режим Broadcast в Ethernet.Соседи обнаруживаются автоматически за счет многоадресной (multicast) рассылки пакетов Hello. Все маршрутизаторы должны находиться в одной подсети. Выбираются DR и BDR, работает в полносвязной топологии.

Похож на режим Point-to-multipoint, однако необходимо вручную указывать всех соседей. Multicast и Broadcast рассылка пакетов Hello не поддерживается. DR и BDR не выбираются.


Итак, для чего же нужны DR и BDR?

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

Если взглянуть на сеть Ethernet, то отношения смежности установятся каждый с каждым. Это приведет к резкому увеличению служебного трафика. Чтобы снизить трафик была выбрана концепция с применением DR и BDR.

Данный принцип основан на следующих правилах:

  • Выбираются DR и BDR
  • Если DR выходит из строя, то BDR сразу становится DR. После этого выбирается другой BDR.
  • Отношения смежности устанавливаются только с DR и BDR. Это означает, что передача топологической информации осуществляется только между выделенным и невыделенным (DROther) маршрутизаторами.
  • Для связи с DR и BDR используется адрес групповой рассылки 224.0.0.6.
  • DR и BDR связываются с остальными маршрутизаторами по адресу 224.0.0.5
  • При любом изменении сети, обновления передаются всегда только DR и BDR (по каналу 224.0.0.6). И только после этого DR оповещает остальные маршрутизаторы (по каналу 224.0.0.5).
  • BDR не принимает активного участия в рассылке обновлений, однако содержит идентичную базу данных, что и DR на случай отказа последнего.



А как выбираются DR и BDR?

В OSPF каждый маршрутизатор обязан иметь свой ID. ID представляет собой 32-х битный десятичный номер, который выглядит как IP адрес. Поэтому в качестве ID выбирается IP адрес работающего порта. Затем все маршрутизаторы сравнивают свои ID. Побеждает тот у кого ID имеет большее значение. Весь процесс выбора DR автоматический, однако на его результаты можно повлиять.

Для этого можно настроить один из следующих параметров:

  • Приоритет интерфейса
  • Router ID
  • IP адрес loopback интерфейса

Если приоритет установлен на 0, то маршрутизатор никогда не будет выбран в качестве DR/BDR. На блок-схеме внизу указан процесс выбора ID OSPF маршрутизатора:


Сам процесс выбора DR и BDR рассмотрен подробнее в конце данного урока.

Принцип работы протокола. Типы пакетов, состояния связей

Углубимся немного в детали протокола. Рассмотрим типы пакетов, а также узнаем какие стадии проходит маршрутизатор в процессе конвергенции.

Рассмотрим весь процесс по порядку на примере сети


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

1. Чтобы обнаружить соседей каждые 10 с каждый маршрутизатор отправляет пакет Hello по адресу 224.0.0.5, а также сам принимает такой же пакет от соседей.

  • Свой ID (Router ID)
  • Hello Interval
  • Dead Interval
  • ID своих соседей (Neighbors)
  • Маску подесети (Subnet mask)
  • Номер зоны (Area ID)
  • Приоритет маршрутизатора (Router Priority)
  • Адреса DR и BDR маршрутизаторов
  • Пароль аутентификации

2. Сразу после отправки пакета маршрутизаторы переходят в состояние Init .

3. Первый пакет Hello не содержит ID соседа. Пакет посылается по групповому адресу 224.0.0.5:


Как только R2 получит пакет от R1, то R2 в начале сравнит все параметры. если они совпадают, то адрес R1 вносится в таблицу соседей. После этого R2 вложит ID R1 в следующий пакет. Hello, который отправляется по адресу маршрутизатора R1, то есть ответный пакет Hello не использует групповой адрес:


R1, приняв пакет от R2 тоже сравнит параметры. И если они совпадают, то адрес R2 вносится в таблицу соседей. Затем R1 анализирует ID соседей в принятом пакете. Как только R1 увидит свой ID в пакете от R2, то перейдет в состояние двусторонней связи 2WAY . Аналогичный процесс происходит и с R2. Весь процесс проиллюстрирован ниже:

4. Если тип сети Broadcast, то выбирается DR/BDR. В процессе выбора все маршрутизаторы переходят в состояние Exstart . Изначально на стадиях INIT и 2WAY все маршрутизаторы в пакетах Hello указывают, что DR и BDR = 0.0.0.0, то есть не определены.


После того, как определены все соседи, маршрутизатор с более высоким ID указывает себя в качестве DR во пакетах Hello. Остальные маршрутизаторы, приняв такой пакет, сравнивают свои ID c ID “самопровозглашенного” DR. Если их ID меньше, то они с этим соглашаются и также передают его ID в своих пакетах Hello.

Аналогичным способом выбирается и BDR.


Что будет, если после выбора DR/BDR в сети появится маршрутизатор с большим ID?

Ничего. Процесс выбора DR/BDR запускается лишь раз. Если DR отключится, то его место займет BDR, а вместо BDR может стать новый маршрутизатор с более высоким ID.

Если тип сети Point-to-Point, то данный процесс пропускается.

5. Затем начинается процесс обмена топологическими данными. Для этого маршрутизаторы рассылают друг другу пакеты DBD ( Database Description ). Маршрутизаторы переходят в состоянии Exchange. На основе данных, полученных от DBD строится топологическая таблица. Для подтверждения приема пакета DBD маршрутизатор отправляет пакет LSAck ( Link State Acknowledgment ), в котором говорится: “Я все принял.” На данной стадии маршрутизаторы используют одноадресатные пакеты (unicast), то есть не используют групповой адрес 224.0.0.5.

6. Если у маршрутизатора отсутствует часть информации о структуре сети либо его база данных устарела и он хочет ее обновить, то отправит запрос LSR ( Link State Request ), в котором говорится: “Моя база данных неполная либо устарела. Отправьте мне актуальную информацию.” Ответом на запрос LSR будет пакет LSU ( Link State Update ). Получив LSU маршрутизатор подтвердит его получение пакетом LSAck. Во время данного процесса маршрутизатор пребывает в состоянии Loading .

7. Когда у маршрутизаторов больше нет вопросов друг к другу и их базы данных актуальны и равны они переходят в состоянии FULL .

Итак, подведем итоги.

Для своей работы OSPF использует следующие типы пакетов:

Hello - keep-alive пакет, которые рассылается каждые 10 с. Предназначен для установления “добрососедских” отношений между маршрутизаторами, которые непосредственно подключены друг к другу. А также для объявления соседям, что канал/маршрутизатор все еще “жив”. С ним связан Dead интервал, который ждет 40с (всегда в 4 раза больше, чем Hello интервал). Если маршрутизатор не примет Hello от соседа в течении 40 c, то вся таблица пересчитывается снова. А соседям сразу высылается новый анонс.

Database Description , DBD - передает топологическую информацию сети.

Link State Request , LSR - запрос соседям на передачу части данных о состоянии каналов для обновления топологической базы данных.

Link State Update , LSU - ответ маршрутизатора на запрос LSR

Link State Acknowledgment , LSAck - подтверждение в получении LSU.

В процессе работы протокола маршрутизатор проходит через следующие состояния:


Протокол OSPF, наряду с IS-IS, принадлежит к классу протоколов маршрутизации Link State. Принципы этого класса заключается в том, что в памяти маршрутизатора помимо всех оптимальных маршрутов в удаленные сети должна быть полная карта сети, в том числе с действующими связями между другими маршрутизаторами. OSPF изначально создавался как открытый протокол, что сделало его самым распространенным среди протоколов маршрутизации. Его алгоритм позволяет достаточно легко выстраивать стек протоколов для OSPF. Поэтому для специалистов, имеющих отношение к сетям, важно понимание, по крайней мере, общих принципов его работы.

Разберем, что такое сетевой протокол OSPF для чайников.

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

Работа протокола OSPF строится по следующему алгоритму:

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

Учитывая ресурсоемкий и сложный принцип работы OSPF, от каждого маршрутизатора требуется достаточно высокая производительность и значительный объем оперативной памяти.

В случае разрыва связи с соседом у одного из маршрутизаторов, он отправляет по сети новые пакеты LCA, и повторяется вся процедура формирования таблицы маршрутизации. Чтобы исключить постоянный пересчет в крупных сетях с большим количеством маршрутизаторов, в них применяют разделение на отдельные зоны. В каждой из них выполняются автономные вычисления с передачей между зонами только итогового результата. В любой конфигурации OSPF должна присутствовать корневая зона с индексом 0. Малые сети обычно помещаются в ее пределах, а для больших — требуется формирование дополнительных зон.

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

Hello пакеты отправляются с установленной периодичностью. По умолчанию она составляет 1 раз в 10 секунд для сетей BMA и point-to-point и 1 раз в 40 секунд для сетей NBMA. Также существует понятие Dead-интервала, который по умолчанию равняется 4 Hello-интервалам. Если в течение этого периода маршрутизатор не получает ни одного пакета, то он считает, что сосед отключился. За этим следует пересчет и обновление таблицы маршрутизаторы.

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

Учитывая, что при построении карты сети маршрутизаторами в качестве узлов выступают другие маршрутизаторы, большое значение имеет наличие у каждого из них уникального имени. Для определения такого имени используется поле Router ID.

Идентификатор записывается в виде IP-адреса IPv4. Неважно, какое он примет значение, главное, чтобы он был уникальным в пределах этой сети. ID маршрутизатора в OSPF можно задать вручную. Если он не задан, то будет присвоен автоматически.

Принцип работы протокола OSPF предусматривает следующий алгоритм назначения ID маршрутизатора:

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

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

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

Решение этой проблемы достигается посредством механизма выбора Designated Router (DR) и Backup Designated Router (BDR), которые представляют собой роли маршрутизаторов. В сети с множественным доступом, к которой подключены более 2 маршрутизаторов, один из них назначается на роль DR, а второй — на роль BDR. При отправке любым маршрутизатором какого-либо пакета, он поступает не всем устройства в сети, а подается на отдельный мультикастовый адрес, доступный только DR и BDR. В свою очередь, DR рассылает пакет всем маршрутизаторам в сети. Такое посредничество значительно снижает нагрузку. BDR выполняет резервную функцию и моментально принимает роль DR при его отключении. После этого среди остальных маршрутизаторов сразу выбирается новый BDR.

Метрика в OSPF

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

Например, Cisco применяет два варианта расчета стоимости.

В первом случае стоимость линка рассчитывается как обратная величина от его скорости (1000 — для 1 Мбит, 100 — для 10 Мбит, 10 — для 100 Мбит, 1 — для 1 Гбита и т. д.). Этот вариант подойдет при условии, что все маршрутизаторы будут считать стоимость по данному алгоритму, аэто требует использование только устройств Cisco.

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

Типы маршрутизаторов OSPF

Принцип действия протокола OSPF предусматривает использование следующих типов маршрутизаторов:

  • IR (Internal Router) — это внутренний маршрутизатор, у которого все интерфейсы ассоциированы только с одной определенной областью.
  • ABR (Area Border Router) — устанавливается в нулевой зоне для обеспечения связи с другими зонами.
  • ASBR (Autonomous System Boundary Router) — обеспечивает объединение автономных систем для обмена маршрутами.

Отдельно следует выделить описанные выше типы маршрутизаторов DR, BDR, обеспечивающие работу протокола в сети с множественным доступом при минимальных нагрузках на оборудование. Маршрутизатор DR в этой паре является основным, а BDR — резервным.

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