Введение в протокол OSPF. Общее описание маршрутизаторов OSPF Протокол ospf принцип работы

OSPF (Open Shortest Path Fisrt) - протокол маршрутизации по состоянию связей. Разработан для IP сетей рабочей группой IETF (Internet Engineering Task Force) и описан в соответсвующем RFC 2328. Относится к семейству протоколов "внутреннего шлюза" IGP (interior gateway protocol). Это открытый протокол то есть его использование не регламентируется никакими патентными ограничениями.

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

Работа протокола основана на алгоритме Дейкстры также называемом "алгоритмом поиска кратчайшего пути" SFP (shortest path first). При поиске "кратчайшего пути" алгоритм анализирует состояние канала: его пропускную способность и надежность.

Терминология OSPF:

  • Интерфейс (interface) — фактичесмки порт (не важно физический или логический) маршрутизатора на котором "висит" подсеть.
  • Объявление о состоянии канала (link-state advertisement, LSA) — пакет пересылаемый от одного OSPF маршрутизатора другому (только в пределах соседства) в котором объявляются сети известные данному маршрутизатору и состояния его каналов.
  • Состояние канала (link state) — состояние канала между двумя маршрутизаторами или между маршрутизатором и клиентской сетью. Изменение состояния канала (падение/поднятие порта) вызывает рассылку пакетов LSA.
  • Метрика (metric) — показатель качества канала. Интегральный показатель суммирующий в себя все метрики промежуточных линков между маршрутизатором и сетью назначения. Чем это значение меньше, тем маршрут надежнее;
  • Автономная система (autonomous system) — группа маршрутизаторов, обменивающаяся маршрутизирующей информацией с помощью одного протокола маршрутизации.
  • Зона (area) — совокупность сетей и маршрутизаторов, имеющих один и тот же идентификатор зоны.
  • Соседи (neighbours) — два маршрутизатора, имеющие интерфейсы в общей сети.
  • Состояние соседства (adjacency) — взаимосвязь между определенными соседними маршрутизаторами, установленная с целью обмена информацией маршрутизации.
  • Hello-протокол (hello protocol) — внутренний в структуре OSPF протокол, используемый для установления и поддержания отношений соседства между роутерами.
  • База данных соседей (neighbours database) — локальный для маршрутизатора список соседей по зоне OSPF.
  • База данных состояния каналов (link state database, LSDB) — список всех записей о состоянии каналов. Встречается также термин топологическая база данных (topological database), употребляется как синоним базы данных состояния каналов.
  • Идентификатор маршрутизатора (router ID, RID) — 32-битовое число, уникальный в пределах автономной системы идентификатор маршрутизатора. Router ID выбирается следующим образом: если сконфигурироват Loopback0 интерфейс - его ip адрес становится Rouner ID. Если Loopback0 не создан то выбирается наибольший IP адрес среди активных на момент включения процесса OSPF интерфейсов маршрутизатора.

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

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

Для этого каждый роутер OSPF проходит 7 стадий:

  1. Состояние отключено (down state). Это начальное состояние сети ospf только начал свою работу. В этом состоянии каждый роутер сам по себе. Никто друг друга не знает и никакой маршрутной информации в роутерах еще нет.
  2. Cостояние инициализации (init state). На этой стадии роутеры начинают обмениваться hello пакетами в попытках найти хот какого-нибудь соседа... Hello-пакеты рассылаются на все интерфейсы на которых поднят OSPF на мультикастный адрес 224.0.0.5. TTL в этих апакетов равен 1, поэтому их получают только роутеры находящиеся в пределах одного коммутируемого сегмента с интерфейсом отправителем.
  3. Двухстороннее соединение (Two-way) - на этой стадии все маршрутизаторы знают своих соседей и установили с ними adjacency
  4. ExStart - этап выбора DR и BDR зачем они нужны скажу ниже. DR становится маршрутизатор с наибольшим Router ID а BDR - второй "сверху".
  5. Обмен (Exchange) - роутеры обмениваются со своими соседями пакетами BDB (Data Base Description), которые содержат описание LSDB (Link State Data Base) - описание всех известных роутеру сетей.
  6. Загрузка (Loading) - на этом этапе происходит "сведение" LSDB на всех роутерах внутри зоны. Роутеры обмениваются информацией о неизвестных им ранее маршрутах. Правят свои локальные LSDB.
  7. Установка полной смежности (Full adjecency) - цель достигнута, все роутеры имеют идентичную LSDB. Лампочки моргают, пакеты бегают... Идилия до тех пор пока какому-нибудь линку не вздумается упасть...

Выделенный маршрутизатор (DR) и резервный выделенный маршрутизатор (BDR)

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

Выделенный маршрутизатор (designated router, DR) — управляет процессом рассылки LSA в сети. Каждый маршрутизатор сети устанавливает отношения соседства с DR. Информация об изменениях в сети отправляется DR, маршрутизатором обнаружившим это изменение, а DR отвечает за то, чтобы эта информация была отправлена остальным маршрутизаторам сети.

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

Резервный выделенный маршрутизатор (backup designated router, BDR) . Каждый маршрутизатор сети устанавливает отношения соседства не только с DR, но и BDR. DR и BDR также устанавливают отношения соседства и между собой. При выходе из строя DR, BDR становится DR и выполняет все его функции. Так как маршрутизаторы сети установили отношения соседства с BDR, то время недоступности сети минимизируется.

Маршрутизатор, выбранный DR или BDR в одной присоединенной к нему сети со множественным доступом, может не быть DR (BDR) в другой присоединенной сети. Роль DR (BDR) является свойством интерфейса, а не свойством всего маршрутизатора.

Отношения соседства (Adjacency)

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

  • Hello Interval для маршрутизаторов вступающих в отношения соседства должны совпадать. По умолчанию это 10 секунд в Broadcast сетях, типа Ethernet. Это своего рода KeepAlive сообщения. То есть каждые 10 секунд каждый маршрутизатор отправляет Hello пакет своему соседу, чтобы сказать: “Хей, я жив”,
  • Dead Interval этих маршрутизаторах должны быть идентичными. По умолчанию это 4 интервала Hello — 40 секунд. Если в течение этого времени от соседа не получено Hello, то он считается недоступным. После этого сосед запускает процедуру обновления LSDB т.к. топология сети изменилась.
  • Интерфейсы, подключенные друг к другу, должны быть в одной подсети.
  • Номера зон OSPF должны совпадать
  • Должен совпадать размер MTU

OSPFv3

С появлением IPv6была выпущена третья версия протокола OSPFv3 в который добавили следующие изменения:

  • Добавлена возможность включения OSPFv3 в режиме конфигурирования интерфейса, при этом автоматически запускается новый процесс OSPF и добавляется соответствующий раздел в файле конфигурации
  • Все сети (primory и secondary) привязанные к интерфейсу на котором настроен OSPF анонсируются;
  • Если на роутере не сконфигурировано ни одного IPv4 адреса - идентификатор Router ID должен быть настроен вручную;
  • Добавлены два новых типа LSA — Link LSA и Intra-Area Prefix LSA;
  • Области распространения LSA. Кроме существующих областей распространения в OSPFv2 — зона и автономная система, добавилась область — канал (области распространения LSA указаны в описании соответствующих LSA);
  • Несколько сущностей (instances) могут быть в пределах канала;
  • Пакеты OSPF отправляются с link-local адреса (за исключением virtual link);
  • Возможность защиты сессии паролем из протокола удалена. Протокол OSPFv3 использует механизм аутентификации IPv6;

OSPF (Open Shortest Path First) – дословно переводится как «Сперва открытый короткий путь» - надежный протокол внутренней маршрутизации с учетом состояния каналов (Interior gateway protocol, IGP ). Как правило, данный протокол маршрутизации начинает использоваться тогда, когда протокола RIP уже не хватает по причине усложнения сети и необходимости в её легком масштабировании.

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

Для понимания необходимости данных «зон» при проектировании сети, необходимо понять, как OSPF работает. Есть несколько понятий, связанных с этим протоколом, которые не встречаются в других протоколах и являются уникальными:

  • Router ID: Уникальный 32-х битный номер, назначенный каждому маршрутизатору. Как правило, это сетевой адрес с интерфейса маршрутизатора, обладающий самым большим значением. Часто для этих целей используется loopback интерфейс маршрутизатора.
  • Маршрутизаторы-соседи: Два маршрутизатора с каналом связи между ними, могут посылать друг другу сообщения.
  • Соседство: Двухсторонние отношения между маршрутизаторами-соседями. Соседи не обязательно формируют между собой соседство.
  • LSA: Link State Advertisement – сообщение о состоянии канала между маршрутизаторами.
  • Hello сообщения: С помощью этих сообщений маршрутизаторы определяют соседей и формируют LSA
  • Area (Зона): Некая иерархия, набор маршрутизаторов, которые обмениваются LSA с остальными в одной и той же зоне. Зоны ограничивают LSA и стимулируют агрегацию роутеров.

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

  1. Сперва, когда протокол только запустился на маршрутизаторе, он начинает посылать hello-пакеты для нахождения соседей и выбора DR (designated router, назначенный маршрутизатор). Эти пакеты включают в себя информацию о соседях и состоянии каналов. К примеру, OSPF может определить соединение типа «точка-точка», и после этого в протоколе данное соединение «поднимается», т.е. становится активным. Если же это распределенное соединение, маршрутизатор дожидается выбора DR перед тем как пометить канал активным.
  2. Существует возможность изменить Priority ID для, что позволит быть уверенным в том, что DR-ом станет самый мощный и производительный маршрутизатор. В противном случае, победит маршрутизатор с самым большим IP-адресом. Ключевая идея DR и BDR (Backup DR) , заключается в том, что они являются единственными устройствами, генерирующими LSA и они обязаны обмениваться базами данных состояния каналов с другими маршрутизаторами в подсети. Таким образом, все не-DR маршрутизаторы формируют соседство с DR. Весь смысл подобного дизайна в поддержании масштабируемости сети. Очевидно, что единственный способ убедиться в том, что все маршрутизаторы оперируют одной и той же информацией о состоянии сети – синхронизировать БД между ними. В противном случае, если бы в сети было 35 маршрутизаторов, и требовалось бы добавить еще одно устройство, появилась бы необходимость в установлении 35 процессов соседства. Когда база централизована (т.е существует центральный, выбранный маршрутизатор - DR) данный процесс упрощается на несколько порядков.
  3. Обмен базами данных – крайне важная часть процесса по установлению соседства, после того как маршрутизаторы обменялись hello-пакетами. При отсутствии синхронизированных баз данных могут появиться ошибки, такие как петли маршрутизации и т.д. Третья часть установления соседства – обмен LSA. Это понятие будет разобрано в следующей статье, главное, что необходимо знать – нулевая зона (Area 0) особенная, и при наличии нескольких зон, все они должны быть соединены с Area 0. Так же это называется магистральной зоной.

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

Разберем различные типы маршрутизаторов при использовании протокола OSPF:

  • ABR
  • Area Border Router – маршрутизатор внутри нулевой зоны, через который идет связь с остальными зонами

  • DR, BDR
  • Designated Router, Backup Designated Router – этот тип маршрутизаторов обсуждался выше, это основной и резервирующий маршрутизаторы, которые ответственны за базу данных маршрутизаторов в сети. Они получают и посылают обновления через Multicast остальным маршрутизаторам в сети.

  • ASBR
  • Autonomous System Boundary Router – этот тип маршрутизаторов соединяет одну или несколько автономных систем для осуществления возможного обмена маршрутами между ними.

Подведем итоги

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

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас:(Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

Крупные сети, такие как Internet, организованы как множество автономных систем (autonomous system – AS). Каждая из них обычно администрируется как отдельная сетевая структура, поэтому использование одного протокола маршрутизации в таких сетях маловероятно. Как мы уже знаем маршрутизатор, исходя из IP-адреса, указанного в заголовке пакета, в соответствии с своей таблицей маршрутизации определяет путь для передаваемых данных.
Таблицы маршрутизации задаются как вручную (статическая маршрутизация), так и динамически (динамическая маршрутизация).

Статическая маршрутизация

Так как статические маршруты настраиваются вручную, то любые изменения сетевой топологии требуют участия администратора для корректировки таблиц маршрутизации. В рамках маленькой сети такие изменения незначительны и происходят крайне редко. И наоборот, в крупных сетях корректировка таблиц маршрутизации может потребовать огромных затрат времени.
Если доступ к сети может быть получен только по одному направлению, то указание статического маршрута может оказаться вполне достаточным. Такой тип сети носит название тупиковой сети (stub network). Для настройки статической маршрутизации на роутере необходимо внести запись о сети, которую может достигнуть пакет, отправленный в определенный интерфейс.
Для этого необходимо в конфигурационном режиме ввести команду ip route, в которой указываем IP-адрес и маску сети назначения, тип и номер интерфейса, через который эта сеть может быть достигнута

R1(config)# ip route

Пример: Для сети, изображенной на рисунке необходимо настроить маршрутизацию таким образом, чтобы роутер (R1) пересылал пакеты в сети 92.154.228.0/22 и 92.154.232.0/22

Решением будет указанием 2 команд:

R1(config)# ip route 92.154.228.0 255.255.252.0 Se 1/0
R1(config)# ip route 92.154.232.0 255.255.252.0 Se 1/0

Для проверки конфигурации набираем команду show ip route

R1# show ip route
Codes: C — connected, S — static, I — IGRP, R — RIP, M — mobile,
D — EIGRP, EX — EIGRP external, O — OSPF,

C 92.154.224.0/22 is directly connected, FastEthernet0/0
S 92.154.228.0/22 is directly connected, Serial1/0
S 92.154.232.0/22 is directly connected, Serial1/0
C 92.154.252.0/30 is directly connected, Serial1/0

Как видно из вывода команды кроме подсоединенных сетей появились 2 записи по которым роутер будет все пришедшие к нему пакеты для сетей 92.154.228.0/22 и 92.154.232.0/22 маршрутизировать на интерфейс Serial1/0.

Для того чтобы пакеты из этих сетей уходили обратно необходимо подобным образом настроить роутеры R2 и R3

R2(config)# ip route 92.154.224.0 255.255.252.0 serial 1/0
R2(config)# ip route 92.154.232.0 255.255.252.0 serial 1/1

R3(config)# ip route 92.154.224.0 255.255.252.0 serial 1/0
R3(config)# ip route 92.154.228.0 255.255.252.0 serial 1/0

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

R1(config)# ip route 92.154.228.0 255.255.252.0 92.154.252.2

R1(config)# ip route 92.154.232.0 255.255.252.0 92.154.252.2

R1# show ip route static
92.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
S 92.154.228.0/22 via 92.154.252.2
S 92.154.232.0/22 via 92.154.252.2

Для отмены статического маршрута используется команда no ip route

Динамическая маршрутизация

При динамической маршрутизации происходит обмен маршрутной информацией между соседними маршрутизаторами, в ходе которого они сообщают друг другу, какие сети в данный момент доступны через них. Информация обрабатывается и помещается в таблицу маршрутизации. К наиболее распространенным внутренним протоколам маршрутизации относятся:
RIP (Routing Information Protocol) — протокол маршрутной информации
OSPF (Open Shortest Path First) — протокол выбора кратчайшего маршрута
EIGRP (Enhanced Interior Gateway Routing Protocol) — усовершенствованный протокол маршрутизации внутреннего шлюза
IGRP (Interior Gateway Routing Protocol) — протокол маршрутизации внутреннего шлюза

Протокол динамической маршрутизации выбирается исходя из множества предпосылок (скорость конвергенции, размер сети, задействование ресурсов, внедрение и сопровождение и др.) поэтому прежде всего, во внимание принимаются такие характеристики, как размер сети, доступная полоса пропускания, аппаратные возможности процессоров маршрутизирующих устройств, модели и типы маршрутизаторов.
Большинство алгоритмов маршрутизации может быть отнесено к одной из двух категорий: дистанционно-векторные протоколы (RIPv1, RIPv2, RIPng, IGRP, EIGRP, EIGRP for IPv6) и протоколы с учетом состояния канала (OSPFv2, OSPFv3, IS-IS, IS-IS for IPv6).

Routing Information Protocol (RIP)

Протокол RIP является дистанционно-векторным протоколом маршрутизации. Протоколы динамической маршрутизации определяют оптимальный путь к необходимой сети на основании значения, которое называется метрикой. В качестве метрики в протоколе RIP используется количество транзитных устройств или переходов (hop count – прыжок пакета) из одной сетевой структуры в другую. Максимальное число таких переходов равно 15. А все сети, число переходов до которых превышает 15, считаются недостижимыми. Маршрутизаторы, на которых настроен протокол RIP, периодически (по умолчанию каждые 30 с) пересылают полные анонсы маршрутов, в которых содержится информация обо всех известных им сетях.

Работа протокола RIP

Рассмотрим процесс обработки маршрутизатором R1 маршрута к сети 172.30.22.0 Протокол RIP настроен на обоих роутерах R1 и R2 во все непосредственно подсоединенные сети.

Сеть 172.30.22.0 напрямую подключена к маршрутизатору R2, поэтому счетчик переходов для нее равен 0
Когда R2 пересылает анонс маршрута к такой сети, он устанавливает значение счетчика равным 1. Получив анонс от R2, маршрутизатор R1 заносит маршрут к сети 172.30.22.0 в свою таблицу маршрутизации и считает этот маршрут оптимальным, поскольку других маршрутов у него нет.
В качестве исходящего интерфейса для нового маршрута R1 использует S0/0, поскольку анонс был получен через него.
В качестве адреса следующего транзитного устройства на маршруте использует 172.30.1.2, поскольку анонс маршрутизации был получен от отправителя с этим IP-адресом.

Из анонсов маршрутов исключаются некоторые маршруты для того чтобы исключить кольцевые маршруты и зацикливание пакетов. Кольцевой маршрут образуется когда два или более маршрутизаторов пересылают друг другу пакеты по замкнутому пути при котором пакеты не достигают нужного получателя. Кольцевой маршрут будет действовать до тех пор, пока маршрутизаторы в сети не обновят свои таблицы маршрутизации. Для избежания кольцевых маршрутов, маршрутизаторы рассылают информацию об отказавшем маршруте со специальной метрикой, равной бесконечности (для протокола RIP это значение равно 16). Такая рассылка называется корректировкой маршрута.
Еще один механизм предотвращения кольцевых маршрутов – таймер хранения информации. Когда устройство получает откорректированный маршрут (с максимальной метрикой), свидетельствующий о том, что этот маршрут недоступен, запускается таймер для такого маршрута. Стандартное значение таймера хранения информации равно 180 с. До тех пор пока не истечет таймер, новая информация о маршруте не принимается устройством, но информация от соседнего маршрутизатора, который ранее анонсировал исчезнувший маршрут, принимается и обрабатывается до истечения таймера хранения информации.

Пример сети и ее настройки с использованием протокола RIP

Для настройки на маршрутизаторе протокола RIP необходимо ввести команду router rip. Далее в режиме конфигурирования протокола маршрутизации нужно ввести команду network, содержащую номер сети, подключенной непосредственно к роутеру, информацию о которой следует разглашать в рассылках. Если используется бесклассовая адресация, необходимо включить 2 версию протокола RIP командой version 2

Router1(config)# router rip
Router1(config-router)# network 92.154.224.0
Router1(config-router)# network 92.154.252.0
Router1(config-router)# version 2

Router2(config)# router rip
Router2(config-router)# network 92.154.252.0
Router2(config-router)# network 92.154.252.4
Router2(config-router)# network 92.154.228.0
Router2(config-router)# version 2

Router3(config)# router rip
Router3(config-router)# network 92.154.252.4
Router3(config-router)# network 92.154.232.0
Router3(config-router)# version 2

Проверяем таблицу маршрутизации командой

Router1# show ip route rip


R 92.154.228.0/22 via 92.154.252.2, 00:00:20, Serial1/0
R 92.154.232.0/22 via 92.154.252.2, 00:00:20, Serial1/0
R 92.154.252.4/30 via 92.154.252.2, 00:00:20, Serial1/0

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

OSPF

Протокол OSPF является протоколом маршрутизации с учетом состояния каналов. В этом классе протоколов в качестве метрики используется стоимость маршрута, которая рассчитывается на основе пропускной способности каждого канала на пути от маршрутизатора до необходимой сети. Поэтому процесс работы протокола OSPF условно можно разделить на три этапа: обнаружение соседних маршрутизаторов, обмен базами маршрутов и расчет оптимальных маршрутов.
Устройства, подключенные к одному каналу и участвующие в процессе обмена информацией протокола OSPF называются соседними маршрутизаторами. Для обнаружения OSPF-устройств маршрутизаторы рассылают многоадресатные Hello-пакеты через все интерфейсы, на которых настроен протокол OSPF. В запросе содержится следующая информация:
идентификатор маршрутизатора-отправителя Router ID – RID,
идентификатор зоны OSPF Area ID,
Hello-интервал,
интервал обнаружения неработоспособности устройства (dead interval),
приоритет маршрутизатора (router priority),
идентификатор RID выделенного маршрутизатора (designated router DR),
идентификатор RID резервного выделенного маршрутизатора (backup designated router BDR)
список соседних устройств, обнаруженных маршрутизатором-отправителем.

Каждому маршрутизатору присваивается уникальный номер – идентификатор маршрутизатора RID. Он представляет собой 32-битное число, поэтому для удобства в качестве идентификатора используют IP-адрес. Протоколом автоматически выбирается самый старший IP-адрес из всех адресов на интерфейсах устройства (в т.ч. виртуальных).

Например, маршрутизатор «А» получает Hello-сообщение от маршрутизатора «Б». Устройству «А» нужно уведомить маршрутизатор «Б» о том, что сообщение было получено, поэтому маршрутизатор «А» добавляет идентификатор RID маршрутизатора «Б» в свое следующее (и все последующие) Hello-сообщение. Аналогично, когда маршрутизатор «Б» получит Hello-сообщение, он добавит идентификатор RID устройства «А» в свои последующие Hello-сообщения.
Когда маршрутизатор обнаруживает свой идентификатор RID во входящем Hello-сообщении, он считает, что со смежным устройством был установлен двусторонний канал. После этого маршрутизаторы проверяют базовые настройки протокола друг у друга, содержащиеся в Hello-сообщениях: IP-адрес, маску подсети, интервал рассылки Hello-сообщений, интервал обнаружения неработоспособности соседнего устройства (dead interval), идентификатор зоны OSPF (area ID) и др. Настройки должны совпадать, иначе протокол работать не будет.
После проверки, если настройки совпадают, маршрутизаторы могут обмениваться анонсами состояния каналов (Link-State Advertisements – LSA).
После установления двустороннего канала маршрутизаторы продолжают периодически обмениваться Hello-сообщениями. Если связь отсутствуют в течение времени, которое определяется dead-интервалом, то считается, что связь с соседним устройством потеряна. Стандартно в протоколе OSPF интервал рассылки Hello-сообщений равен 10 с, dead-интервал – 40 с.
В анонсах LSA содержится подробная информация о топологии сети. Процесс рассылки этих анонсов называется лавинной рассылкой (flooding), при которой маршрутизаторы пересылают анонсы LSA своим соседям, которые, в свою очередь, рассылают их своим соседям, и так до тех пор, пока все устройства в сети не получат информацию из анонса. Анонсы LSA рассылаются периодически (по умолчанию один раз в 30 мин). По окончании процесса рассылки у всех маршрутизаторов в домене маршрутизации появится общая одинаковая информация о сети. Информация хранится в виде структуры, называемой базой данных состояния каналов link-state database – LSDB.
Когда у каждого маршрутизатора в домене маршрутизации есть идентичная копия базы LSDB, то используется технология протоколов маршрутизации с учетом состояния каналов. Устанавливаются маршруты в таблицу IP-маршрутизации: создаются записи, содержащие адрес подсети, маску, выходной интерфейс и адрес следующего транзитного устройства (next-hop). Для выполнения данной задачи используется алгоритм поиска первого кратчайшего пути Дейкстры.
Протокол OSPF выбирает маршрут между маршрутизатором и какой-либо сетью с наименьшей стоимостью. С каждым интерфейсом на маршруте связано некоторое значение стоимости. Стоимость всех интерфейсов (каналов), через которые пролегает путь к сети, суммируется и выбирается путь, стоимость которого минимальна. Таким образом, каждый маршрутизатор строит маршруты подобно древовидной структуре, в корне которой ставит себя.
Для настройки протокола OSPF используются команда router ospf, которая содержит 16-битный идентификатор процесса от 1 до 65535 и команда network, содержащая номер сети, инверсную маску (wildcard mask) и идентификатор зоны.

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

Router1(config)# route ospf 1
Router1(config-router)# network 92.154.252.0 0.0.0.3 area 0
Router1(config-router)# network 92.154.224.0 0.0.3.255 area 0

Router2(config)# router ospf 1
Router2(config-router)# network 92.154.252.0 0.0.0.3 area 0
Router2(config-router)# network 92.154.252.4 0.0.0.3 area 0
Router2(config-router)# network 92.154.228.0 0.0.3.255 area 0

Router3(config)# router ospf 1
Router3(config-router)# network 92.154.252.4 0.0.0.3 area 0
Router3(config-router)# network 92.154.232.0 0.0.3.255 area 0

Проверяем результаты командой Router1# show ip route ospf

92.0.0.0/8 is variably subnetted, 5 subnets, 2 masks
O 92.154.228.0/22 via 92.154.252.2, 00:00:26, Serial1/0
O 92.154.232.0/22 via 92.154.252.2, 00:00:26, Serial1/0
O 92.154.252.4/30 via 92.154.252.2, 00:00:26, Serial1/0

Для просмотра списка соседних маршрутизаторов на которых настроен протокол OSPF, и информации о них используется команда show ip ospf neighbor

Router1#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
92.154.252.5 0 FULL/ — 00:00:37 92.154.252.2 Serial1/0

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

Router(config)# interface loopback 0
Router(config-if)# ip add 1.1.1.1 255.255.255.255

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

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

Общее описание маршрутизаторов OSPF

Граничные маршрутизаторы области

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

Граничные маршрутизаторы автономной системы

Маршрутизаторы ASBR соединены с несколькими автономными системами и обмениваются маршрутной информацией с маршрутизаторами, находящимися в другой автономной системе. В маршрутизаторах ASBR одновременно эксплуатируются протокол OSPF и другой маршрутизирующий протокол, такой как RIP или ВGР. Маршрутизаторы ASBR обрабатывают информацию о внешних маршрутах.

Маршрутизаторы опорной области

Маршрутизаторами опорной области (Backbone Router - BR) называются маршрутизаторы, интерфейсы которых соединяют их только с опорной областью. Они не имеют интерфейсов, подключенных к другим областям OSPF.

Введение.

Протокол OSPF (Open Shortest Path First), на русский можно перевести как
протокол кратчайшего пути (маршрута).

OSPF является промышленным протоколом, который описывается в соответсвующем RFC 2328

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

1. Дистанционно-векторные протоколы
2. Протоколы по состоянию каналов
3. Смешанные протоколы.

OSPF относится к протоколам по состоянию каналов.

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

OSPF — масштабируемый протокол маршрутизации, он может быть использован
как в отдельной единственной зоне в небольших сетях, так и в нескольких
занах большой сети. Можно сгруппировать некоторые маршрутизаторы в одну
Area, а другие в другую. Тем самым изменения маршрутной информации в
одной зоне, не повлияет на работоспособность другой. Для взаимодействия
нескольких зон используют Area0, т.е. это зона является магистралью
(backbone).

Состояния протокола OSPF.

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

Сущесвтует 5 состояний:

1. Состояние отключено (down state)
2. Cостояние инициализации (init state)
3. Двусторонее соединение (Two-way)
4. ExStart
5. Обмен (Exchange)
6. Загрузка (Loading)
7. Установка полной смежности (Full adjecency)

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

Типы пакетов в протоколе OSPF:
— Hello пакет — данный тип пакета предназначен для создания и поддержки таблицы соседних устройств.
— DBD пакет (Database Description packet), как видно из название это пакет описания содержимого базы данных

состояния каналов маршрутизатора.
— LSR (Link State Request) — запрос о состоянии каналов, предназначен для запроса
отдельного фрагмента базы данных

состояния каналов.
— LSU (Link state update) — обновление состояния каналов. Данный пакет передает
в себе обновление о состоянии

каналов.
— LSAck (Link state acknowledgment) — Подтверждение о получении от соседнего
устройства LSA (Link State Advertisement).

Теперь рассмотрим состояния и переходы между состояниями более подробно.

Самое простое состояние, и не требует детального описания. В двух
словах, это состояние, при котором не происходил обмен между соседними
маршрутизаторами, маршрутизатор ожидает перехода в следующее состояние —
Init State, состояние инициализации.

В состоянии инициализации маршрутизатор OSPF посылает Hello пакеты для
установки связи между соседними устройствами, по умолчанию каждые 10
секунд. Когда интерфейс получает Hello пакет, маршрутизатор переходит в
состояние инициализации, другими словами, маршрутизатор «понимает» что
на этом интерфейсе есть соседнее устройство.

3. Состояние двусторонней связи (Two-way).

Каждый маршрутизатор OSPF пытается установить связь со всеми своими
соседями, это просиходит с помощью пакета Hello. В пакете Hello
передается список всех известных соседних маршрутизаторов. Если
маршрутизатор принимает пакет Hello и «видит» в этом пакете себя, то
считается что состояние двусторонней связи установлено.

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

4. Состояние ExStart.

Для установки состояние ExStart использутеся пакет DBD (описание базы
данных). Так же в этом состоянии «выясняется», какой из маршрутизаторов
является ведущим (master), а какой ведомый (slave). Выбор осуществляется
по ID маршрутизатора. Маршутизатор, у которого ID больше становится
master. После того, как определены роли маршрутизаторов, маршрутизаторы
переходят в следующее состояние — обмена.

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

В состоянии Exchange, маршрутизатор нашел информацию, которой нет в
собственной базе данных, для получения полной информации об этом канале
маршрутизатор посылает пакет-запрос LSR (Link State Request)
соответсвующему соседу. Сосед отвечает пакетом LSU (Link State Update),
в котором содержится полная информация о запрашиваемом канале. После
получения пакета LSU, маршрутизатор должен подтвердить это
соответсвующим пакетом (LSAck).

7. Full adjacency — Состояние полной смежности.

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

При прохождении всех этих состояний, в маршрутизаторе будет сформированы
три базы данных.

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

2. База данных о смежных устройствах. — Список всех устройств, с
которыми установлено двусторонние соединение.

3. Таблица маршрутизации. — Список маршрутов, который сформирован каждым
маршрутизатором с помощью алгоритма SPF.

Маршруты вычисляются из базы данных канального уровня. И вычисляются
каждым маршрутизатором самостоятельно!

Протокол OSPF поддерживает следующие типы сетей:

1. Широковещательные сети множественного доступа (broadcast multiaccess)
2. Нешироковещательные сети множественного доступа (nonbroadcast multiaccess — NBMA)
3. Point — to — Point. «Точка-точка».
4. Point — to — multipoint. «точка-многоточек»

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

Для уменьшения слежебного трафика используется выбор назначенного и
резервного маршрутизатора (DR — designated router и BDR — backup
designated router), которые и будут рассылать все необходимые маршруты
остальным маршрутизатором. Смысл этого в том, что все маршрутизаторы
устанавливают состояние полной смежности только с DR/BDR и только им
послылают информацию о состоянии своих каналов, тем самым происходит
уменьшение служебного трафика в сети.

«Общение» между маршрутизаторами и DR/BDR осщуествляется с помощью
мультикаста — 224.0.0.5. «Общение» между DR и BDR происходит по своему
мультикаст адресу — 224.0.0.6

В сетях point — to — point существует только два маршрутизатора,
соответсвенно не нужно выбирать ни DR ни BDR.

Посмотрело: 9780

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

Введение

Открытый протокол, базирующийся на алгоритме поиска наикратчайшего пути (Open Shortest Path Fisrt - OSPF) является протоколом маршрутизации, разработанным для сетей IP рабочей группой Internet Engineering Task Force (IETF), занимающейся разработкой протоколов для внутрисистемных роутеров (interior gateway protocol - IGP).

Как видно из его названия, OSPF имеет две основных характеристики. Первая из них-это то, что протокол является открытым, т.е. его спецификация является общественным достоянием. Второй его главной характеристикой является то, что он базируется на алгоритме SPF. Алгоритм SPF иногда называют алгоритмом Dijkstra по имени автора, который его разработал.

Основы технологии

OSPF является протоколом маршрутизации с об"явлением состояния о канале (link-state). Это значит, что он требует отправки об"явлений о состоянии канала (link-state advertisement - LSA) во все роутеры, которые находятся в пределах одной и тойже иерархической области. В oб"явления LSA протокола OSPF включается информация о подключенных интерфейсах, об использованных показателях и о других переменных. По мере накопления роутерами OSPF информации о состоянии канала, они используют алгоритм SPF для расчета наикратчайшего пути к каждому узлу.

Являясь алгоритмом с об"явлением состояния канала, OSPF отличается от RIP и IGRP, которые являются протоколами маршрутизации с вектором расстояния. Роутеры, использующие алгоритм вектора расстояния, отправляют всю или часть своей таблицы маршрутизации в сообщения о корректировке маршрутизации, но только своим соседям.

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

Любая AS может быть разделена на ряд зон или областей(area). Зона - это группа смежных сетей и подключенных к ним хостов. Роутеры, имеющие несколько интерфейсов, могут участвовать в нескольких зонах. Такие роутеры, которые называются пограничными областными роутерами (area border routers), поддерживают отдельные топологические базы данных для каждой области.

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

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

Топология области является невидимой для об"ектов, находящихся вне этой области. Путем хранения топологий областей отдельно, OSPF добивается меньшего трафика маршрутизации, чем трафик для случая, когда AS не разделена на области.

Разделение на области приводит к образованию двух различных типов маршрутизации OSPF, которые зависят от того, находятся ли источник и пункт назначения в одной и той же или разных областях. Маршрутизация внутри области имеет место в том случае, когда источник и пункт назначения находятся в одной области; маршрутизация между областями - когда они находятся в разных областях.

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

На этом рисунке роутеры 4, 5, 6, 10, 11 и 12 образуют магистраль. Если хост Н1 Области 3 захочет отправить пакет хосту Н2 Области 2, то пакет отправляется в роутер 13, который продвигает его в роутер 12, который в свою очередь отправляет его в роутер 11. Роутер 11 продвигает пакет вдоль стержня к роутеру 10 границы области, который отправляет пакет через два внутренних роутера этой области (роутеры 9 и 7) до тех пор, пока он не будет продвинут к хосту Н2.

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

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

Граничные роутеры AS, использующие OSPF, узнают о внешних маршрутах через протоколы внешних роутеров (EGPs), таких, как Exterior Gateway Protocol (EGP) или Border Gateway Protocol (BGP), или через конфигурацию.

Алгоритм SPF

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

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

В сетях с множественным доступом (multi-access networks) (сетях, поддержиающих более одного роутера), протокол Hello выбирает назначенный роутер (designated router) и дублирующий назначенный роутер. Назначеный роутер, помимо других функций, отвечает за генерацию LSA для всей сети с множественным доступом. Назначенные роутеры позволяют уменьшить сетевой трафик и об"ем топологической базы данных.

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

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

Формат пакета

Все пакеты OSPF начинаются с 24-байтового заголовка, как показано на Рис 2

Первое поле в заголовке OSPF - это номер версии OSPF (version number). Номер версии обозначает конкретную используемую реализацию OSPF.
За номером версии идет поле типа (type). Существует 5 типов пакета OSPF:

  • Hello - Отправляется через регулярные интервалы времени для установления и поддержания соседских взаимоотношений.
  • Database Description - Описание базы данных. Описывает содержимое базы данных; обмен этими пакетами производится при инициализации смежности.
  • Link-State Request - Запрос о состоянии канала. Запрашивает части топологической базы данных соседа. Обмен этими пакетами производится после того, как какой-нибудь роутер обнаруживает, (путем проверки пакетов описания базы данных), что часть его топологической базы данных устарела.
  • Link-State Update - Корректировка состояния канала. Отвечает на пакеты запроса о состоянии канала. Эти пакеты также используются для регулярного распределения LSA. В одном пакете могут быть включены несколько LSA.
  • Link-State Acknowledgement- Подтверждение состояния канала. Подтверждает пакеты корректировки состояния канала. Пакеты корректировки состояния канала должны быть четко подтверждены, что является гарантией надежности процесса лавинной адресации пакетов корректировки состояния канала через какую-нибудь область.

Каждое LSA в пакете корректировки состояния канала содержит тип поля. Существуют 4 типа LSA:

  • Router links advertisements (RLA) - Об"явления о каналах роутера. Описывают собранные данные о состоянии каналов роутера, связывающих его с конкретной областью. Любой роутер отправляет RLA для каждой области, к которой он принадлежит. RLA направляются лавинной адресацией через всю область, но они не отправляются за ее пределы.
  • Network links advertisements (NLA) - Об"явления о сетевых каналах. Отправляются назначенными роутерами. Они описывают все роутеры, которые подключены к сети с множественным доступом, и отправляются лавинной адресацией через область, содержащую данную сеть с множественным доступом.
  • Summary links advertisements (SLA) - Суммарные об"явления о каналах. Суммирует маршруты к пунктам назначения, находящимся вне какой-либо области, но в пределах данной AS. Они генерируются роутерами границы области, и отправляются лавинной адресацией через данную область. В стержневую область посылаются об"явления только о внутриобластных роутерах. В других областях рекламируются как внутриобластные, так и межобластные маршруты.
  • AS external links advertisements - Об"явления о внешних каналах AS. Описывают какой-либо маршрут к одному из пунктов назначения, который является внешним для данного AS. Об"явления о внешних каналах AS вырабатываются граничными роутерами AS. Этот тип об"явлений является единственным типом об"явлений, которые продвигаются во всех направлениях данной AS; все другие об"явления продвигаются только в пределах конкретных областей.
За полем типа заголовка пакета OSPF идет поле длины пакета (packet length). Это поле обеспечивает длину пакета вместе с заголовком OSPF в байтах.
Поле идентификатора роутера (router ID) идентифицирует источник пакета.
Поле идентификатора области (area ID) идентифицирует область, к которой принадлежит данный пакет. Все пакеты OSPF связаны с одной отдельной областью.

Стандартное поле контрольной суммы IP (checksum) проверяет содержимое всего пакета для выявления потенциальных повреждений, имевших место при транзите.

За полем контрольной суммы идет поле типа удостоверения (authentication type). Примером типа удостоверения является "простой пароль". Все обмены протокола OSPF проводятся с установлением достоверности. Тип удостоверения устанавливается по принципу "отдельный для каждой области".

За полем типа удостоверения идет поле удостоверения (authentication). Это поле длиной 64 бита и содержит информацию удостоверения.

Конфигурация OSPF

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

Пример:
interface ethernet 1 ip address 192.168.1.1 255.255.255.0 ! router ospf 1 network 192.168.0.0 0.0.255.255 area 1
В этом примере мы включили OSPF роутинг с помощью команды router ospf 1 . Эта команда перебросит вас в режим конфигурации протокола маршрутизации OSPF. Далее с помощью команды network 192.168.0.0 0.0.255.255 area 1 мы определили интерфейс на котором будет работать OSPF и номер зоны (area) для этого интерфейса. Поскольку в адресном диапазоне 192.168.0.0/16 находиться только один интерфейс ethernet 1, то на этом интерфейсе начинает работать протокол OSPF.