69571

OSPF (Open Shortest Path First)

Практическая работа

Информатика, кибернетика и программирование

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

Русский

2014-10-07

1.86 MB

4 чел.

OSPF (часть I)

OSPF (Open Shortest Path First – нахождение кратчайшего пути), является протоколом динамической маршрутизации для обслуживания трафика сетевого уровня протокола IP. Протокол OSPF относится к числу внутренних протоколов маршрутизации (Interior Gateway Protocol или IGP) – это означает, что маршрутная информация распространяется между маршрутизаторами одной автономной системы AS. Протокол OSPF работает на основе технологии SPF (link-state – по состоянию канала) в отличие от алгоритмов Bellman-Ford, используемых традиционными протоколами маршрутизации TCP /IP. Протокол OSPF подготовлен одноименной рабочей группой IETF и предназначен для использования в средах TCP /IP. Протокол включает явную поддержку CIDR и установки меток (tagging) при использовании внешней маршрутной информации. OSPF использует аутентификацию и групповую адресацию (IP multicast) при обмене маршрутными сообщениями. Кроме того, при разработке протокола были приложены значительные усилия по ускорению обработки топологических изменений в сети и снижению уровня служебного трафика.

OSPF обеспечивает маршрутизацию пакетов IP на основе IP-адресов получателей, определяемых из заголовка пакетов IP. Пакеты IP маршрутизируются без их изменения (as is), т.е., не используется инкапсуляция в какие-то иные протоколы при передачи трафика внутри AS. OSPF является динамическим протоколом маршрутизации, обеспечивающим быстрое обнаружение топологических изменений в AS (например, сбои маршрутизаторов или каналов) и расчет новых маршрутов (loop-free).

Период схождения (convergence), как еще называют процесс расчета нового маршрута, происходит достаточно быстро, при этом уровень служебного трафика невелик. В протоколах на основе состояния каналов (link-state) каждый маршрутизатор обслуживает базу данных описывающую топологию AS. Эта база используется как база данных о состоянии каналов (link-state database). Каждый маршрутизатор располагает такой базой данных. Каждый элемент базы данных представляет собой локальное состояние отдельного маршрутизатора (например, поддерживаемые интерфейсы или доступные соседи). Маршрутизаторы распространяют информацию о своем локальном состоянии путем лавинной маршрутизации.

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

OSPF позволяет группировать сети – такие группы называют областями (area). Топология области невидима для остальной части AS. Такое сокрытие (избыточной) информации позволяет существенно снизить уровень служебного трафика. Кроме того, маршрутизация внутри области определяется исключительно внутренней топологией этой области, что обеспечивает защиту областей от использования некорректной маршрутной информации. Понятие области является обобщением подсетей IP. OSPF обеспечивает возможность гибкой настройки подсетей IP. Каждый маршрут в OSPF распространяется с указанием адресата и маски подсети. Две разных подсети одной сети IP могут иметь различные размеры (т. е., разные маски) – для обозначения этого обычно используется термин variable length subnetting (переменный размер подсетей). Пакеты маршрутизируются по пути с наилучшим (т. е., самым длинным или более конкретным) соответствием. Маршруты к хостам рассматриваются как пути в подсети с маской из одних единиц (all ones или 0xffffffff ).

Весь обмен информацией OSPF осуществляется с использованием аутентификации. Это означает, что в маршрутизации внутри AS могут участвовать только уполномоченные маршрутизаторы. При этом, могут использоваться различные схемы аутентификации; в частности, допустимо применение различных схем для каждой подсети IP.Внешние маршрутные данные (т. е., маршруты, полученные от протоколов внешних шлюзов EGP - например, BGP) анонсируются через AS. Такие данные сохраняются отдельно от данных OSPF о состоянии каналов. Каждый внешний маршрут может дополнительно помечен (tagged), анонсирующим его маршрутизатором – это дает возможность передачи дополнительной информации между маршрутизаторами на границе AS.

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

Autonomous System (автономная система) - группа маршрутизаторов, обменивающихся маршрутной информацией на основе общего протокола. Используется также сокращение AS.

Interior Gateway Protocol (протокол внутренней маршрутизации) - протокол маршрутизации, используемый в пределах одной автономной системы. Для обозначения таких протоколов часто используется аббревиатура IGP. Каждая AS имеет один протокол IGP. В разных автономных системах могут использоваться различные протоколы IGP.

Router ID (идентификатор маршрутизатора) 32-битовое целое число, связываемое с каждым маршрутизатором, использующим протокол OSPF. Этот идентификатор является уникальным в масштабе AS.

Point-to-point networks (сеть на базе соединений точка-точка)

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

Broadcast networks (широковещательные сети) - сети, поддерживающие множество (более 2) подключенных маршрутизаторов с возможностью адресации одного сообщения всем подключенным маршрутизаторам – широковещательная передача (broadcast). Соседние маршрутизаторы в таких сетях обнаруживаются динамически с использованием протокола OSPF Hello. Протокол Hello рассылает пакеты с использованием групповой или широковещательной рассылки. Протокол OSPF может также использовать групповую адресацию (multicast), если такой тип адресации поддерживается операционной системой. Предполагается, что каждая пара маршрутизаторов в широковещательной сети может обмениваться данными напрямую. Примером широковещательных сетей может служить Ethernet.

Non-broadcast networks (сети без широковещания) - сети, поддерживающие множество (более 2) подключенных маршрутизаторов, но не имеющие возможностей широковещательной передачи. Для обнаружения соседних маршрутизаторов в этом случае, также используется протокол OSPF Hello, однако, в силу отсутствия широковещания, для обнаружения соседей требуются дополнительные настройки. В сетях без широковещания, пакеты OSPF, обычно передаваемые с использованием групповой адресации, должны адресоваться непосредственно соседним маршрутизаторам. Примером сетей без широковещания могут служить сети X.25. Протокол OSPF в сетях без широковещания может работать в двух режимах. Первый режим называется NBMA (non-broadcast multi-access – множественный доступ без широковещания) имитирует работу OSPF в широковещательных сетях. Второй режим называется Point-to-MultiPoint (один со многими), в этом случае сеть без широковещания трактуется как множество соединений «точка-точка». Сети без широковещания подразделяются на сети NBMA и Point-to-MultiPoint в зависимости от режима работы OSPF.

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

Neighboring routers (соседние маршрутизаторы) - два маршрутизатора, имеющие интерфейсы в общую сеть. Отношения соседства поддерживаются и детектируются (обычно автоматически) с помощью протокола OSPF Hello.

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

Link state advertisement (анонс состояния канала) - единица данных, описывающая состояние маршрутизатора или сети. Для маршрутизатора анонс включает информацию о состоянии интерфейсов и отношения смежности. Каждый анонс рассылается с использованием лавинной маршрутизации в масштабах домена маршрутизации. Анонсы состояний всех маршрутизаторов и сетей формируют базу данных о каналах, используемую протоколом. Для обозначения анонсов состояния канала используется аббревиатура LSA.

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

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

Designated Router (указанный маршрутизатор) - каждая широковещательная или NBMA-сеть, в которой есть не менее двух маршрутизаторов, имеет среди них выделенный - Designated Router (DR). Выделенный маршрутизатор генерирует анонсы LSA для сети и выполняет другие специальные действия для обеспечения работы протокола. Маршрутизатор DR назначаетс в результате выборов, осуществляемых при помощи протокола Hello. Концепция выделенного маршрутизатора DR позволяет уровень смежности, что является основным требованием для широковещательных сетей и сетей NBMA. Снижение количества пар взаимодействующих друг с другом маршрутизаторов обеспечивает снижение уровня служебного трафика и, как следствие уменьшение базы данных о каналах.

Lower-level protocols (протоколы нижележащих уровней) - протоколы нижележащих уровней, предоставляющих свои услуги протоколу IP и OSPF. Примерами таких протоколов могутслужить X.25 или протоколы канального уровня Ethernet.

Далее кратко рассмотрим историю возникновения протокола OSPF. Как отмечалось ранее, OSPF относится к числу протоколов маршрутизации на основе данных о состоянии каналов. Такие протоколы также называют протоколами на базе SPF или протоколами с распределенной базой данных (distributed-database protocol). Первый протокол маршрутизации, использующий  алгоритм «по состоянию каналов» был разработан для сети ARPANET, работавшей на основе коммутации пакетов. Протокол послужил отправной точкой для разработки всех остальных протоколов типа link-state. Гомогенная среда ARPANET, содержащая однотипные коммутаторы, соединенные синхронными последовательными каналами, существенно упростила разработку и реализацию первого варианта протокола. В дальнейшем был предложен измененный вариант этого протокола. Изменения позволили повысить устойчивость протокола маршрутизации к сбоям, к таким изменениям относится, прежде всего, добавление контрольных сумм LSA, позволяющих обнаруживать повреждения баз данных. Также были предложены способы снижения уровня служебного трафика протокола link-state за счет использования механизма, позволяющего увеличить на порядок интервал между последовательными передачами LSA.

Алгоритм link-state был предложен и для использования в качестве протокола маршрутизации ISO IS-IS. Данный протокол реализовывал механизм снижения трафика при работе в широковещательных сетях за счет введения выделенного маршрутизатора – DR, для каждой широковещательной сети. DR маршрутизатор, обеспечивал генерацию LSA для своей части сети.

Рабочая группа IETF OSPF продолжила разработки в этом направлении, создав протокол OSPF. Концепция выделенного маршрутизатора DR была существенно доработана, что позволило добиться дополнительного снижения служебного трафика. Снижение расхода полосы пропускания обеспечивалось также за счет использования групповой адресации. Кроме этого, была разработана схема областей маршрутизации (area routing), реализующая идею ограничения доступа к маршрутной информации, и сокращение ее объема. И, конечно же, алгоритмы маршрутизации, используемые в протоколе, были приспособлены для использования в межсетевой среде TCP/IP.

Рассмотрим организацию базы данных о каналах протокола OSPF и метод расчета маршрутов, применяемый для заполнения таблиц маршрутизации. База каналов AS описывается т.н. графами связей. Вершины графов показывают маршрутизаторы и сети. Если ребро графа соединяет два маршрутизатора, значит, эти маршрутизаторы соединены физической сетью типа point-to-point. Такой тип сети может не использовать IP адресов интерфейсов, либо иметь назначенные адреса IP – на усмотрение администратора. Если ребро графа соединяет два маршрутизатора между собой через сеть, значит, эти маршрутизаторы имеет интерфейс в данную сеть. Сеть может быть транзитной или оконечной (stub). Транзитные сети могут также передавать трафик, который не связан с данной сетью, т. е., отправитель и получатель принадлежат двум разным сетям, ни одна из которых не совпадает с данной транзитной сетью. Транзитные сети представляются вершинами графов, имеющими входящее и исходящее ребро. Вершины графов для оконечных сетей имеют только входящее ребро.

Соседство каждого сетевого узла на графе зависит от типа сети (point-to-point, широковещательная, NBMA или Point-to-MultiPoint) и числа маршрутизаторов, имеющих интерфейс в данную сеть. Ниже приведено три варианта подключений. В обозначениях маршрутизаторов используется префикс RT, для сетей – префикс N. Интерфейсы маршрутизаторов именуются с префиксом I. Линии между маршрутизаторами показывают сети point-to-point.

От объекта

 

 

RT1

RT2

 К узлу

RT1

 

X

RT2

X

 

Ia

 

X

Ib

X

 

В данном случае два маршрутизатора, соединенные каналом «точка-точка». В результирующем графе базы данных вершины двух маршрутизаторов напрямую соединены парой ребер (по одному ребру в каждом направлении). Интерфейсы сетей point-to-point могут работать без IP-адресов. Когда интерфейсу присваивается адрес, он представляется как оконечное соединение (stub link), и тогда каждый из маршрутизаторов анонсирует такое соединение (IP адрес интерфейса) через остальные интерфейсы. Так же, сети «точка-точка» может быть присвоен адрес IP-подсети. В таких случаях оба маршрутизатора анонсируют stub-соединение с подсетью IP взамен анонса IP-адреса интерфейса.

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

От узла

 

RT7

N3

RT7

 

 

N3

X

 

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

Каждая сеть (оконечная или транзитная) на графе имеет IP-адрес и связанную с ним маску подсети. Маска показывает число узлов в сети. Хосты, напрямую подключенные к маршрутизатору (в этом случае говорят о маршруте к хосту - host route) появляются на графе как оконечные сети. Маска подсети для маршрутов к хостам всегда имеет значение 0xffffffff, показывающее, что в подсети присутствует единственный узел.

От объекта

 

RT3

RT4

RT5

RT6

N2

RT3

 

 

 

 

X

RT4

 

 

 

 

X

RT5

 

 

 

 

X

RT6

 

 

 

 

X

N2

X

X

X

X

 

Как было отмечено выше, протокол OSPF может работать в сетях без широковещания в одном из двух режимов - NBMA или Point-to-MultiPoint. Выбор режима определяет работу протокола Hello и лавинной маршрутизации в сетях без широковещания, а также способ представления сети в базе данных о каналах. В режиме NBMA протокол OSPF эмулирует работу в широковещательной сети – для сети NBMA задается выделенный маршрутизатор DR, который генерирует LSA для сети. Графы для широковещательных сетей и сетей NBMA идентичны. Режим NBMA является наиболее эффективным вариантом использования OSPF в сетях без широковещания как с точки зрения размера базы данных о каналах, так и по объему служебного трафика. Однако этому режиму присущи серьезные ограничения – при выборе режима NMBA, требуется подключение всех маршрутизаторов так, чтобы стал возможен прямой обмен информацией между всеми маршрутизаторами одной  AS. Это ограничение можно обойти для некоторых сетей без широковещания (например, для подсетей ATM, использующих SVC). Однако в других случаях, такое ограничение может оказаться существенным (например, для сетей Frame Relay, в которых поддерживаются только постоянные соединения PVC). В сетях без широковещания, где не все маршрутизаторы могут быть связаны напрямую, сеть разбивается на логические части - подсети, в каждой из которых маршрутизаторы могут взаимодействовать напрямую и тогда каждая отдельная подсеть может функционировать как сеть NBMA. Однако такое решение требует сложной конфигурации, что повышает вероятность ошибки в настройке. Возможно, что в этом случае будет лучше использовать режим Point-to-Multipoint.

В режиме Point-to-MultiPoint протокол OSPF трактует соединения между маршрутизаторами через сеть без широковещания просто как каналы «точка-точка». В сети не задается маршрутизатор DR и для сети не генерируются LSA. Фактически, вершина для сетей Point-to-MultiPoint просто не появляется на графе базы каналов. На рисунке показано представление базы данных для сети Point-to-MultiPoint. Так же приведена схема сети Point-to-MultiPoint.

От объекта

 

RT3

RT4

RT5

RT6

RT3

 

X

X

X

RT4

X

 

 

 

RT5

X

 

 

 

RT6

X

X

X

 

I3

 

 

 

 

I4

 

X

 

 

I5

 

 

X

 

I6

 

 

 

X

Предполагается, что все маршрутизаторы могут взаимодействовать напрямую, за исключением маршрутизаторов RT4 и RT5. Интерфейсы I3,I4, I5, I6 идентифицируются по IP-адресам в сети Point-to-MultiPoint. В графическом представлении базы данных маршрутизаторы, способные взаимодействовать напрямую через сеть Point-to-MultiPoint, соединены двунаправленными ребрами и каждый маршрутизатор также имеет stub-соединение со своим интерфейсом по IP-адресу (в отличие от сети point-to-point, показанной на предидущем). В некоторых сетях без широковещания использование режима Point-to-MultiPoint и протоколов канального уровня типа Inverse ARP позволяет автоматически определять соседей OSPF, несмотря на отсутствие широковещания.

Далее рассмотрим работу протокола OSPF на примере автономной системы. На приведенной ниже схеме показан пример автономной системы.

Объект H1 обозначает хост, использующий SLIP-соединение с маршрутизатором RT12. Маршрутизатор RT12, следовательно, анонсирует маршрут к этому хосту. Линии между маршрутизаторами показывают физические сети point-to-point. Единственная сеть point-to-point, в которой используются адреса для интерфейсов, соединяет маршрутизаторы RT6 и RT10. Маршрутизаторы RT5 и RT7 имеют BGP-соединение с другими AS. Набор полученных по BGP маршрутов показан для обоих маршрутизаторов.

Стоимость связывается с выходом каждого интерфейса в маршрутизаторе. Значение стоимости задается администратором сети. Чем меньше стоимость для интерфейса, тем с большей вероятностью этот интерфейс будет использоваться для пересылки трафика. Значение стоимости связывается также с полученной извне маршрутной информацией (например, данными BGP). Граф связей для AS, показанной на схеме, приведен в соответствующей таблице 1. Цифры показывают стоимость маршрутов, объявленную для интерфейсов соответствующих маршрутизаторов. Если стоимость не указана, предполагается нулевое значение. Обратите внимание, соединения типа «сеть-шлюз» выходящие из сетей, всегда имеют нулевую стоимость. А полученные извне маршрутные данные показаны на графе связей как оконечные (stub). База данных о каналах собирается по частям из LSA, генерируемых маршрутизаторами. В связанном графическом представлении соседство каждого маршрутизатора или транзитной сети представлено в одной, отдельной записи LSA. В приведенной ниже таблице представлен пример LSA для RT12.

От объекта

 

RT12

N9

N10

H1

RT12

 

 

 

 

N9

1

 

 

 

N10

2

 

 

 

H1

12

 

 

 

Маршрутизатор RT12 имеет интерфейсы в две широковещательные сети и SLIP-соединение с хостом. Сеть N6 является широковещательной и подключает три маршрутизатора. Стоимость всех соединений из сети N6 с подключенными к этой сети маршрутизаторами равна 0. Однако, LSA для сети N6 на самом деле генерируется одним из подключенных к этой сети маршрутизаторов: т.е. назначенным DR маршрутизаторами. Пример LSA для сети N6

От объекта

 

RT7

RT8

N10

N6

RT7

 

 

 

0

RT8

 

 

 

0

RT10

 

 

 

0

N6

 

 

 

 

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


Граф связей

 

RT1

RT2

RT3

RT4

RT5

RT6

RT7

RT8

RT9

RT10

RT11

RT12

N1

N2

N3

N4

N6

N7

N8

N9

N10

N11

N12

N13

N14

N15

H1

RT1

0

0

RT2

0

0

RT3

6

0

0

RT4

8

0

RT5

8

6

6

0

0

0

RT6

8

7

RT7

6

0

0

0

RT8

0

0

RT9

0

0

RT10

7

0

0

RT11

0

0

RT12

0

0

N1

3

N2

3

N3

1

1

1

1

N4

2

N6

1

1

1

N7

4

N8

3

2

N9

1

1

10

N10

2

N11

N12

8

2

N13

8

N14

8

N15

9

H1

10

0


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

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

Destination

NextHop

Distance

N1

RT3

10

N2

RT3

10

N3

RT3

7

N4

RT3

8

Ib

-

7

Ia

RT10

12

N6

RT10

8

N7

RT10

12

N8

RT10

10

N9

RT10

11

N10

RT10

13

N11

RT10

14

H1

RT10

21

 

 

 

RT5

RT5

6

RT7

RT10

8

Для каждого направления адресуемой сети point-to-point, определяется отдельный маршрут (в нашем случае это последовательный канал между RT6 и RT10). Сети, относящиеся к другим AS (например, N12) показаны пунктирными линиями на дереве кратчайших путей. Таким образом, маршруты в такие сети заменяются маршрутами к соответствующим маршрутизаторам, что и показано в таблице.

После создания дерева, проверяется маршрутная информация, полученная извне. Эта информация может приходить от других протоколов маршрутизации (например, BGP) или задаваться статически. Принятые по умолчанию маршруты также могут включаться как часть внешних маршрутных данных AS. Внешняя маршрутная информация рассылается через AS без изменений с использованием лавинной маршрутизации. В нашем примере все маршрутизаторы в AS знают, что RT7 имеет два внешних маршрута с метрикой 2 и 9. Протокол OSPF поддерживает два типа внешней метрики. Тип 1 использует для метрики такие же единицы, которые служат для обозначения стоимости интерфейсов в OSPF (т. е., метрика определяется состоянием канала). Внешняя метрика типа 2 использует на порядок большие значения и предполагается, что любая метрика типа 2 заведомо превосходит стоимость любого пути, который является внутренним по отношению к AS. Использование метрики типа 2 предполагает, что маршрутизация между AS составляет основную часть стоимости пересылки пакетов – это избавляет от необходимости преобразования внешней метрики во внутренние единицы.

В качестве примера обработки внешней метрики типа 1 предположим, что маршрутизаторы RT7 и RT5 на рассматриваемой схеме анонсируют внешнюю метрику этого типа. Для каждого из анонсируемых внешних маршрутов стоимость от маршрутизатора RT6 рассчитывается как сумма анонсированной стоимости внешнего маршрута и дистанции от RT6 до анонсирующего маршрутизатора. Когда два маршрутизатора анонсируют путь к одному получателю, RT6 выбирает тот маршрутизатор, через который общая стоимость доставки будет меньше. После этого RT6 устанавливает в качестве значения next hop на пути к внешнему адресату следующий маршрутизатор, который использовался для выбора анонсированного пути.

На рассматриваемой схеме оба маршрутизатора RT5 и RT7 анонсируют внешний маршрут в сеть N12. Маршрутизатор RT7 является предпочтительным, поскольку он анонсирует для N12 дистанцию 10 (10=8+2), а маршрутизатор RT5 анонсирует дистанцию 14 (14=6+8). Ниже приведены записи, добавляемые в таблицу маршрутизации при проверке внешних маршрутов

Destination

NextHop

Distance

N12

RT10

10

N13

RT5

14

N14

RT5

14

N15

RT10

17

Обработка внешней метрики типа 2 считается более простым решением. При этом, выбирается граничный маршрутизатор AS, анонсирующий наименьшую метрику, независимо от внутренней дистанции до граничного маршрутизатора AS. Предположим, что в нашем примере маршрутизаторы RT5 и RT7 анонсируют внешние маршруты типа 2. Тогда весь трафик для сети N12 будет пересылаться маршрутизатору RT7, поскольку 2 < 8. При наличии нескольких маршрутов типа 2 с равной стоимостью, выбор осуществляется с учетом внутренней дистанции до маршрутизатора. В AS может одновременно использоваться внешняя метрика типов 1 и 2, однако при наличии обоих типов предпочтение отдается внешней метрике типа 1.

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

 

Предположим также, что RTX не участвует в маршрутизации OSPF, но обменивается информацией BGP с граничным маршрутизатором AS RT7. В этом случае RT7 будет анонсировать все внешние маршруты OSPF для сетей, пакеты в которые должны маршрутизироваться через RTX. Ели пакеты для таких сетей всегда будут передаваться через RT7 (анонсирующий маршрутизатор), то при определенном направлении передачи трафика будет иметь место нерациональная маршрутизация с точки зрения количества переходов, что противоречит идее OSPF. Например, пакеты предназначенные для передачи в сети, достижимые через RTX, приходят на маршрутизатор RT10 из сети N8. Если следовать логике взаимодействия маршрутизаторов, то RT10 должен передать эти пакета далее на RT7, т.к. именно этот маршрутизатор анонсирует соответствующие направления, после чего RT7 переправит пакеты далее на RTX. Очевидно, что в данном случае, маршрутизатор RT10 имеет возможность передать пактеы сразу на RTX, однако такой маршрут RT10 не известен. Для предупреждения таких ситуаций, протокол OSPF позволяет граничному маршрутизатору AS задать «адрес пересылки» (forwarding address) в его внешнем по отношению к AS анонсе LSA. В приведенном выше примере маршрутизатор RT7 будет указывать IP-адрес RTX как адрес пересылки для всех сетей, пакеты в которые в конечном итоге проходят через RTX. Что в приложении к приведенному примеру, позволит маршрутизатору RT10 передавать пакеты в соответствии с направлением, непосредственно на RTX, минуя RT7.

Адрес пересылки имеет еще одно применение – он позволяет маршрутизаторам внутри AS работать в качестве маршрутных серверов (route server). Например, маршрутизатор RT6 может стать маршрутным сервером, получающим внешние маршрутные данные из статических таблиц маршрутизации и внешних протоколов маршрутизации. RT6, в этом случае анонсирует себя как граничный маршрутизатор AS и рассылает внешние анонсы OSPF LSA. В каждом таком анонсе LSA маршрутизатор RT6 будет указывать выходную точку AS (адрес маршрутизатора) для достижения данных направлений, путем установки в LSA поля forwarding address, т.е. адрес соответствующего маршрутизатора.

При описании предыдущих примеров для простоты предполагалось, что в каждом направлении и к каждому получателю ведет единственный маршрут. Однако, на практике, к каждому адресату может вести множество равноценных маршрутов, при этом все маршруты учитываются и могут быть использованы. При наличии множества равноценных путей маршрутизатор может иметь несколько вариантов значений next hop (следующий маршрутизатор) для каждого маршрута. Протокол OSPF позволяет объединять смежные сети и хосты в группы. Такая группа вместе с маршрутизаторами, имеющими интерфейс в одну из включенных в группу сетей, называется областью - area. В каждой области работает своя независимая копия алгоритма маршрутизации link-state. Это означает, что в каждой области существует своя база каналов и соответствующий ей граф связей, так же как это было описано в предыдущих примерах.

Топология области не передается за ее пределы и наоборот, внутренние маршрутизаторы области не знают ничего о топологии за пределами данной области. Такая локализация сведений о топологии позволяет существенно снизить объем служебного трафика протокола по сравнению с ситуацией, когда вся AS является единым доменом link-state, т.е. состоит из одной области. Как было отмечено ранее, каждая область обладает своей топологией, т.е. маршрутизаторы внутри AS в данном случае содержат отдельные базы данных для каждой области, с которой данный маршрутизатор соединен, а один маршрутизатор может участвовать в нескольких областях. Маршрутизаторы, имеющие интерфейсы в несколько областей, называют граничными маршрутизаторами областей - area border router. Два маршрутизатора, относящиеся к одной области имеют для этой области идентичные базы каналов.

Маршрутизация в AS осуществляется на двух уровнях в зависимости от местоположения отправителя и получателя. Если оба участника находятся в одной области, используется внутридоменная маршрутизация (intra-area routing), при расположении отправителя и получателя в разных областях применяется междоменная маршрутизация (inter-area routing). При внутридоменной маршрутизации используются только сведения, полученные из данной области. Такое решение предохраняет область от использования некорректных маршрутных данных, которые могут быть получены извне. При описании междоменной маршрутизации, водится понятие «Магистрали».

Магистраль OSPF (backbone) представляет собой специальную область OSPF Area 0 (ее часто обозначают как Area 0.0.0.0, поскольку в OSPF идентификаторы областей обычно записывают в формате IP-адресов). Магистраль OSPF всегда включает все граничные маршрутизаторы областей. Магистраль отвечает за распространение маршрутной информации между остальными (non-backbone) областями и должна обеспечивать смежность (contiguous ). При этом не обязательно физическое соседство маршрутизаторов – магистральные соединения могут организовываться и поддерживаться с помощью настройки виртуальных соединений.

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

Алгоритм маршрутизации обеспечивает нахождение набора сегментов пути с минимальной стоимостью суммарного маршрута. Такой подход позволяет представить AS как систему с топологией «звезда», имеющую в центре концентратор-магистраль (backbone hub), к которому подключены все остальные области автономной системы. Топология магистральной области определяет пути между областями. Для более эффективной организации магистральных путей могут использоваться виртуальные соединения. Это позволяет администратору управлять направлениями передачи междоменного трафика. Граничный маршрутизатор для отправки пакетов из области отправителя определяется так же, как выбираются маршрутизаторы, анонсирующие внешние пути. Каждый граничный маршрутизатор в области объявляет в эту область стоимость доставки во внешние по отношению к данной области сети. После расчета дерева SPF для области, маршруты ко всем внешним получателям рассчитываются путем проверки объявлений от граничных маршрутизаторов области.

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

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

Граничные маршрутизаторы областей (Area border router) - маршрутизаторы, подключенные к нескольким областям. На граничных маршрутизаторах областей используется несколько копий базового алгоритма маршрутизации – по одной копии на каждую подключенную к маршрутизатору область. Граничные маршрутизаторы областей собирают сведения о топологии подключенных областей для передачи этих сведений в магистральную область. Магистраль распространяет полученную информацию между всеми областями.

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

Граничные маршрутизаторы AS (AS boundary router) - маршрутизаторы, обменивающимися маршрутными данными с маршрутизаторами других AS. Такие маршрутизаторы анонсируют внешние маршрутные данные в автономную систему. Пути ко всем граничным маршрутизаторам AS известны каждому маршрутизатору в автономной системе. Эта классификация никак не связана с предыдущими типами – граничными маршрутизаторами AS могут быть внутренние маршрутизаторы или граничные маршрутизаторы областей, а также магистральные маршрутизаторы.

Рассмотрим пример конфигурации областей. Первая область включает сети N1 - N4 и подключенные к ним маршрутизаторы RT1 - RT4. Во вторую область входят сети N6 - N8 и маршрутизаторы RT7, RT8, RT10, RT11.

Третья область состоит из сетей N9 - N11 и хоста H1 вместе с подключенными к ним маршрутизаторами RT9, RT11 и RT12. Третья область настроена так, что сети N9 - N11 и хост H1 группируются в один маршрут при анонсировании внешних по отношению к данной области путей. При этом результирующая стоимость такого маршрута (анонса) равна наибольшему значению стоимости сети входящей в этот составной (агрегированный) маршрут. Т.е. RT11 объявляет сети N11, N9, N10 и H1, указывая стоимость 11 =1+10, как максимальное значение соответствующее маршруту к Н1 внутри области.

На схеме маршрутизаторы RT1, RT2, RT5, RT6, RT8, RT9 и RT12 являются внутренними, RT3, RT4, RT7, RT10 и RT11 – граничными маршрутизаторами областей, а RT5 и RT7 – граничными маршрутизаторами AS.

В таблице показана база данных о каналах для области 1. Эта таблица полностью описывает внутридоменную маршрутизацию (т.е. маршруты внутри области). В таблице также приведено полное представление внешних сетей для двух внутренних маршрутизаторов RT1 и RT2. Ответственность за анонсирование в области 1 расстояний до всех внешних адресатов ложится на граничные маршрутизаторы области - RT3 и RT4. Маршрутизаторы RT3 и RT4 должны также анонсировать в область 1 местоположение граничных маршрутизаторов AS RT5 и RT7. И, наконец, внешние по отношению к AS анонсы LSA от маршрутизаторов RT5 и RT7 рассылаются с использованием лавинной маршрутизации через всю AS и, в частности, через область 1. Эти LSA включаются в базу данных области 1 и дают маршруты в сети N12 - N15.

Граф связей области 1 (Area 1)

RT1

RT2

RT3

RT4

RT5

RT7

N3

RT1

 

 

 

 

 

 

0

RT2

 

 

 

 

 

 

0

RT3

 

 

 

 

 

 

0

RT4

 

 

 

 

 

 

0

RT5

 

 

14

8

 

 

 

RT7

 

 

20

14

 

 

 

N1

3

 

 

 

 

 

 

N2

 

3

 

 

 

 

 

N3

1

1

1

1

 

 

 

N4

 

 

2

 

 

 

 

Ia, Ib

 

 

20

27

 

 

 

N6

 

 

16

15

 

 

 

N7

 

 

20

19

 

 

 

N8

 

 

18

18

 

 

 

N9-11, H1

 

 

29=8+7+3+11

36

 

 

 

N12

 

 

 

 

8

2

 

N13

 

 

 

 

8

 

 

N14

 

 

 

 

8

 

 

N15

 

 

 

 

 

9

 

Маршрутизаторы RT3 и RT4 также будут анонсировать топологию области 1 для передачи в магистраль. Анонсы LSA от этих маршрутизаторов показаны в следующей таблице. Эти анонсы показывают, какие сети включены в область 1 (N1 - N4) и указывают дистанцию до этих сетей от маршрутизаторов RT3 и RT4, соответственно.

Network

RT3 adv.

RT4 adv.

N1

4

4

N2

4

4

N3

1

1

N4

2

3

Рассмотрим базу данных о состоянии каналов для магистральной области. База, должна содержать записи о магистральных маршрутизаторах. Маршрутизатор RT11 является магистральным, поскольку он подключен к двум областям. Для создания магистрали между маршрутизаторами R10 и R11 организовано виртуальное соединение. Граничные маршрутизаторы областей RT3, RT4, RT7, RT10 и RT11 собирают маршрутные сведения от своих областей, не относящихся к магистрали для распространения этих данных через магистраль AS. Для третьей области настроена группировка сетей N9 - N11 и хоста H1 в один маршрут. Этим обусловлена общая запись для сетей N9 - N11 и хоста H1. Маршрутизаторы RT5 и RT7 являются пограничными для AS, и полученная от них внешняя маршрутная информация также заносится в базу данных. Таким образом,  таблица базы данных магистральной области имеет вид:

 

RT3

RT4

RT5

RT6

RT7

RT10

RT11

RT3

 

 

 

6

 

 

 

RT4

 

 

8

 

 

 

 

RT5

 

8

 

6

6

 

 

RT6

8

 

7

 

 

5

 

RT7

 

 

6

 

 

 

 

RT10

 

 

 

7

 

 

2

RT11

3

 

 

 

 

3

 

N1

4

4

 

 

 

 

 

N2

4

4

 

 

 

 

 

N3

1

1

 

 

 

 

 

N4

2

3

 

 

 

 

 

Ia

 

 

 

 

 

5

 

Ib

 

 

 

7

 

 

 

N6

 

 

 

 

1

1

3

N7

 

 

 

 

5

5

7

N8

 

 

 

 

4

3

2

N9-11, H1

 

 

 

 

 

 

11

N12

 

 

8

 

2

 

 

N13

 

 

8

 

 

 

 

N14

 

 

8

 

 

 

 

N15

 

 

 

 

9

 

 

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

Рассмотрим в качестве примера маршрутизаторы RT3 и RT4, тогда расчет будет включать следующие этапы:

- Вначале рассчитывается дерево SPF для магистрали. Этот расчет дает дистанции до всех остальных граничных маршрутизаторов областей. Определяются также дистанции до сетей (Ia и Ib) и граничных маршрутизаторов AS (RT5 и RT7), входящих в магистраль. Результаты расчетов приведены в таблице:

 

dist from RT3

dist from RT4

to RT3

-

21

to RT4

22=8+6+8

-

to RT5

14 =8+6

8

to RT7

20 =8+6+6

14

to RT10

15=8+7

22

to RT11

18=8+7+3

25

to Ia

20=8+7+5

27

to Ib

15=8+7

22

- После этого, просматриваются объявления областей от граничных маршрутизаторов RT3 и RT4 для определения дистанции до всех маршрутизаторов за пределами данной области. Эти данные анонсируются внутри области маршрутизаторами RT3 и RT4. Анонсы, которые маршрутизаторы RT3 и RT4 будут передавать в область 1, показаны следующей таблице. Обратите внимание, в приведенной таблице предполагается группировка интерфейсов Ia и Ib в один анонс LSA

Destination

RT3 adv.

RT4 adv.

Ia, Ib

20=8+7+5

27

N6

16=8+7+1

15

N7

20=8+7+1+4

19

N8

18=8+7+3

18

N9 - N11, H1

29=8+7+3+1+10

36

RT5

14=8+6

8

RT7

20=8+6+6

14=8+6

Информация, импортируемая в область 1 маршрутизаторами RT3 и RT4, позволяет внутренним маршрутизаторам (например, RT1) выбирать граничный маршрутизатор области более эффективно. Маршрутизатор RT1 будет использовать RT4 для трафика в сеть N6, RT3 – для сети N10, а для трафика в сеть N8 будут использоваться оба маршрутизатора с распределением нагрузки. Маршрутизатор RT1 таким же способом может определить кратчайший путь до граничных маршрутизаторов AS (RT5 и RT7). Просматривая в маршрутизаторах RT5 и RT7 записи AS-external-LSA, маршрутизатор RT1 может выбирать между RT5 и RT7 при пересылке пакетов адресатам из других AS (одна из сетей N12 - N15). При разрыве соединения между маршрутизаторами RT6 и RT10 приведет к разрыву магистрали, для обеспечения резервного маршрута необходимо организовать виртуальное соединение между маршрутизаторами RT7 и RT10. Т.е. в конфигурации указанных маршрутизаторов явно указать адреса интерфейсов маршрутизаторов (RT7 указывает RT10 и наоборот), для осуществления взаимодействия через сеть N6.

Протокол OSPF работает непосредственно на базе IP, используя идентификатор протокола 89 (0х59). Пакеты OSPF достаточно компакты, и в общем случае не требуют какой-либо дополнительной фрагментации/сборки. Пакеты протокола OSPF всегда должны передаваться с нулевым значением поля IP TOS, так как это поле в дальнейшем используется самим протоколом OSPF.

Типы пакетов OSPF:

1. Hello - обнаружение и поддержка соседства

2. Database Description - объявление содержимого БД состояния связей

3. Link State Request - запрос состояния канала

4. Link State Update - обновление БД состояния связей

5. Link State Ack - подтверждение приема данных лавинной рассылки

Протокол OSPF Hello использует пакеты Hello для организации и поддержки соседских отношений. Пакеты Database Description (описание базы данных) и Link State Request (запрос состояния канала) служат для поддержки отношений смежности. Гарантированный обмен обновлениями OSPF основан на обмене пакетами Link State Update (обновление состояния канала) Link State Acknowledgment (подтверждение приема обновления). Каждый пакет Link State Update содержит набор новых анонсов состояния каналов (LSA) на один интервал (hop) удаленных от пункта генерации анонса. Один пакет Link State Update может содержать анонсы LSA от нескольких маршрутизаторов. Каждая запись LSA помечается идентификатором создавшего анонс маршрутизатора и сопровождается контрольной суммой содержимого. В каждой записи LSA имеется также поле типа, возможные варианты этого поля:

Тип 1. Router-LSA. Генерируются всеми маршрутизаторами. Этот тип LSA описывает состояния интерфейсов маршрутизатора в область. Анонс рассылается в лавинном режиме внутри области.

Тип 2. Network-LSA. Генерируется выделенным маршрутизатором DR для широковещательных и NBMA-сетей. Этот тип LSA включает список маршрутизаторов, подключенных к сети. Рассылается в лавинном режиме внутри области.

Тип 3. Summary-LSA. Генерируется граничными маршрутизаторами областей и рассылается в лавинном режиме в пределах связанной с LSA области. Каждый анонс summary-LSA описывает маршрут к адресату за пределами данной области, но внутри данной AS (междоменный маршрут). Тип 3 summary-LSA описывает маршруты в сети, а тип 4 – к граничным маршрутизаторам AS.

Тип 4. Summary-LSA – маршрут к граничным маршрутизаторам AS.

Тип 5. AS-external-LSA. Генерируется граничными маршрутизаторами AS и

рассылается по всей автономной системе. Каждый анонс AS-external-LSA описывает маршрут к адресатам в другой AS. Принятые по умолчанию маршрутизаторы AS также могут описываться в AS-external-LSA.

Пакеты протокола OSPF (за исключением пакетов Hello) передаются только между смежными маршрутизаторами. Это означает, что все пакеты протокола OSPF проходят только один интервал между маршрутизаторами (hop), за исключением тех ситуаций, когда смежность поддерживается через виртуальные соединения (virtual adjacency). IP-адрес отправителя пакета OSPF является адресом одного из смежных маршрутизаторов, а IP-адрес получателя является адресом второго из смежных маршрутизаторов или групповым IP-адресом.

Формат заголовка пакета OSPF:

Version - номер версии протокола OSPF. По умолчанию 2.

Type - тип пакета OSPF  (Hello, Database Description и т.д.)

Packet length - размер пакета OSPF в байтах с учетом стандартного заголовка OSPF.

Router ID - идентификатор Router ID отправителя пакета

Area ID - 32-битовый идентификатор области, к которой относится пакет. Все пакеты OSPF связываются с определенной (и единственной) областью. Пакеты, передаваемые через виртуальные каналы, помечают идентификатором магистральной области 0.0.0.0.

Checksum - стандартная контрольная сумма IP для всего пакета, начиная с заголовка OSPF, но без учета 64-битового поля аутентификации. Если длина пакета не равна целому числу 16-битовых слов, пакет дополняется справа соответствующим числом нулей до вычисления контрольной суммы. Определение контрольной суммы рассматривается как часть процесса аутентификации, но для некоторых типов аутентификации подсчет контрольной опускается.

AuType - определяет используемую для пакета процедуру аутентификации.

Authentication - 64-битовое поле, используемое схемой аутентификации.

Пакет Hello

Пакеты Hello относятся к типу 1 и передаются периодически во все интерфейсы (включая виртуальные каналы) для организации и поддержки отношений c соседними маршрутизаторами. Кроме того, пакеты Hello рассылаются по групповым адресам в сетях, обеспечивающих такую возможность, для динамического обнаружения соседних маршрутизаторов. Для всех маршрутизаторов, подключенных к общей сети, должны быть согласованы параметры Network mask, HelloInterval и RouterDeadInterval. Эти параметры указываются в пакете Hello, поэтому рассогласование может влиять на формирование соседских отношений.

Network mask - маска сети, связанной с интерфейсом.

Options - дополнительные возможности, поддерживаемые маршрутизатором.

HelloInterval - число секунд между передачей пакетов Hello.

Rtr Pri - значение Router Priority для маршрутизатора, используемое при выборе (Backup) DR. Нулевое значение блокирует возможность стать (Backup) DR.

RouterDeadInterval - число секунд до объявления «затихшего» маршрутизатора неработоспособным.

Designated Router - указывает выделенный маршрутизатор DR для данной сети с точки зрения передающего маршрутизатора. DR идентифицируется по IP-адресу в сети. Если маршрутизатора DR нет, поле имеет значение 0.0.0.0.

Backup Designated Router - идентифицирует маршрутизатор Backup DR с точки зрения передающего пакет маршрутизатора. Backup DR идентифицируется адресом IP для интерфейса в данную сеть. При отсутствии Backup DR это поле содержит значение 0.0.0.0.

Neighbor - значения Router ID для каждого маршрутизатора, чьи пакеты Hello были недавно (RouterDeadInterval секунд) видны в сети.

Поле Options

Поле опций OSPF присутствует в пакетах Hello, DD и всех типах LSA. Это поле позволяет маршрутизаторам OSPF поддерживать (или не поддерживать) дополнительные возможности и сообщать уровень поддержки другим маршрутизаторам OSPF. Этот механизм позволяет смешивать разные маршрутизаторы в домене маршрутизации OSPF. При использовании в пакетах Hello поле Options позволяет маршрутизатору отказаться от соседа при рассогласовании возможностей. Зная о возможностях соседей из пакетов DD, маршрутизатор может не передавать некоторые анонсы LSA соседям, не поддерживающим соответствующих функций. И, наконец, перечисление возможностей в LSA позволяет маршрутизаторам пересылать трафик в обход маршрутизаторов с ограниченными возможностями, исключая такие маршрутизаторы при расчете путей для таблицы маршрутизации.

В поле OSPF Options выделены 5 битов, хотя рассматриваемая спецификация (OSPF v2) полностью описывает только один из них (E). Краткое описание всех флагов приведено ниже. Маршрутизатор должен сбрасывать в 0 нераспознанные биты поля Options при передаче пакетов Hello и DD, а также при генерации LSA. Маршрутизатор, получивший неизвестные биты опций в пакетах Hello и DD или анонсах LSA, должен игнорировать эти биты, обрабатывая известные флаги в штатном режиме.

E - описывает способ лавинной рассылки AS-external-LSA

MC - этот бит устанавливается при рассылке multicast дейтаграмм IP.

N/P - флаг обработки LSA типа 7.

EA - флаг приема и пересылки анонсов External-Attributes-LSA.

DC - флаг обработки demand circuit.

Пакет Database Description

Пакеты DD относятся в OSPF к типу 2. Обмен этими пакетами происходит при инициализации отношений смежности. Пакеты описывают содержимое базы данных о каналах. Для описания базы данных может использоваться множество пакетов с использованием процедуры poll-response (опрос-отклик). Один из маршрутизаторов является ведущим (master), а второй – ведомым (slave). Ведущий маршрутизатор передает пакеты DD, которые подтверждаются пакетами DD от ведомого маршрутизатора. Отклики связываются с опросом через порядковые номера пакетов DD. Формат пакетов DD очень похож на формат пакетов LSR и LSAck. Все эти три типа пакетов содержат список элементов, каждый из которых описывает часть базы данных о каналах маршрутизатора.

Interface MTU - hазмер (в байтах) максимальной дейтаграммы IP, которая может быть передана через интерфейс без фрагментации. В пакетах DD, передаваемых через виртуальные каналы, должно устанавливаться Interface MTU = 0.

Options - lополнительные возможности маршрутизатора.

I - бит Init, устанавливаемый для первого (по порядку) пакета DD.

M - бит More, указывающий на присутствие других (последующих) пакетов DD.

MS - бит Master/Slave, определяющий отношения маршрутизаторов в процессе Database Exchange (MS=1 – ведущий, 0 – ведомый).

DD sequence number - используется для нумерации пакетов DD. Начальное значение (указывается флагом Init) должно быть уникальным. Далее порядковый номер DD увеличивается на 1 для каждого пакета вплоть до передачи всей базы данных. Остальная часть пакета содержит (возможно неполный) список частей базы данных link-state. Каждая запись LSA в базе описывается заголовком LSA, содержащим все данные для уникальной идентификации LSA и текущего экземпляра.

Пакет Link State Request

Пакеты LSR относятся в OSPF к типу 3. После обмена пакетами DD с соседом маршрутизатор может понять, что часть его базы данных устарела. Пакеты LSR служат для запроса обновленных фрагментов базы данных соседнего маршрутизатора. При обновлении может использоваться множество пакетов LSR. Маршрутизатор, передающий запрос LSR, должен помнить конкретный экземпляр запрашиваемого фрагмента базы данных. Экземпляры идентифицируются порядковым номером, возрастом и контрольной суммой, но эти поля не указываются в самом пакете LSR. Маршрутизатор в ответ на запрос может получить даже более свежий (по сравнению с запрошенным) экземпляр.

Каждый запрошенный анонс LSA указывается его типом, а также значениями Link State ID и Advertising Router. Эти параметры уникально описывают LSA, но не конкретный экземпляр анонса. Пакеты LSR используются для запроса последнего экземпляра анонса

Пакет Link State Update

Пакеты LSU относятся в OSPF к типу 4 и используются для лавинной рассылки LSA. Каждый пакет LSU передает набор LSA на один интервал от точки их происхождения. В одном пакете может содержаться множество LSA. Пакеты LSU являются групповыми для сетей поддерживающих широковещательную и групповую адресацию. Для обеспечения надежности процедуры лавинной рассылки, отправленные LSA, подтверждаются в пакетах LSAck. Если требуется повтор передачи некоторых LSA, они всегда передаются соседу напрямую.

# LSAs - число LSA, включенных в этот пакет обновления. Тело пакетов LSU содержит список LSA, начинающихся со стандартного 20-байтового заголовка LSA.

Пакет Link State Acknowledgment

Пакеты LSAck относятся в OSPF к типу 5. Для обеспечения надежности лавинной рассылки LSA, все анонсы должны подтверждаться в явной форме. Подтверждения обеспечиваются с помощью пакетов LSAck, каждый из которых может подтверждать прием множества LSA. В зависимости от состояния передающего интерфейса и отправителя соответствующего пакета LSU, пакеты LSAck передаются по групповым (AllSPFRouters или AllDRouters) или индивидуальным адресам.  Формат пакетов подтверждения поход на формат пакетов DD. Тело пакета просто содержит список заголовков подтверждаемых LSA. Каждый подтверждаемый анонс LSA описывается заголовком LSA, содержащим все сведения для идентификации LSA и текущего экземпляра.

Форматы LSA.

Как отмечалось ранее, существуют 5 типов объявлений LSA. Каждый анонс LSA начинается со стандартного 20-байтов ого заголовка LSA. Каждый LSA описывает часть маршрутного домена OSPF. Каждый маршрутизатор порождает router-LSA. В дополнение к этому, при выборах маршрутизатора на должность Designated Router, такой маршрутизатор порождает network-LSA. Однако, маршрутизаторы могут порождать и другие типы LSA. Для всех LSA выполняется лавинная рассылка через домен маршрутизации OSPF. Алгоритм лавинной рассылки является надежным способом обеспечения доставки всем маршрутизаторам одного набора LSA. Рассылаемый набор LSA формирует базу данных о состоянии каналов. Из базы данных о состоянии каналов каждый маршрутизатор создает дерево кратчайших путей, представляя себя корнем этого дерева. Полученная картина связей, в результате, формирует таблицу маршрутизации данного маршрутизатора.

Заголовок LSA.

Все записи LSA начинаются с однотипного заголовка размером 20 байтов. Информации из заголовка достаточно для уникальной идентификации LSA (LS type, Link State ID и Advertising Router). В области маршрутизации может одновременно существовать множество экземпляров LSA. Для определения последнего из них служат поля LS age, LS sequence number и LS checksum из заголовка LSA.

LS age - время (в секундах) с момента генерации LSA

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

LS type - тип LSA, определяющий формат анонса. (1 Router-LSA, 2 Network-LSA и т.д. как описано выше)

Link State ID - это поле идентифицирует часть сети, описываемую анонсом LSA. Содержимое поля зависит от типа LSA. Например, в network-LSA поле Link State ID содержит IP-адрес интерфейса маршрутизатора DR для данной сети (по этому адресу определяется номер сети IP).

Advertising Router - значение Router ID маршрутизатора-источника LSA (в network-LSA это поле содержит Router ID маршрутизатора DR).

LS sequence number - порядковый номер служит для обнаружения дубликатов и старых LSA. Следующий экземпляр LSA имеет следующий порядковый номер.

LS checksum - контрольная сумма Флэтчера (Fletcher) для всего содержимого LSA, включая заголовок LSA, но без учета поля возраста LS.

Length - размер LSA в байтах с учетом 20-байтового заголовка LSA.

Пакет Router-LSA

Router-LSA относятся к типу 1 и генерируются каждым маршрутизатором области. Эти LSA описывают состояние и стоимость каналов (интерфейсов) маршрутизатора в область. Все каналы маршрутизатора в область должны описываться в одном анонсе router-LSA. В router-LSA поле Link State ID содержит OSPF Router ID. Анонсы Router-LSA рассылаются в пределах области.

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

E - этот флаг устанавливается для граничных маршрутизаторов AS (E - external).

B - этот флаг устанавливается для граничных маршрутизаторов области (B - border).

# links - число каналов маршрутизатора, описываемых в LSA (должно совпадать в числом интерфейсов маршрутизатора в область).

Следующие поля используются для описания каждого канала (т. е., интерфейса) маршрутизатора: каждый канал имеет определенный тип (поле Type) – канал в транзитную сеть, к другому маршрутизатору или в тупиковую сеть. Значения всех остальных полей, описывающих канал маршрутизатора, зависят от типа канала. Например, каждый канал имеет связанное с ним 32-битовое поле Link Data. Для каналов в тупиковые сети это поле содержит маску адреса, а для остальных типов – IP-адрес интерфейса маршрутизатора.

Type - краткое описание канала маршрутизатора

При этом, маршруты к хостам классифицируются как каналы в тупиковые сети с

маской 0xffffffff (255.255.255.255)

Link ID - идентифицирует объект, к которому подключен маршрутизатор. Содержимое поля зависит от типа соединения (поле Type). При соединении с объектом, генерирующим LSA, поле Link ID содержит значение Link State ID из LSA соседа. Это обеспечивает ключ поиска LSA соседей в базе данных при расчете таблицы маршрутов.

Link Data - содержимое этого поля также зависит от типа соединения (поле Type). Для соединений с тупиковыми сетями поле Link Data содержит маску IP, для безадресных соединений point-to-point – значение ifIndex (MIB-II для интерфейса RFC 1213), а для остальных типов соединений – IP-адрес интерфейса маршрутизатора. Это поле обеспечивает последнюю часть информации, требуемой для построения таблицы маршрутов когда рассчитывается IP-адрес следующего маршрутизатора (next hop).

# TOS - число различных метрик TOS, заданных для данного соединения, без учета требуемой метрики канала (обозначается как метрика TOS 0, RFC 1583). Например, при отсутствии дополнительной метрики TOS это поле имеет значение 0.

Metric - стоимость использования этого канала маршрутизатора. В анонс может также включаться дополнительная информация, связанная с TOS и используемая для совместимости с предыдущими версиями OSPF (RFC 1583). Для каждого канала, которому нужна информация TOS, могут использоваться следующие поля:

TOS - тип сервиса (Type of Service), к которому относится метрика.

TOS metric - связанная с TOS метрическая информация.

Пакет Network-LSA

Network-LSA относятся к типу 2 и генерируются для каждой широковещательной и NBMA-сети в области, поддерживающей более 1 маршрутизатора. Анонсы network-LSA порождаются выделенным маршрутизатором DR и описывают все подключенные к сети маршрутизаторы, включая DR. Поле Link State ID содержит IP-адрес интерфейса DR. Дистанция от сети до всех подключенных маршрутизаторов равна 0, поэтому поле метрики не включается в network-LSA.

Network Mask - адресная маска сети (например, IP-сеть класса A имеет маску 0xff000000 т.е. 255.0.0.0).

Attached Router - идентификаторы Router ID каждого из подключенных к сети маршрутизаторов. Реально перечисляются только маршрутизаторы, установившие полные отношения смежности с DR, и сам маршрутизатор DR. Число включенных в список маршрутизаторов можно определить из поля длины в заголовке LSA.

Пакет Summary-LSA

Summary-LSA относятся к типам 3 и 4 и генерируются граничными маршрутизаторами областей и описывают междоменные маршруты. Анонсы Summary-LSA типа 3 используются в тех случаях, когда объявляется адрес сети. В этом случае поле Link State ID содержит IP-номер сети (при необходимости Link State ID может включать также биты адреса хоста). Когда объявляется адрес граничного маршрутизатор AS, используется summary-LSA типа 4 и поле Link State ID содержит OSPF Router ID граничного маршрутизатора AS. За исключением различий в использовании поля Link State ID анонсы summary-LSA типов 3 и 4 идентичны. Для тупиковых областей summary-LSA типа 3 могут также использоваться для описания принятых по умолчанию маршрутов (по областям). Такие маршруты используются в тупиковых областях взамен лавинной рассылки полного набора внешних маршрутов. При описании используемого по умолчанию маршрута поле Link State ID в summary- LSA всегда содержит значение DefaultDestination (0.0.0.0),а Network Mask = 0.0.0.0.

Network Mask - для summary-LSA типа 3 это поле показывает маску сети сообщаемого маршрута. Например, при анонсировании маршрута в сеть класса A будет использоваться значение 0xff000000. Это поле не используется в summary-LSA типа 4 и должно иметь нулевое значение.

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

TOS - тип сервиса (Type of Service), к которому относится метрика. TOS metric - связанная с TOS метрическая информация

Пакет AS-external- LSA

AS-external-LSA относятся к типу 5 и генерируются граничными маршрутизаторами AS для описания внешних маршрутов из AS. Анонсы AS-external-LSA обычно описывают маршрут к отдельному адресату (сети). Для таких LSA поле Link State ID содержит IP-номер сети (при необходимости в него могут также включаться некоторые биты адреса хоста). Анонсы AS-external-LSA также используются для описания принятых по умолчанию маршрутов (эти маршруты применяются в случае отсутствия другого пути к адресату). В таких случаях поле Link State ID всегда содержит значение DefaultDestination (0.0.0.0), а поле Network Mask имеет значение 0.0.0.0.

Network Mask - fдресная маска IP для анонсируемого получателя. Например, для сети класса A маска имеет значение 0xff000000.

E - тип внешней метрики. E=1 говорит о внешней метрике типа 2, которая заведомо больше метрики любого из внутренних путей. E=0 говорит о внешней метрике типа 1, использующей такие же единицы, как и внутренняя метрика link state.

Metric - стоимость маршрута. Интерпретация этого поля зависит индикации типа внешней метрики (бит E).

Forwarding address - пакеты данных для анонсируемого получателя будут пересылаться по этому адресу. Если Forwarding address = 0.0.0.0, пакеты будут пересылаться породившему LSA маршрутизатору (т. е., граничному маршрутизатору AS).

External Route Tag - 32-битовое поле, подключаемое к внешним маршрутам. Протокол OSPF сам по себе не использует это поле, оно может применяться при обмене информацией между граничными маршрутизаторами AS.

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

TOS - тип обслуживания для следующих полей.

E - используется для обратной совместимости.

TOS metric - связанная с TOS метрика.

Forwarding address - используется для обратной совместимости.

External Route Tag – используется для обратной совместимости.

При передаче информации о маршрутах OSPF связывает адресную маску IP с каждым анонсируемым маршрутом. Маска показывает диапазон адресов, описываемых данным маршрутом. Например, summary-LSA для направления 128.185.0.0 с маской 0xffff0000 (255.255.0.0) на самом деле описывает маршрут для направлений в диапазоне 128.185.0.0 - 128.185.255.255. Аналогичным способом указываются маршруты к хостам – маска 0xffffffff (255.255.255.255) показывает наличие в подсети единственного адреса.

Включение масок в каждый анонсируемый маршрут позволяет использовать при распределении адресов маски переменной длины (variable-length subnetting). Это значит, что в одной IP-сети класса A, B или C может существовать множество подсетей различных размеров. Например, сеть 128.185.0.0 можно разбить на 62 подсети переменного размера: 15 подсетей по 4096, 15 подсетей по 256, и 32 подсети по 8 адресов. Для более эффективного объединения маршрутов на границе области можно указать диапазон адресов области. Каждый диапазон адресов задается парой [адрес, маска]. Это позволяет объединить множество разных сетей в общий диапазон адресов (как сеть делится на множество разных подсетей). Граничные маршрутизаторы областей будут агрегировать содержимое области (для передачи в магистраль) анонсируя один маршрут для каждого диапазона адресов. Стоимость для такого маршрута устанавливается равной максимальному значению стоимости сетей из данного диапазона адресов.

Например, сеть, разделенная на подсети IP, может быть настроена как единая область OSPF . В таких случаях можно обойтись единственным диапазоном адресов – номером сети класса A, B или C с соответствующей классу маской адреса. Внутри области может быть организовано любое число подсетей, однако за пределы области будет распространяться единственный маршрут, скрывающий факт разбиения на подсети. Стоимость такого маршрута, будет равна максимальной из стоимостей подсетей входящих в область.

В некоторых автономных системах основная часть базы данных о каналах может состоять из записей внешней маршрутной информации AS-external-LSA. Записи OSPF AS-external -LSA обычно рассылаются с использованием лавинной маршрутизации через всю AS. Однако протокол OSPF позволяет указать некоторые области как тупиковые (stub area) и анонсы AS-external-LSA не будут рассылаться в такие области или передаваться через них. Маршрутизация внешним по отношению к AS адресатам в таких системах базируется полностью на принятых по умолчанию для таких областей маршрутах. Выделение тупиковых областей позволяет уменьшить размер базы данных link-state и связанный с этим расход памяти для внутренних маршрутизаторов stub-областей. Чтобы воспользоваться преимуществами поддержки тупиковых областей OSPF, для таких областей следует обязательно задавать принятые по умолчанию маршруты. Для этого один или несколько граничных маршрутизаторов stub-области должны анонсировать принятый по умолчанию маршрут с помощью специального объявления - summary-LSA. Такие анонсы рассылаются с использованием лавинной маршрутизации внутри тупиковой области, не покидая ее пределов (принятый по умолчанию маршрут относится только к данной области). Заданный для использования по умолчанию маршрут будет применяться во всех случаях, когда адресат недоступен явно с использованием пути внутри области или между областями AS (т. е. адресат находится в другой автономной системе).

Область можно назначить тупиковой, когда существует единственный выход из данной области или когда точек выхода несколько, но для выбора следующего маршрутизатора не требуется принимать решение с учетом адреса внешнего получателя. Например, область 3 на схеме можно указать как тупиковую, поскольку весь внешний трафик этой области должен проходить через один граничный маршрутизатор RT11. Если область 3 указана как тупиковая, маршрутизатор RT11 будет анонсировать принятый по умолчанию маршрут для его распространения внутри области 3 (в анонсах summary-LSA) взамен лавинной рассылки анонсов AS-external-LSA для сетей N12 - N15 в область 3. Протокол OSPF обеспечивает оповещение всех маршрутизаторов области о тупиковом характере данной области – такое решение предотвращает ненужные лавинные рассылки анонсов AS-external-LSA. Существуют некоторые ограничения на использование stub-областей. Через такие области невозможно организовать виртуальные соединения и, кроме того, внутрь тупиковых областей не должны попадать граничные маршрутизаторы AS.

OSPF не предпринимает активных попыток восстановления распавшихся на части областей (area partition). В таких случаях просто каждый фрагмент области рассматривается как новая область и магистраль автономной системы обеспечивает маршрутизацию между новыми областями. Некоторые адресаты, для которых использовалась внутридоменная маршрутизация, могут после раздела потребовать междоменной маршрутизации. Однако для сохранения полной маршрутизации после разделения области диапазон адресов не должен разделяться на множество компонент, связанных с фрагментами области. Не должна делиться на части и магистраль. Если это произойдет, некоторые части AS перестанут быть доступными. Разорванную магистральную область можно собрать заново путем организации виртуальных соединений. Другой способ представления раздела областей основан на графах AS. Идентификаторы областей (Area ID) можно представить цветом ребер графа. Каждое ребро графа подключено к сети или является сетью point-to-point. В любом случае цвета графов отображают идентификаторы областей. Группа ребер одного цвета, соединенных вершинами, представляет область. Если топология AS не изменяется, граф будет иметь несколько цветных областей для различных идентификаторов Area ID. Когда топология AS изменяется, одна из областей может быть разделена на части. В этом случае граф AS будет включать несколько областей одного цвета (Area ID). Маршрутизация в AS будет сохраняться до тех пор, пока такие области одного цвета могут быть соединены через единую магистральную область.

Как было отмечено ранее, в каждой области работает отдельная копия базового алгоритма маршрутизации OSPF . Маршрутизаторы с интерфейсами, подключенными в разные области, поддерживают соответствующее число копий алгоритма маршрутизации. При активизации маршрутизатора, вначале инициализируются структуры данных протокола,  после инициализации маршрутизатор ждет от протоколов нижележащих уровней сообщений об активности интерфейсов. Далее маршрутизатор отыскивает соседей с помощью протокола OSPF Hello – для этого соседям передаются пакеты Hello и в ответ должны также прийти пакеты Hello. В широковещательных сетях и сетях point-to-point маршрутизаторы динамически определяют соседей, передавая пакеты Hello по групповом адресу AllSPFRouters. В сетях без поддержки широковещания обнаружение соседей может потребовать дополнительной настройки маршрутизатора. В широковещательных сетях и сетях NBMA протокол Hello также указывает выделенный маршрутизатор (Designated Router или DR).

Далее маршрутизатор пытаться установить отношения смежности (adjacency) с обнаруженными соседями. Пары смежных маршрутизаторов синхронизируют между собой базы данных о каналах. В широковещательных сетях и сетях NBMA, выделенный маршрутизатор DR определяет, какие маршрутизаторы должны быть смежными. Отношения смежности определяют распространение маршрутной информации – обновления маршрутных данных передаются только смежным маршрутизаторам. Маршрутизатор периодически анонсирует свое состояние, называемое также состоянием канала - link state. При изменении состояния маршрутизатора изменяется и состояние канала. Отношения смежности маршрутизаторов отражаются в содержимом анонсов LSA. Связь между отношениями смежности и состояниями каналов позволяет достаточно быстро обнаруживать неработающие  маршрутизаторы.

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

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

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

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

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

Протокол Hello отвечает за организацию и поддержку отношений смежности между соседними маршрутизаторами, а также обеспечивает двухстороннюю связь между соседями. Пакеты Hello периодически передаются через все интерфейсы маршрутизатора. Наличие двухсторонней связи устанавливается, когда маршрутизатор видит свой идентификатор в пакете Hello, полученном  от соседа. В широковещательных и NBMA-сетях протокол Hello используется также для выбора маршрутизатора DR для данной сети. Работа протокола Hello различается в широковещательных сетях, сетях NBMA и Point-to-MultiPoint. В широковещательных сетях каждый маршрутизатор анонсирует себя, периодически передавая пакеты Hello с использованием групповой адресации. Это позволяет динамически обнаруживать присутствие соседей. Такие пакеты Hello содержат представление маршрутизатора о тождественности DR и список маршрутизаторов, чьи пакеты Hello были приняты недавно. В сетях NBMA требуется дополнительная настройка для обеспечения работы протокола Hello. В сетях Point-to-MultiPoint маршрутизатор передает пакеты Hello всем соседям, с которыми он может взаимодействовать напрямую. Поиск таких соседей может осуществляться динамически с использованием протоколов типа Inverse ARP (RFC 1293) или по статически установленным записям о соседях.

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

Протокол OSPF требует синхронизировать лишь базы данных смежных маршрутизаторов. При этом, процесс синхронизации начинается сразу после попытки маршрутизаторов организовать отношения смежности. Каждый маршрутизатор описывает свою базу каналов, посылая соседу последовательность пакетов Database Description, каждый из которых описывает набор LSA, включенных в базу данных маршрутизатора. Когда сосед видит анонсы LSA, более новые по сравнению с имеющейся у него копией, он делает отметку о необходимости запроса новейших LSA. Процесс обмена пакетами Database Description называется обменом базами данных (Database Exchange Process ). Во время обмена между маршрутизаторами организуются отношения ведущий – ведомый (master/slave). Каждый пакет Database Description имеет порядковый номер. Переданные ведущим маршрутизатором пакеты Database Description подтверждаются ведомой стороной с возвратом порядкового номера подтверждаемого пакета. Передаваемые в обоих направлениях пакеты содержат резюме данных о состоянии соединений (link state data). Ведущий маршрутизатор может повторно передавать пакеты Database Description с использованием фиксированного интервала, задаваемого для каждого интерфейса административно с помощью параметра RxmtInterval.

Каждый пакет Database Description содержит флаг индикации наличия последующих пакетов – бит M. Процесс Database Exchange завершается, когда маршрутизатор принял и передал пакет Database Description с нулевым значением бита M. В процессе Database Exchange и после его завершения каждый маршрутизатор имеет список LSA, для которых сосед имеет более свежие данные. Для запроса этой информации используются пакеты Link State Request. Если запрос не выполнен, пакет Link State Request передается повторно по истечении интервала RxmtInterval. После завершения процесса Database Exchange и выполнения всех запросов Link State базы данных считаются синхронизированными и маршрутизаторы маркируются как смежные (fully adjacent). С этого момента, отношения смежности являются полными и анонсируются в router-LSA обоих маршрутизаторов. Смежность использует механизм лавинной рассылки с самого начала процесса Database Exchange. Это упрощает синхронизацию баз данных и гарантирует ее завершение в разумные сроки.

Кроме установления отношений смежности, важным этапом взаимодействий на базе протокола OSPF является назачение выделенного маршрутизатора Disignated Router (DR). В каждой широковещательной или NBMA-сети существует выделенный маршрутизатор DR, выполняющий две основных задачи:

- Маршрутизатор DR генерирует анонсы network-LSA от имени сети. Эти LSA содержат список маршрутизаторов (включая и сам DR), подключенных в данный момент к сети. Идентификатором Link State ID для таких LSA является IP-адрес интерфейса маршрутизатора DR. Тогда, номер IP-сети вычисляется по этому адресу, используя адресную маску.

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

Маршрутизатор DR задается с помощью протокола Hello. Пакет Hello от маршрутизатора содержит значение Router Priority, настраиваемое для каждого интерфейса. В общем случае, перед началом работы, маршрутизатор проверяет наличие в сети маршрутизатора типа DR. Если такой маршрутизатор уже задан, он принимается, независимо от значения Router Priority. Такой подход осложняет прогноз тождественности DR, но избавляет от частой смены маршрутизатора DR. Если маршрутизатор DR еще не назначен, им становится данный маршрутизатор, если он имеет наивысшее в сети значение Router Priority.

Маршрутизатор DR является конечной точкой для множества смежных пар. Для оптимизации процедуры лавинной рассылки, в широковещательных сетях DR использует для передачи своих пакетов Link State Update Packets групповой адрес AllSPFRouters , вместо передачи пакетов каждому из смежных маршрутизаторов по отдельности.

В случае представления области в виде графа, маршрутизаторы помечаются своими идентификаторами (Router ID), а для обозначения транзитных сетей используются IP-адреса соответствующего маршрутизатора DR. Тогда, при смене маршрутизатора DR на графе это отражается как полная замена идентификаторов транзитных сетей. При такой смене сеть, и все подключенные к ней маршрутизаторы, будут генерировать новые анонсы LSA. В результате может теряться связность сети, пока не будут синхронизированы все базы данных. В результате потери связности может быть сгенерировано множество сообщений ICMP unreachable. По этим причинам замены DR-маршрутизатора не должны быть частыми. Параметр Router Priority следует устанавливать таким, чтобы наиболее надежный маршрутизатор сети в конце концов принимал на себя функции DR.

Для облегчения процесса перехода к новому маршрутизатору DR вводится понятие резервного DR-маршрутизатора (Backup Designated Router) для каждой широковещательной и NBMA-сети. Маршрутизатор Backup DR также является смежным со всеми маршрутизаторами сети и берет на себя функции выделенного маршрутизатора при сбое прежнего DR. Если в сети нет Backup DR, для назначения нового DR от этого маршрутизатора потребуется организовать отношения смежности со всеми остальными маршрутизаторами в сети. Частью этого процесса является синхронизация баз данных, которая может занимать достаточно много времени, в течение которого сеть будет недоступна для передачи данных. Наличие маршрутизатора Backup DR избавляет от необходимости формирования дополнительных отношений смежности, поскольку они уже существуют. Это уменьшает время простоя для транзитного трафика до момента времени, когда новые маршруты станут известны в результате лавинной рассылки новых LSA, анонсированных новый маршрутизатор DR.

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

Отношения смежности поддерживаются описанным выше механизмом как в сетях содержащих только DR, так и в сетях, содержащих DR + Backup DR. Как известно,  свойство смежности относится к сети, в которую оба маршрутизатора имеют подключенные интерфейсы. Если смежные маршрутизаторы имеют несколько общих сетей, между этими маршрутизаторами организуется соответствующее число отношений смежности.  Набор отношений смежности сети можно представить в форме ненаправленного графа. Вершины графа представляют маршрутизаторы, а ребра соединяют смежные маршрутизаторы между собой. Граф смежности описывает поток пакетов протокола маршрутизации и, в частности, пакетов Link State Update через AS. В зависимости от наличия в сети выделенного маршрутизатора DR возможны два варианта графа. В физических сетях «точка-точка», сетях Point-to- MultiPoint и виртуальных каналах соседние маршрутизаторы становятся смежными, если они могут обмениваться данными напрямую. В широковещательных и NBMA-сетях маршрутизаторы DR и Backup DR являются смежными для всех остальных маршрутизаторов сети.

Для соединения типа точка-точка

граф имеет вид

Для подключения в широковещательные сети или сети NMBA (с настроенным ARP)

при условии, что маршрутизатор RT7 является DR, а RT3 - Backup DR для сети N2, граф имеет вид

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

Как было отмечено ранее, отношения смежности организуются с некоторыми соседями маршрутизатора. Маршрутизаторы, связанные сетями point-to-point, Point-to-MultiPoint или виртуальными каналами, всегда являются смежными. В широковещательных и NBMA-сетях все маршрутизаторы являются смежными с DR и Backup DR. Решение вопроса об организации отношений смежности происходит в два этапа. Первый - начальная организация двухсторонней связи между соседями, а второй – обнаружение смены маршрутизаторов (Backup) DR. Если принято решение не организовать отношения смежности, смена состояний соседей останавливается на уровне второго этапа.

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

- маршрутизаторы связаны сетью point-to-point

- маршрутизаторы связаны сетью Point-to-MultiPoint

- маршрутизаторы связаны виртуальным каналом

- маршрутизатор играет роль DR

- маршрутизатор играет роль Backup DR

- соседний маршрутизатор является DR

- соседний маршрутизатор является Backup DR

Рассмотрим этапы конфигурации протокола OSPF в операционной системе Windows Server.

В консоли «Маршрутизация и удаленный доступ» добавляем новый протокол маршрутизации:

выбираем OSPFv2

в разделе «Свойства»

доступны следующие настройки

Маршрутизатор - поле для ввода 32-разрядного числа (в точечно-десятичной нотации), однозначно идентифицирующего OSPF-маршрутизатор в сети. Чтобы обеспечить уникальность идентификатора, можно выбрать, например, самый большой или самый маленький из IP-адресов, назначенных интерфейсам на данном компьютере. Для просмотра списка IP-адресов интерфейсов можно воспользоваться командой ipconfig.

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

В закладке «Области»

возможны следующие действия: добавить, изменить или удалить область. Однако область 0.0.0.0 (backbone) должна присутствовать всегда и не может быть удалена. В эту область возможно только добавление сетей. При выборе действия «Добавить» на экран выводится следующий интерфейс добавления области:

Код области - поле для ввода кода области. Это должно быть 32-разрядное число (в точечно-десятичной нотации), определяющее область OSPF. Код области может не совпадать с IP-адресом или кодом сети IP. Код области 0.0.0.0 зарезервирован для магистрали. Если область представляет собой сеть, разбитую на несколько подсетей, в качестве кода области можно использовать номер этой IP-сети.

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

- все интерфейсы одной области, находящиеся в одном сегменте сети,

должны использовать одинаковый пароль;

- интерфейсы одной области, находящиеся в разных сетях,

могут иметь разные пароли.

По умолчанию пароли включены и используется пароль 12345678. Пароли передаются открытым текстом, поэтому этот параметр следует отнести к средствам идентификации, а не безопасности.

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

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

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

Закладка «Диапазоны»

Назначение – поле для ввода номера сети (суперсети), агрегирующей диапазон. Указанная сеть добавляется в создаваемую область.

Маска подсети – соответственно маска введенной сети.

Закладка «Внешняя маршрутизация» активизируется при назначении маршрутизатора на роль пограничного и содержит следующие настройки

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

Пропускать маршруты от всех источников, за исключением выбранных - признак принятия маршрутов от всех выбранных источников.

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

Кнопка «Фильтры маршрутов» позволяет дополнительно уточнить условия работы с маршрутной информацией и содержит поля настройки, позволяющие указать диапазоны сетей, и логическое действие соответствующие указанным диапазонам, как показано ниже:

Закладка «Виртуальные интерфейсы»

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

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

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

При этом, возникает стандартная форма выбора интерфейсов

После добавления интерфейсов, консоль управления OSPF имеет вид

Далее, для каждого добавленного интерфейса, происходит настройка свойств

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

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

Стоимость - поле для ввода стоимости отправки пакета из данного интерфейса. Стоимость указывает ранг интерфейса и определяется администратором сети. Значение этого параметра представляется как стоимость связи для данного интерфейса в объявлении о состоянии связи, рассылаемом маршрутизатором. Чем ниже стоимость, тем чаще используется интерфейс. Обычно более быстрые интерфейсы имеют более низкую стоимость. Максимальная стоимость составляет 65 535, минимальная равна 1.

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

Тип сети – указывает метод подключения сетевого интерфейса в канальную сеть.

Закладка «Соседи NMBA», активизируется при выборе в разделе «Тип интерфейса» значения  «Нешироковещательный многоадресный доступ (NMBA)».

IP-адрес – содержит список IP-адресов, назначенных данному интерфейсу. Этот список доступен, только если интерфейсу назначено несколько IP-адресов. Все параметры OSPF на вкладках Общие, Соседи NBMA и Дополнительно относятся к выбранному IP-адресу. Если для данного интерфейса настроено несколько IP-адресов, необходимо выбрать, а затем настроить параметры OSPF для каждого IP-адреса.

Соседний IP-адрес -  поле для ввода добавляемого IP-адреса соседа - адреса интерфейса соседнего маршрутизатора в сети NBMA. Это не ID соседнего OSPF-маршрутизатора.

Приоритет маршрутизатора - gоле для ввода приоритета соседнего OSPF-маршрутизатора. Для каждого маршрутизатора в списке следует отметить, насколько он подходит на роль назначенного маршрутизатора DR. Когда активизируется интерфейс с нешироковещательной сетью, маршрутизатор посылает пакеты Hello только тем соседям, которые подходят на роль назначенного маршрутизатора, пока он не будет выбран. Сосед может стать назначенным маршрутизатором, если его приоритет равен 1 или больше.

В закладке «Дополнительно», указываются значения таймеров OSPF и MTU для данного интерфейса.

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

Интервал повтора передачи - поле для ввода интервала (в секундах) между повторными объявлениями состояния связи для соседств данного интерфейса. Это значение должно превышать ожидаемую задержку приема-передачи между двумя маршрутизаторами в сети, к которой они подключены. Однако если это значение установлено без запаса, это приведет к ненужным повторным передачам. Это значение должно быть больше для низкоскоростных serial линий. Примерное значение для локальной сети равно 5 секундам.

Интервал приветствия - поле для ввода интервала (в секундах) между передачами пакетов приветствия маршрутизатора через данный интерфейс. Этот параметр на всех маршрутизаторах, подключенных к общей сети, должен быть одинаковым. Чем меньше интервал приветствия, тем быстрее обнаруживаются топологические изменения. Однако слишком короткий интервал приводит к увеличению трафика OSPF. Примерное значение для сети X.25 равно 30 секундам. Примерное значение для локальной сети равно 10 секундам.

Интервал исчезновения - поле для ввода времени (в секундах), после которого соседи считают данный маршрутизатор отключенным. Маршрутизатор считается отключенным, если соседний маршрутизатор не получает его пакет приветствия в течение указанного интервала. Например, если интервал приветствия равен 15 секундам, а интервал исчезновения - 60 секундам, то после отправки четырех пакетов приветствия (в отсутствие подтверждения или ответа) соседние маршрутизаторы объявляют этот маршрутизатор отключенным. Интервал исчезновения должен быть кратен интервалу приветствия (обычно он вчетверо больше). Это значение должно быть одинаковым для всех интерфейсов OSPF-маршрутизаторов, подключенных к сегменту общей сети.

Интервал опроса - поле для ввода интервала (в секундах) между опросами сети OSPF, охватывающими только интерфейсы NBMA. Если соседний маршрутизатор отключен (пакеты приветствия не отправлялись в течение времени, определенного значением интервала исчезновения),  иногда бывает необходимо продолжать отправлять пакеты приветствия отключенному соседу в ожидании восстановления подключения. Этот параметр называется интервалом опроса. Интервал опроса должен быть хотя бы в два раза больше, чем интервал исчезновения. Примерное значение для сети X.25 равно 2 минутам.

Размер MTU - поле для ввода максимального размера (в байтах) IP-пакетов со сведениями OSPF. Наибольший размер передаваемых данных (MTU) - это максимальный размер IP-датаграммы,  которая может быть отправлена без фрагментации. По умолчанию значение MTU для IP-пакетов сети Ethernet равно 1500 байт. Максимальный размер пакета в сети FDDI равен 4352 байтам. Этот размер может быть гораздо меньше на радиоканале.

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


 

А также другие работы, которые могут Вас заинтересовать

42223. ОПРЕДЕЛЕНИЕ ОСТАТОЧНЫХ НАПРЯЖЕНИЙ В СТЕКЛЕ 100 KB
  Эти лучи вследствие различия в показателях преломления распространяются в образце с разной скоростью что приводит к возникновению между ними разности хода. Используя компенсационную пластинку создающую между лучами дополнительную разность хода  4 на выходе из неё получают линейно поляризованный свет. Основной причиной разности хода являются термоупругие напряжения образующиеся на заключительных этапах производства стекла. Исследованиями установлено что если в образце имеет место напряженное состояние в пределах упругости...
42224. Особливості роботи в операційному середовищі Windows та необхідні відомості з теорії імовірності 43.5 KB
  Розв'язати наступну задачу використовуючи формулу Байєса – ймовірність гіпотези за умови що подія А сталася; – ймовірність події А за умови що гіпотеза сталася; – ймовірність гіпотези ; – гіпотези що утворюють повну групу подій; А – подія що відбувається разом з однією з подій гіпотез . Ймовірність того що студент першої другої і третьої групи потрапляє в збірну університету відповідно P R S. Яка ймовірність що студент з першої групи Яка ймовірність що студент з другої групи Яка ймовірність що студент з третьої групи...
42225. ДОСЛІДЖЕННЯ ЕЛЕМЕНТНОГО СКЛАДУ ОБ'ЄКТІВ ІЗ ВИКОРИСТАННЯМ МАС-СПЕКТРОМЕТРА З ЛАЗЕРНИМ ДЖЕРЕЛОМ ІОНІВ 3.23 MB
  Методика лазерної мас-спектрометрії заснована на аналізі плазми, що утворюється при локальному випаровуванні лазером мікропроби, яка відтворює атомний склад речовини і домішок об'єкта в даному місці. Методикою можна визначити елементний та газовий склад досліджуваного зразка на поверхні та розподіл елементів за глибиною.
42226. ОСНОВНІ ВИМОГИ З ТЕХНІКИ БЕЗПЕКИ 113.5 KB
  Багаторазове вмикання та вимикання приладів призводить до їх псування. Треба вимикати живлення приладів лише після закінчення всіх вимірів. Вивчити принцип роботи порядок вмикання настроювання та проведення вимірів для таких приладів: а генератори низьких Г333 або Г334 та високих...
42227. Операції булевої алгебри 239 KB
  Відповідно до варіанту з таблиці 1 та отриманим теоретичним знанням з операцій булевої алгебри виконати розрахунково-графічну роботу. Звіт про виконання лабораторної роботи написати від руки на аркушах зошита в клітинку.
42228. Моделирование системы массового обслуживания в среде Simulink 27.5 KB
  Источник генерирует последовательность однородных заявок отличающихся моментами времени появления. Интервалы времени между моментами появления заявок являются случайными величинами с известным законом распределения параметры которого остаются постоянными в течение моделируемого интервала времени . Если прибор свободен поступающая в систему заявка берется на обслуживание и генерируется случайный интервал времени соответствующий длительности ее обслуживания если же прибор занят заявка теряется.
42231. ТЕХНОЛОГИЧЕСКИЙ КОНТРОЛЬ ФОРМЫ ПОЛИРОВАННЫХ ПОВЕРХНОСТЕЙ 945 KB
  Если контролируемую поверхность детали совместить с измерительной поверхностью эталона то при несоответствии их формы образуется воздушный промежуток который можно рассматривать как пластинку толщиной h с показателем преломления n=1. Число колец любого но одного цвета характеризует разность стрелок прогиба поверхности детали и эталона. Форма интерференционных колец в сечении параллельном их направлению воспроизводит профиль воздушного зазора между поверхностями детали и эталона. Если кривизна поверхности детали меняется плавно кольца...