Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
47
Добавлен:
11.04.2015
Размер:
4.78 Mб
Скачать

8.2 Открытый протокол маршрутизации ospf

8.2.1. Протокол OSPF (Open Shortest Pass First). Открытый протокол предпочтительного выбора кратчайшего пути является альтернативой RIP в качестве внутреннего протокола маршрутизации. OSPF представляет собой протокол состояния маршрута (в качестве метрики используется коэффициент качества обслуживания). Каждый маршрутизатор обладает полной информацией о состоянии всех интерфейсов всех маршрутизаторов (переключателей) автономной системы. Протокол OSPF реализован в демоне маршрутизации gated, который поддерживает также RIP и внешний протокол маршрутизации BGP.

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

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

AS можно разделить на несколько зон (area). Зона – это группа смежных сетей и подключенных к ним хостов. Маршрутизаторы с несколькими интерфейсами могут принадлежать нескольким зонам. На таких маршрутизаторах, называемых граничными (Area Border Routers), хранятся отдельные базы данных топологий каждой зоны.

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

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

В эту зону могут входить как отдельные ЭВМ, так и целые сети. В этом случае внутренние маршрутизаторы области могут и не иметь информации о топологии остальной части AS. Сеть обычно имеет выделенный маршрутизатор, который является источником маршрутной информации для остальных маршрутизаторов AS. Каждый маршрутизатор самостоятельно решает задачу оптимизации маршрутизаторов. Если к месту назначения ведут два или более эквивалентных маршрута, информационный поток будет поделен между ними поровну. Переходные процессы в OSPF завершаются быстрее, чем в RIP. В процессе выбора оптимального маршрута анализируется ориентированный граф сети. Опишем алгоритм Дикстры по выбору оптимального пути, изображенного ниже на рисунках 86,87.

На иллюстрированном рисунке приведена схема узлов (A-J) со значениями метрики для каждого из отрезков пути. Анализ графа начинается с узла А (Старт). Пути с наименьшим суммарным значением метрики считаются наилучшими. Именно они оказываются выбранными в результате рассмотрения графа («кратчайшие пути»).

8.2.3. Работа протокола OSPF. OSPF–маршрутизаторы распространяют информацию о состоянии соединенных с ними напрямую каналов всем остальным маршрутизаторам сети посредством так называемого лавинообразного распространения информации о состоянии каналов. И хотя OSPF использует периодическое распространение обновлений информации о состоянии канала по всей сети, интервалы между обновлениями достаточно велики для того, чтобы свести объем административного трафика к минимуму. Получив сообщение о состоянии канала (LSA – link–state adverisement) от соседнего устройства, OSPF – маршрутизатор отправит его на все свои интерфейсы, обеспечивая тем самым получение данного LSA оставшимися OSPF–маршрутизаторами сети.

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

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

  • Пропускной способностью канала;

  • Задержкой (время распространения пакета);

  • Числом дейтограмм, стоящих в очереди для передачи;

  • Загрузкой канала;

  • Требованиями безопасности;

  • Типом трафика;

  • Числом шагов до цели;

  • Возможностями промежуточных связей (например, многовариантность достижения адресата).

Определяющими является три характеристики: задержка, пропускная способность и надежность. Для транспортных целей OSPF использует IP непосредственно, т.е. не привлекает протоколы UDP или TCP. Код TOS в IP –пакетах, содержащих OSPF–сообщения, равен нулю, значение TOS здесь задается в самих пакетах OSPF. Маршрутизация в этом протоколе определяется IP–адресом и типом сервиса. Т.к. протокол не требует инкапсуляции пакетов, сильно облегчается управление сетями с большим количеством бриджей и сложной топологией (исключается циркуляция пакетов, сокращается транзитный трафик). Автономная система может быть поделена на отдельные области, каждая из которых становится объектом маршрутизации, а внутренняя структура снаружи не видна (узлы на рисунке выше могут представлять собой как отдельные ЭВМ или маршрутизаторы, так и целые сети). Этот прием позволяет значительно сократить необходимый объем маршрутной базы данных. В OSPF используется термин опорной сети (backbone) для коммуникаций между выделенными областями. В пределах выделенной области может работать свой протокол маршрутизации.

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

224.0.0.5 – предназначен для обращения ко всем маршрутизаторам, поддерживающим этот протокол.

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

Рисунок 86 - Топология маршрутов для узла А

Рисунок 87 - Работа алгоритма Дикстры протокола OSPF

Таблица 7 - Реализация алгоритма

Шаг

Множество

Метрика связи узла А с другими узлами

N

B

C

D

E

F

G

H

I

J

0

{A}

3

1

{A,B}

(3)

4

9

7

10

2

{A,B,C}

3

(4)

6

6

10

10

8

14

3

{A,B,C,D}

3

4

(6)

6

10

10

8

9

14

4

{A,B,C,D,E}

3

4

6

(6)

10

10

8

9

14

5

{A,B,C,D,E,H}

3

4

6

6

10

10

(8)

9

14

6

{A,B,C,D,E,H,I}

3

4

6

6

10

10

8

(9)

14

7

{A,B,C,D,E,H,I,F}

3

4

6

6

(10)

10

8

9

14

8

{A,B,C,D,E,H,I,F,G}

3

4

6

6

10

(10)

8

9

14

9

{A,B,C,D,E,H,I,F,G,J}

3

4

6

6

10

10

8

9

(14)

Любое сообщение OSPF начинается с 24–октета. Формат заголовка OSPF изображен на рисунке 88.

ВЕРСИЯ

ТИП

ДЛИНА СООБЩЕНИЯ

IP-АДРЕС МАРШРУТИЗАТОРА–ОТПРАВИТЕЛЯ

ИДЕНТИФИКАТОР ОБЛАСТИ

КОНТРОЛЬНАЯ СУММА

ТИП ИДЕНТИФИКАЦИИ

ИДЕНТИФИКАЦИЯ (ОКТЕТЫ 0-3)

ИДЕНТИФИКАЦИЯ (ОКТЕТЫ 4-7)

Рисунок 88 - Формат заголовка сообщений для протокола маршрутизации OSPF

Поле Версия определяет версию протокола (=2).

Поле Тип идентифицирует функцию сообщения согласно таблице 8:

Таблица 8. Коды поля тип

Тип

Значение

1

Hello (используется для проверки доступности маршрутизатора)

2

Описание базы данных (топология)

3

Запрос состояния канала

4

Изменение состояния канала

5

Подтверждение получения сообщения о статусе канала

Поле Длина пакета определяет длину блока в октетах, включая заголовок.

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

Поле контрольная сумма содержит контрольную сумму IP–пакета, включая поле типа идентификации. Это поле проверяет содержимое всего пакета для выявления потенциальных повреждений при передаче. Контрольное суммирование производится по модулю 1.

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

8.2.4. Важную функцию в OSPF–сообщениях выполняет одно-октетное поле опции, оно присутствует в сообщениях типа HELLO, объявление состояния канала и описание базы данных. Особую роль в этом поле играют младшие биты Е и Т:

Формат поля опций изображен на рисунке 89.

E

T

Рисунок 89 - Формат поля опций

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

Бит Т определяет сервисные возможности маршрутизатора (TOS). Если Т=0, это означает, что маршрутизатор поддерживает только один вид услуг (TOS=0) и он не пригоден для маршрутизации с учетом вида услуг. Такие маршрутизаторы, как правило, не используются для транзитного трафика.

8.2.5. Для примера рассмотрим протокол OSPF используемый сообщение типа Hello для взаимообмена данными между соседними маршрутизаторами. Структура пакетов этого типа показана на рисунке 90.

Заголовок OSPF типа 1 35 октета

Сетевая маска

Время между Hello

Опции

Приоритет

Время отключения маршрутизатора

IP–адрес маршрутизатора

IP–адрес резервного маршрутизатора

IP–адрес соседа 1

IP–адрес соседа 2

IP–адрес соседа N

Рисунок 90 - Структура пакета Hello

Поле сетевая маска соответствует маске субсети данного интерфейса. Например, если интерфейс принадлежит сети класса В и третий байт служит для выделения нужной субсети, то сетевая маска будет иметь вид 0хFFFFFF00.

Поле время между Hello содержит значение времени в секундах, между сообщениями Hello.

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

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

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

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

8.2.6. Маршрутизаторы обмениваются сообщениями из баз данных OSPF, чтобы инициализировать, а в дальнейшем актуализировать свои базы данных, характеризующие топологии сети. Обмен происходит в режиме клиент–сервер. Клиент подтверждает получение каждого сообщения. Формат пересылки записей из базы данных представлен на рисунке 91 (формат OSPF – сообщений о маршрутах)

В заголовке OSPF–пакета поле тип=2 говорит, что это описание маршрутной базы данных

Заголовок OSPF типа 2

24 октета

Нулевое поле

Опции

I

M

S

Номер сообщения по порядку

Эта часть повторяется по числу описываемых каналов. Эта область является заголовком описания состояния канала

Тип канала

Идентификатор канала

Маршрутизатор, рекламирующий канал

Порядковый номер канала

Контрольная сумма

Возраст канала

Рисунок 91 - Формат пересылки записей из базы данных

Поля, начиная с типа канала, повторяются для каждого описания канала. Так как размер базы данных может быть велик, ее содержимое может пересылаться по частям. Для реализации этого используются биты I и M. Бит I устанавливается в 1 в стартовом сообщении, а бит М принимает единичное состояние для сообщения, которое является продолжением. Бит S определяет то, кем послано сообщение (S=1 для сервера, S=0 для клиента, этот бит иногда имеет имя MS).

Поле номер сообщения по порядку служит для контроля пропущенных блоков. Первое сообщение содержит в этом поле случайное целое число М, последующие М+1, М+2, … М+1.Поле тип канала может принимать следующие значения:

Таблица 9 - Коды типов состояния каналов (LS)

LS–тип

Описание объявления о маршруте

1

Описание каналов маршрутизатора, т.е. состояния его интерфейсов.

2

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

3 или 4

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

5

Описания внешних связей автономной системы. Такие маршруты начинаются в пограничных маршрутизаторах AS.

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

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

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

Заголовок OSPF типа 3

24 октета

Тип канала

Идентификатор канала

Маршрутизатор, объявляющий о канале

Рисунок 92 - Формат OSPF–запроса маршрутной информации

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

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

  1. Возраст маршрута достиг предельного значения (LSRefresh Time).

  2. Изменилось состояние интерфейса.

  3. Произошли изменения в маршрутной сети.

  4. Произошло изменение состояния одного из соседних маршрутизаторов.

  5. Изменилось состояние одного из внутренних маршрутов (появление нового, исчезновение старого и т.д.).

  6. Изменение состояния межзонного маршрута.

  7. Появление нового маршрутизатора, подключенного к сети.

  8. Вариация виртуального маршрута одним из маршрутизаторов.

  9. Возникли изменения одного из внешних маршрутов.

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

8.2.9. Маршрутизатор, получивший OSPF – пакет, посылает подтверждение приема. Этот вид пакетов имеет тип=5 и структуру, отображенную на рисунке 93. Получение нескольких объявлений о состоянии линии может быть подтверждено одним пакетом. Адресом места назначения этого пакета может быть индивидуальный маршрутизатор, группа маршрутизаторов или все маршрутизаторы автономной системы.

Заголовок OSPF типа 5

24 октета

Заголовок типа «объявление состояния канала»

20 октетов

Рисунок 93. Формат сообщения о получении OSPF–пакета

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

8.2.11. Сетевая маска характеризует место назначения рекламируемого маршрута. Так, для сети класса А маска может иметь вид 0хFF000000. Последующий набор полей повторяется для каждого вида TOS. Поля для TOS=0 заполняются всегда, и это описание является первым. Бит Е характеризует внешнюю метрику. Если Е=0, то она может непосредственно (без преобразования) сравниваться с метриками других каналов. При Е=1 метрика считается больше любой метрики. Поле «адрес пересылки» указывает на место, куда будут пересылаться данные рекламируемым маршрутом. Если адрес пересылки равен 0.0.0.0, данные посылаются пограничному маршрутизатору автономной системы – источнику данного сообщения. Метка внешнего маршрута – 32-битовое число, присваиваемое каждому внешнему маршруту. Эта метка самим протоколом OSPF не используется и предназначена для информирования других автономных систем при работе внешних протоколов маршрутизации. Маршрутная таблица OSPF содержит в себе:

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

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

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

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

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

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

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

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

8.2.12. Дополнительными функциями OSPF являются маршрутизация по принципу равных затрат, многотрактовая маршрутизация и маршрутизация на базе запросов типа обслуживания высшего уровня (Type of Service, ToS). Маршрутизация на базе ToS поддерживает те протоколы высшего уровня, которые позволяют определить конкретный тип обслуживания. Например, приложение может определить некие данные как срочные. Если в распоряжении OSPF есть каналы с высоким приоритетом, то они могут быть использованы для передачи срочных дейтограмм.

OSPF поддерживает одну и более метрик. Если используется только одна метрика, то она считается произвольной и ToS не поддерживается. Если используется несколько метрик, то ToS может обеспечиваться отдельными метриками (и, следовательно, отдельной таблицей маршрутизации) для каждой из восьми комбинаций, образованной тремя битами IP ToS (битом задержки, битом пропускной способности и битом надежности).

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

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

Соседние файлы в папке Методичка по протоколам