Содержание

Термины

Протокол OSPF

OSPF (Open Short Path First - открытый протокол выбора кратчайшего пути) - протокол динамической маршрутизации, базирующийся на алгоритме построения дерева кратчайших путей. Протокол OSPF обладает следующими характеристиками:

Области OSPF

Число маршрутизаторов автономной системы, использующих протокол OSPF для обмена маршрутной информацией может быть велико. Следствием этого является высокая загрузка каналов связи из-за большого объёма служебных сообщений OSPF. Для снижения объёма передаваемой служебной информации, в протоколе OSPF предусмотрено деление автономной системы на области (аrea).

Каждая из областей имеет 32-битный идентификатор, который принято записывать в двух форматах:

Не обязательно использовать последовательные идентификаторы для областей. Так, например, сеть может включать в себя области с идентификаторами 0,2 и 7 (рис. 1а).

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

За областью с идентификатором 0.0.0.0 зарезервирована специальная роль - такую область называют магистральной. Наличие магистральной области является обязательным условием для работы протокола OSPF. Каждая из областей должна быть непосредственно подключена к магистральной области, т.е. схема, в которой одна из областей подключена к другой, не имея соединения с магистральной, запрещена (рис. 1б).

Рисунок 1а - Разрешённая схема сети с использованием нескольких областей OSPF

Рисунок 1б - Запрещённая схема сети с использованием нескольких областей OSPF

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

В зависимости от места маршрутизатора в схеме сети выделяют следующие типы устройств (рис. 2):

Рисунок 2 - Схема сети с маршрутизаторами различных типов

Алгоритм работы OSPF

Рассмотрим этапы работы протокола OSPF. Некоторые из этапов потребуют подробного объяснения - оно приведено в соответствующих разделах ниже.

Запуск протокола OSPF

Начало работы службы OSPF сопровождается двумя процессами: выбором идентификатора маршрутизатора (router-id) и определением списка интерфейсов, участвующих в работе OSPF.

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

При автоматическом выборе идентификатора, устройство Инфинет генерирует специальный адрес из подсети группового вещания 224.*.*.*, связанный с серийным номером маршрутизатора. Это позволяет избежать переопределения идентификатора при удалении IP-адреса или сетевого интерфейса.

Набор интерфейсов, участвующих в работе протокола OSPF, определяется в соответствии со следующей логикой:

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

Рассмотрим примеры выполнения различных команд при запуске службы OSPF на маршрутизаторе R1 (рис. 3). В таблице ниже представлены примеры команд и соответствие интерфейсов маршрутизатора данной команде: в случае соответствия на интерфейсе будет выполнен поиск соседей, а в случае несоответствия - нет.

КомандаСоответствие eth1Соответствие eth2Комментарий
network 0.0.0.0/0 area 0дада

Сеть 0.0.0.0/0 включает в себя все IP-адреса, поэтому сети, ассоциированные с интерфейсами eth1 и eth2, входят в этот диапазон.

Такая конфигурация обладает скрытым поведением: если в конфигурации устройства появится новый IP-адрес, то на интерфейсе, ассоциированным с ним, будет запущен протокол OSPF. Это происходит потому что сеть 0.0.0.0/0 включает в себя все сети.

network 10.10.30.0/24 area 0

network 192.168.6.0/28 area 1

дадаВ команде явно указаны сети, ассоциированные с интерфейсами erh1 и eth2, поэтому протокол OSPF будет использовать оба этих интерфейса.

network 10.10.30.0/25 area 0

network 192.168.6.0/28 area 1

нетда

Несмотря на то, что IP-адрес маршрутизатора R1 принадлежит сети 10.10.30.0/25, протокол OSPF на этом интерфейсе запущен не будет. Это происходит потому что сеть, ассоциированная с интерфейсом eth1, содержит адреса в диапазоне 10.10.30.0-255, что не удовлетворяет команде 10.10.30.0/25 (10.10.30.0-127).

Протокол OSPF будет запущен на интерфейсе eth2.




Рисунок 3 - Схема маршрутизатора с двумя сетевыми интерфейсами

Пассивные интерфейсы

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

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

Внешние маршруты

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

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

Установка отношений соседства

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

Установка отношений соседства происходит в несколько этапов. Рассмотрим их на примере сети (рис. 4а): сеть состоит из трёх маршрутизаторов R1, R2 и R3, подключенных к коммутатору, между маршрутизаторами установлены отношения соседства, причём маршрутизатор R2 выбран назначенным маршрутизатором (DR), а R3 - резервным назначенным маршрутизатором (BDR). В схему сети будет добавлен маршрутизатор R4, причём будем считать, что выполняются условия для установления отношений соседства.

Рисунок 4а - Добавление в схему сети маршрутизатора R4

Рисунок 4б - Рассылка сообщений Hello маршрутизатором R4

Рисунок 4в - Рассылка сообщений Hello маршрутизаторами R1, R2, R3

Рисунок 4г - Установление симметричных 2-Way отношений

Рисунок 4д - Установление Full-отношений маршрутизатором R4 с DR и BDR

Распределение ролей

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

За устройствами DR и BDR закрепляется групповой адрес 224.0.0.6, используемый для синхронизации LSDB. Устройства с ролями DR и BDR устанавливают отношения Full с каждым из маршрутизаторов широковещательного сегмента, что предъявляет большие требования к производительности устройств по сравнению с DROther. Если аппаратная производительность устройств может стать "бутылочным горлышком", то необходимо учитывать это при планировании сети и использовать назначение приоритетов интерфейсов для предсказуемого выбора наиболее производительных устройств в качестве DR и BDR.

Основная функция DR - точка обмена маршрутной информацией в широковещательном сегменте. Основная функция BDR - контроль за состоянием DR и, при выходе его из строя, смена роли на DR. Поскольку каждый из DROther устанавливает Full отношения как с DR, так и с BDR, то LSDB на BDR является синхронной с DR, поэтому BDR может начать выполнять функции DR без временных задержек на синхронизацию базы данных маршрутов. Если BDR становится DR, то среди DROther выполняется выбор BDR в соответствии с логикой, описанной выше.

Синхронизация LSDB

Маршрутная информация в OSPF представлена в виде LSA разного типа. Совокупность LSA образует LSDB. Следует понимать, что LSA не является служебным сообщением протокола OSPF, поэтому для их передачи используются сообщения DBD, LSR, LSU, LSAck в соответствии с логикой, описанной на этапах 6-8 алгоритма установления отношений соседства.

Протокол OSPF версии 2, поддержка которого реализована в ОС WANFleX, определяет 7 типов LSA, представленных в таблице ниже. Для пояснения предназначения LSA различных типов будем использовать схему сети (рис. 5а): сеть состоит из 6 маршрутизаторов, образующих три области OSPF. При рассмотрении схемы абстрагируемся от этапов установления отношений соседства, сосредочившись на типах LSA, формируемых устройствами.

ТипНаименованиеОписаниеПример
1

LSA о маршрутизаторе

(Router LSA)

LSA данного типа распространяются всеми маршрутизаторами в пределах одной области.

LSA содежит следующую маршрутную информацию:

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

LSA данного типа формируют все маршрутизаторы в сети (рис. 5б).

Обратим внимание на следующие особенности:

  • в LSA типа 1, рассылаемых в области 0, маршрутизатор R3 включит только информацию о сети 10.10.234.0/29, а в LSA типа 1, рассылаемых в области 36 - информацию о сети 192.168.36.0/24. Это поведение объясняется тем, что LSA типа 1 предназначен для обмена информацией внутри области;
  • маршрутизатор R5 не формируется LSA типа 1 с информацией о внешней сети 172.16.0.0/16;
  • LSA типа 1, сформированный маршрутизатором R4 будет получен маршрутизатором R2 и передан маршрутизатору R1 с увеличенным значением метрики. Таким образом, LSA типа 1 распространяются по всей области с приращением метрики, остальные параметры остаются неизменными.
2

LSA о сети

(Network LSA)

LSA данного типа распространяются DR в пределах одной области.

LSA содержит следующую маршрутную информацию:

  • адрес сети широковещательного сегмента;
  • маска сети широковещательного сегмента;
  • список маршрутизаторов, с которыми установлены отношения соседства.

LSA данного типа формируют только маршрутизаторы R1, R2, R3 и R4, т.к. им назначена роль DR (рис. 5в).

По аналогии с LSA типа 1, LSA типа 2 распространяются по всей области с приращением значения метрики.

3

Суммарный LSA

(Summary Network LSA)

LSA данного типа распространяются ABR и содержат маршрутную информацию о соседней области. Наличие LSA 1 и 2 типов позволяют маршрутизатору построить топологию области и рассчитать пути передачи данных. LSA типа 3 не являются источниками данных о топологии, они содержат только маршрутную информацию о соседних областях. Таким образом на стыке областей OSPF проявляет признаки дистанционно-векторного протокола.

ABR формирует один LSA типа 3 для каждой сети. Число сообщений может быть уменьшено за счёт настройки суммирования маршрутов.

LSA данного типа рассылаются маршрутизаторами R3 и R4, т.к. они являются ABR (рис. 5г).

Маршрутизатор R3 сформирует следующие LSA типа 3:

  • маршрут к сети 192.168.36.0/24 для области 0. Маршрутизатор R3 подключен к этой сети с помощью интерфейса eth1;
  • маршрут к сети 10.10.234.0/29 для области 36. Маршрутизатор R3 подключен к этой сети с помощью интерфейса eth0;
  • маршрут к сети 10.10.21.0/30 для области 36. Информация о сети взята из LSA типа 1 и 2, полученных от R1;
  • маршрут к сети 192.168.45.0/24 для области 36. Маршрут к этой сети получен через LSA типа 3 от маршрутизатора R4. Интересно, что при анонсе этой сети, маршрутизатор R3 подменяет источник LSA, устанавливая себя в качестве источника маршрута. Подмена источника является необходимым условием, т.к. маршрутизаторе области 36 не знают о местонахождении маршрутизатора R4.

Маршрутизатор R4 формирует LSA типа 3 по аналогии с R3.

4

Суммарный LSA ASBR

(ASBR Summary LSA)

LSA данного типа формируют ABR в дополнение к LSA типа 5.

LSA такого типа содержат информацию о местонахождении ASBR для соседней по отношению к ASBR области.

См. пример для LSA типа 5.
5

Внешний LSA

(External LSA)

LSA данного типа формируют ASBR для внешних маршрутов, в том числе маршрутов по-умолчанию. Такие сообщения распространяются через всю АС без изменений.

По аналогии с ABR, ASBR может выполнять суммирование внешних маршрутов, т.е. замену нескольких маршрутов одним. Это позволяет сократить таблицу маршрутизации и объём служебной информации при дальнейшем распространении этих маршрутов.

LSA типа 5 формируется маршрутизатором R5, т.к. это единственный ASBR в схеме сети (рис. 5д).

LSA типа 5, сформированный маршрутизатором R5 содержит информацию о сети 172.16.0.0/16 и распространяется через всю автономную систему без изменений. Таким образом, каждый из маршрутизаторов на схеме обладает данными о том, что сеть 172.16.0.0/16 является внешней и подключение к этой сети имеет маршрутизатор R5.

Скрытая проблема заключается в том, что маршрутизаторы R1, R2, R3 и R6 не знают местонахождения R5. LSA типа 1, в котором указан идентификатор R5, распространяется только внутри области 45.

Для решения этой проблемы, пограничные маршрутизаторы R4 и R3 дополнительно к передаваемому LSA типа 5 генерируют LSA типа 4. В LSA типа 4 маршрутизаторы сообщают о том, что весь трафик, адресованный R5 можно передать на ABR.

6

LSA членства в группе

(Group Membership LSA)

LSA такого типа используются в Multicast-сетях и содержат список групп, потребители которых есть в сегменте сети. В рамках данной статьи LSA такого типа рассматриваться не будут.

-
7

LSA типа 7

(Type 7 LSA)

LSA данного типа являются аналогом LSA типа 5, применяемых в NSSA областях. Использование LSA типа 7 является следствием соблюдения совместимости между областями типа Stub и NSSA. LSA типа 7 преобразовывается в LSA типа 5 маршрутизатором ABR при экспорте из NSSA области.Пример формирования LSA типа 7 представлен при описании NSSA областей.



Рисунок 5а - Схема сети для анализа типов LSA

Рисунок 5б - Рассылка LSA типа 1

Рисунок 5в - Рассылка LSA типа 2

Рисунок 5г - Рассылка LSA типа 3

Рисунок 5д - Рассылка LSA типов 4 и 5

Построение дерева кратчайших связей

После синхронизации LSDB каждый из маршрутизаторов выполняет расчёт дерева кратчайших путей с использованием алгоритма Дейкстры.

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

Типы областей

Одним из способов уменьшения объёма служебных сообщений протокола OSPF является использование областей разного типа. Протокол предусматривает следующие типы областей:

Основные свойства областей разного типа рассмотрим на примере следующей схемы (рис. 6): маршрутизаторы R1, R2, R3 и R4 последовательно соединены между собой, образуя три области OSPF. Маршрутизаторы R3 и R4 имеют внешние каналы связи. В каждом из последующих примеров будем менять тип области 4, анализируя типы LSA, связанные с этой областью. В рассматриваемых примерах будут опущены подробности LSA не связанных с областью 4 и LSA типа 1 и 2, т.к. они распространяются в пределах областей любого типа.

Рисунок 6 - Схема сети для рассмотрения типов областей

Normal

Области Normal не вносят изменений в логику распространения и обработки LSA, описанную выше (рис. 7а). Данный тип областей используется устройствами по умолчанию. Частным случаем области Normal является магистральная область.

Рисунок 7а - Распространение LSA в области Normal

Stub

Для области Stub характерны следующие особенности (рис. 7б):

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

Рисунок 7б - Распространение LSA в области Stub

Totally Stub

Область Totally Stub повторяет поведение области Stub с одним исключением: LSA типов 3 и 5 из соседних областей заменяются на один LSA типа 3 с маршрутом по умолчанию (рис. 7в).

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

Рисунок 7в - Распространение LSA в области Totally Stub

NSSA

Область NSSA обладает характеристиками области Stub с одним исключением: область NSSA может иметь внешний канал связи (рис. 7г). Поскольку для распространения маршрутной информации о внешних каналах связи используются LSA типа 5, запрещённые в областях Stub, то в NSSA для этого используется LSA типа 7. Этот тип LSA повторяет структуру LSA типа 5, но разрешён к распространению в NSSA областях. На стыке областей ABR преобразовывает LSA типа 7 в LSA типа 5, устанавливая себя в качестве источника. Поскольку источником указывается ABR, выполняющий преобразование LSA, то дополнительный LSA типа 4 создавать не нужно.

Как правило, применение области NSSA является следствием развития сети: подключение внешнего канала связи к области Stub требует изменение её типа на NSSA.

Рисунок 7г - Распространение LSA в области NSSA

Totally NSSA

Области Totally NSSA схожи по поведению с областями NSSA за исключением одной особенности: в область Totally NSSA экспортируется только один LSA типа 3 с маршрутом по умолчанию (рис. 7д).

Как правило, использование областей Totally NSSA является следствием развития сети: подключение внешнего канала связи к области типа Totally Stub требует изменения типа области на Totally NSSA.

Рисунок 7д - Распространение LSA в области Totally NSSA

Виртуальный канал связи

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

Виртуальный канал связи обладает следующими характеристиками (рис. 8):

Рисунок 8 - Схема с виртуальным каналом связи

Особенности протокола OSPF

Особенности протокола OSPF можно сформулировать следующим образом:

Практические примеры по настройки OSPF представлены на дочерней странице документа: Настройка протокола OSPF.

Дополнительные материал

Вебинары

  1. Типовые сценарии настройки маршрутизации в устройствах Инфинет, часть 2.

Прочее

  1. Команда ifconfig (настройка интерфейсов)
  2. Команда ARDA
  3. Команда OSPF
  4. Команда arip
  5. Команда rip (модуль динамической маршрутизации)
  6. RFC 2328