• Tidak ada hasil yang ditemukan

Внутренний протокол маршрутизации OSPF

N/A
N/A
MC Рус

Academic year: 2023

Membagikan "Внутренний протокол маршрутизации OSPF"

Copied!
20
0
0

Teks penuh

(1)

3.2 Внутренний протокол маршрутизации OSPF

Протокол маршрутизации OSPF (Open Shortest Path First) представляет собой открытый (Open) протокол состояния связей и использующий метод лавинной рассылки для распространения информации о состоянии линий, а также алгоритм определения пути наименьшей стоимости Дейкстры.

3.2.1 Принципы маршрутизации

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

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

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

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

Лавинная маршрутизация.

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

(2)

отправленных им пакетов. Полученные дубликаты этих пакетов отбрасываются. Этот метод применяется в протоколе OSPF.

Метод лавинной маршрутизации обладает тремя значительными свойствами:

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

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

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

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

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

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

Иерархическая структура маршрутизации OSPF

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

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

Маршрутизация информации в пределах автономной системы осуществляется одним из трех перечисленных ниже способов.

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

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

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

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

(3)

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

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

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

К характеристикам любой стандартной области можно отнести:

-области представляют собой группу смежных хостов и сетей;

-во всех маршрутизаторах области имеется одна и та же база данных о топологии и применяется одинаковый алгоритм SPF;

-каждая область должна быть подключена к опорной области, которую принято также называть областью 0;

-в экстренных ситуациях для подключения к области 0 могут применяться виртуальные каналы;

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

На рисунке 3.32. Представлена иерархическая структура с четырьмя областями.

Область 3

Магистраль

Пограничный маршрутизатор

Магистральный маршрутизатор Маршрутизатор на

границах областей

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

Область 1 Область 2

(4)

Рисунок 3.32 - Иерархическая структурированная автономная сеть OSPF c четырьмя областями

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

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

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

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

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

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

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

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

(5)

3.2.2 Алгоритм SPF

Рассмотрим работу алгоритма SPF (Shortest Path First) и построение маршрутов на примере системы, изображенной на рисунке 3.33. Для простоты будем рассматривать OSPF-систему, состоящую только из маршрутизаторов, соединенных линиями связи типа «точка-точка».

На рисунок маршрутизаторы обозначены, как 1, 2, 3, 4, 5, а буквами A, B, C, D, Е, К обозначаются линии связи между маршрутизаторами, цифры на линиях связи обозначают метрику между маршрутизаторами.

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

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

Для

каждого типа

сервиса будет

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

Имеется следующая формула для вычисления метрики доставки информации через каналы сети OSPF:

Метрика –108/ скорость передачи в битах в секунду.

По этой формуле вычислены, например следующие метрики:

метрика сети на базе 10Base-T Ethernet равна 10,

Рисунок 3.33 - Пример OSPF-системы

(6)

 метрика выделенной линии 56 кбит/с равна 1785.

 метрика канала со скоростью передачи данных 100 Мбит/с и выше равна единице.

 метрика канала T-1 544/с соответствует 65.

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

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

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

Для работы алгоритма SPF (рисунок 3.33) на каждом маршрутизаторе создается база данных состояния связей, представляющая собой полное описание графа OSPF-системы. При этом вершинами графа являются маршрутизаторы, а ребрами– соединяющие их связи. Базы данных на всех маршрутизаторах одинаковы. База данных состояния связей представляет собой таблицу, где для каждой пары смежных вершин графа (маршрутизаторов) указано ребро (связь), их соединяющее, и метрика этого ребра. База данных состояния связей в нашем примере (рисунок 3.33) выглядит, как показано в таблице 3.1.

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

Таблица 3.1- База данных состояния связей

От  до Сеть Метрика

1  2 A 2

1  3 C 3

1  4 B 1

1  5 Е 2

2  1 A 2

3  1 С 3

4  1 В 1

5  1 Е 2

3  4 D 1

(7)

2  5 К 1

4  3 D 1

5  2 К 2

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

Разграничения хостов и маршрутизаторов. Предположим, что к маршрутизатору 4 подключена сеть N1, содержащая некоторое количество хостов H1-Hk (рисунок 3.34). Следуя представленной выше модели, каждый хост должен быть также вершиной графа OSPF-системы, хотя сам и не создает базу данных и не производит вычисления маршрутов. Тем не менее, информация о связях маршрутизатора 4 с каждым из хостов сети N1 и о метриках этих связей должна быть внесена в базу данных, чтобы все остальные маршрутизаторы системы могли построить маршруты от себя до этих хостов. Очевидно, что такая процедура неэффективна. Вместо информации о связях с каждым хостом в базу данных вносится информация о связи с сетью, то есть сама IP-сеть становится вершиной графа системы, соединенной с маршрутизатором 4 с помощью некоторой связи P (рисунок 3.

35).

В данном случае сеть, точнее ее адрес, используется как обобщающий идентификатор группы хостов, находящихся в одной IP-сети, к которой маршрутизатор 4 непосредственно подключен. Сеть N1 называется тупиковой сетью (stub network). Все узлы, входящие в эту сеть, являются хостами, у которых установлен маршрут по умолчанию, направленный на маршрутизатор 4.

Рисунок 3.34 - OSPF-система с маршрутизаторами и хостами

Рисунок 3.35 - OSPF-система с маршрутизаторами и тупиковой сетью Таблица 3.2 - Запись в базе состояний после подключения тупиковой сети

(8)

От  до Связь Метрика

(4)  N1 P 1

Протокол OSPF производит разграничение хостов и маршрутизаторов.

Если к IP-сети N1 подключен еще и один из интерфейсов маршрутизаторов 2 или 5, то связь между 2 и 4 маршрутизаторами или 5 и 4 маршрутизаторами будет установлена отдельно, как если бы они были соединены линией связи по типу «точка-точка». Тогда маршрутизаторы 2 и 5 так же будут соединены с тупиковой сетью N1.

При подключении тупиковой сети N1 в базе данных состояния связей появится запись (таблица 3.2).

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

5.1.1.1 Пример маршрутизации по алгоритму SPF

Рассмотрим пример, локальной транзитной сети (рисунок 3.36). Имеется сеть Ethernet, в которой есть три маршрутизатора - 1, 4 и 5. Эти маршрутизаторы связаны с сетями в других городах с помощью выделенных линий.

Пусть произошло восстановление сетевого питания после сбоя работы сети.

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

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

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

Когда период отказа маршрутизатора истекает, то маршрутизатор с наивысшим приоритетом и наибольшим идентификатором объявляет себя выделенным (а следующий за ним по приоритету маршрутизатор объявляет

(9)

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

1

Тупикова ЛВС Транспортная ЛВС

Тупикова ЛВС Тупиковая ЛВС

Тупиковая ЛВС

2 3

4 5

6 7

Рисунок 3.36 - Гипотетическая сеть с OSPF маршрутизаторами

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

Например, маршрутизатор 1 получил от 2 и 3 маршрутизаторов информацию об их сетях, и он может передавать туда пакеты данных. Они содержат информацию о собственных связях маршрутизатора и объявления о связях сети.

Базы данных теперь синхронизированы с выделенным маршрутизатором, которым является - 5. Маршрутизатор 5 суммирует свою базу данных с каждой базой данных своих соседей – с базами 1,4 и 7 маршрутизатораров - индивидуально. В каждой синхронизирующейся паре объявления, найденные только в какой-либо одной базе, копируются в другую. Выделенный маршрутизатор 5, распространяет новые объявления среди других маршрутизаторов своей локальной сети. Например, объявления от маршрутизаторов 2 и 3 передаются 5 маршрутизатору - 1 маршрутизатором,

(10)

а 5 маршрутизатор в свою очередь передает их 4 и 7 маршрутизаторам.

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

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

Посмотрим теперь, как 3-й маршрутизатор вычисляет маршрут через сеть.

Две из связей, присоединенных к его портам, представляют линии T-1, а одна - линию 56 Кб/c.

3-й маршрутизатор сначала обнаруживает двух соседей – 1-й маршрутизатор с метрикой 65 и 2-й маршрутизатор с метрикой 1785. Из объявления о связях первого маршрутизатора, 3-й маршрутизатор обнаружил наилучший путь ко второму маршрутизатору со стоимостью 130, поэтому он отверг непосредственный путь ко второму маршрутизатору, поскольку он связан с большей задержкой, так как проходит через линии с меньшей пропускной способностью. Третий маршрутизатор также обнаруживает локальную транзитную сеть с выделенным 5 маршрутизатором. Из объявлений о связях 5-го маршрутизатора, 3-й маршрутизатор узнает о пути к 4 маршрутизатору и, наконец, узнает о пути к маршрутизаторам 6 и 7 и к их тупиковым сетям.

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

Представим, однако, что какая-либо выделенная линия сети отказала.

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

(11)

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

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

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

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

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

Рассмотрим пример иллюстрирующий работу особенности поддержки множественных маршрутов (рисунок 3.37).

Узел 1 отправляет данные в узел 3, используя поддержку множественных маршрутов, по маршрутам С (2/3 трафика)и по маршрутам А и В (1/3 трафика). Однако узел 2 тоже поддерживает механизм множественных путей, и когда к нему прибывают дейтаграммы, адресованные в узел 3 (в том числе, и отправленные из узла 1), он применяет к ним ту же логику, то есть 2/3 трафика отправляется в узел 3 по маршруту В, а одна треть – по маршрутам А и С. Следовательно, 1/9 дейтаграмм, отправленных узлом 1 в узел 3, возвращаются опять в узел 1, и тот 1/3 трафика опять отправляет в узел 3 по маршруту С, а 2/3 трафика по маршруту А и В через узел 2 и так далее. В итоге сформировался «частичный цикл» при посылке дейтаграмм из узла 1 в узел 3, который, помимо частичного зацикливания дейтаграмм, ведет к быстрой перегрузке линии А.

Для того чтобы избежать зацикливания следует воспользоваться следующим

Рисунок 3.37 - Пример особой ситуации при поддержке

множественных маршрутов

(12)

правилом: если узел Х отправляет данные в узел Y, он может пересылать их через узел Q только в том случае, если Q ближе к Y, чем Х.

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

одна для сети N, другая для сети M.

Предположим теперь, что адрес и маска сети М таковы, что она является подсетью сети N. Например, N = 173.26.0.0 netmask 255.255.0.0; M = 173.26.11.0 netmask 255.255.255.0. В этом случае дейтаграммы, следующие по адресу, находящемуся в обеих сетях, будут отправлены в сеть с более длинной маской. Например, адрес 173.26.11.1 находится как в сети N, так и в сети М, но маска сети M длиннее, следовательно, дейтаграмма, следующая по этому адресу, будет отправлена в сеть М.

Внешние маршруты. Для достижения сетей, не входящих в OSPF- систему (в автономную систему), используются пограничные маршрутизаторы автономной системы (autonomous system border router, ASBR), имеющие связи, уходящие за пределы системы.

ASBR вносят в базу данных состояния связей данные о сетях за пределами системы, достижимых через тот или иной ASBR. Такие сети, а также ведущие к ним маршруты называются внешними (external). В простейшем случае, если в системе имеется только один ASBR, он объявляет через себя маршрут по умолчанию (default route) и все дейтаграммы, адресованные в сети, не входящие в базу данных системы, отправляются через этот маршрутизатор. Если в системе имеется несколько ASBR, то, возможно, внутренним маршрутизаторам системы придется выбирать, через какой именно пограничный маршрутизатор нужно отправлять дейтаграммы в ту или иную внешнюю сеть. Это делается на основе специальных записей, вносимых ASBR в базу данных системы. Эти записи содержат адрес и маску внешней сети и метрику расстояния до нее, которая может быть, а может и не быть сравнимой с метриками, используемыми в OSPF-системе. Если возможно, адреса нескольких внешних сетей агрегируются в общий адрес с более короткой маской. ASBR может получать информацию о внешних маршрутах от протоколов внешней маршрутизации, а также все или некоторые внешние маршруты могут быть сконфигурированы администратором (в том числе единственный маршрут по умолчанию).

(13)

3.2.3 Достоинства OSPF

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

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

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

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

3.2.4 Основные форматы сообщений

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

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

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

Не все соседи становятся смежными.

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

В сетях с возможностью широковещательной рассылки (broadcast networks) Hello-пакеты рассылаются по мультикастинговому адресу 224.0.0.5 («Всем ОSPF-маршрутизаторам»). В других сетях все возможные адреса соседей должны быть введены администратором.

OSPF-заголовок. Размер OSPF-сообщения ограничен максимальным

(14)

размером дейтаграммы. Все сообщения OSPF имеют общий заголовок;

следующий в дейтаграмме непосредственно за IP-заголовком (рисунок 3.38).

Рассмотрим назначение полей:

Поле Версия (1 октет) – версия протокола;

Поле тип сообщения (1 октет), применяются следующие типы сообщений:

1 Hello – используется для знакомства с соседями.

2 Описание базы данных (Database Description) – сообщает о том, насколько свежей информацией располагает отправитель.

3 Запрос состояния связей (Link State Request) – запрашивает информацию у партнера.

4 Обновление состояния связей (Link State Update) – сообщает соседям информацию о связях отправителя.

5 Подтверждение приема сообщения о состоянии связей (Link State Acknowledgment) – подтверждает обновление состояния связей.

0 - 7 8 - 15

16 - 23

24 - 31 5.1.1.1.1.1.1.1

Версия

Тип сообщения

Длина сообщения

Идентификатор маршрутизатора Идентификатор области

Контрольная сумма Аутентификации сообщения Аутентификационные данные

Рисунок 3.38 - Формат заголовка OSPF

Длина сообщения в октетах, включая заголовок (2 октета).

Идентификатор маршрутизатора, отправившего сообщение (4 октета) – равен адресу одного из IP-интерфейсов маршрутизатора. У маршрутизаторов Cisco это наибольший из адресов локальных интерфейсов, а если таковых нет, то наибольший из адресов внешних интерфейсов.

Номер области, к которой относится данное сообщение(4 октета) – номер 0 зарезервирован для магистрали. Часто номер области полагают равным адресу IP-сети (одной из IP-сетей) этой области.

Контрольная сумма (2 октета) – охватывает все OSPF-сообщение, включая заголовок, но исключая поле «аутентификационные данные»;

вычисляется по тому же алгоритму, что и в IP-заголовке.

Аутентификации сообщения (2 октета). Стандарт определяет несколько возможных типов, самые простые из них: 0 – нет аутентификации,

(15)

1 – аутентификация с помощью пароля.

Аутентификационные данные (8 октетов) – например, восьмисимвольный пароль.

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

Рассмотрим значение полей сообщения Hello (рисунок 3.39.):

Маска IP-сети (4 октета) – в которой находится интерфейс маршрутизатора, отправившего сообщение.

Период посылки Hello (2 октета) – сообщений, в секундах.

Опции (1 октет) – определено значение нескольких бит: DC, EA, N/P, MC, E, T.

Сообщение Hello

0 - 7 8 - 15 16 - 23 24 - 31 OSPF-заголовок

Маска IP-сети

Интервал Hello Опции Приоритет Время

Идентификатор выделенного маршрутизатора Идентификатор запасного выделенного

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

Список идентификаторов соседей

…….

Список идентификаторов соседей Рисунок 3.39- Формат сообщения Hello

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

Бит Е установлен. Маршрутизатор может принимать и объявлять внешние маршруты через данный интерфейс, сброшен a данный интерфейс маршрутизатора, принадлежит тупиковой области.

Бит MC установлен. Маршрутизатор поддерживает маршрутизацию мультикастинговых дейтаграмм (RFC 1584).

Бит N/P установлен. Данный интерфейс маршрутизатора принадлежит не совсем тупиковой области (NSSA).

Бит EA установлен. Маршрутизатор может получать и ретранслировать объявления о «внешних атрибутах» (к настоящему моменту описание опции не разработано).

Бит DC установлен. Маршрутизатор поддерживает работу с соединениями, устанавливаемыми по требованию (demand circuits, RFC 1793)

(16)

– это, например, означает, что записи о связях, устанавливаемых по требованию, не устаревают.

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

Приоритет (1 октет) – приоритет маршрутизатора; устанавливается администратором, используется при выборах выделенного маршрутизатора;

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

Время (4 октета) – время в секундах, по истечении которого маршрутизатор-сосед, не посылающий сообщения Hello, считается отключенным.

Идентификатор выделенного маршрутизатора (4 октета) – с точки зрения маршрутизатора, посылающего сообщение (0, если выделенный маршрутизатор еще не выбран).

Идентификатор запасного выделенного маршрутизатора (4 октета) – с точки зрения маршрутизатора, посылающего сообщение (0, если запасной выделенный маршрутизатор еще не выбран).

Список идентификаторов соседей, от которых получены Hello-со- общения за последние Dead Interval секунд; число полей «Neighbor»

определяется из общей длины сообщения, указанной в OSPF-заголовке.

Длина одного поля – 4 октета.

После того, как пара маршрутизаторов начинает обмениваться Hello- сообщениями с каким-то соседом, этот процесс проходит через несколько стадий:

DOWN – сосед не обнаружен или отключился;

INIT – послано Hello-сообщение или получено от маршрутизатора, еще не зачисленного в список соседей;

2-WAY (двусторонняя связь) – получено Hello-сообщение, в котором данный маршрутизатор-получатель перечислен в списке соседей, а отправитель этого сообщения также зачислен в список соседей данного маршрутизатора;

WAIT – ожидание в течение Dead Interval секунд для обнаружения всех соседей; в это время маршрутизатор передает Hello-сообщения, но не участвует в выборах выделенного маршрутизатора и в синхронизации баз данных;

EXSTART – установление ролей главный/подчиненный и инициализация структур данных для обмена описаниями баз данных (протокол обмена);

EXCHANGE – обмен описаниями баз данных (протокол обмена);

LOADING – синхронизация баз данных, пересылка сообщений- запросов о состояниях связей и ответов на них (протокол обмена);

FULL – базы данных синхронизированы.

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

(17)

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

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

Если маршрутизатор не определился с выбором DR и (или) BDR (например, после включения), он заполняет соответствующие поля нулями.

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

Итак, после получения очередного Hello-сообщения маршрутизатор приступает к выбору DR и BDR. Он помнит мнения своих соседей по поводу того, кто является DR и BDR, которые он узнал из получаемых Hello- сообщений, а также свой собственный предыдущий выбор.

1 Сначала выбирается BDR, на эту должность назначается маршрутизатор с наивысшим приоритетом из всех, объявивших себя в качестве BDR, при этом маршрутизаторы, объявившие себя в качестве DR, не рассматриваются. Если никто не объявил себя в качестве BDR, выбирается маршрутизатор с высшим приоритетом из тех, кто не объявил себя в качестве DR. В случае равных приоритетов выбирается маршрутизатор с бóльшим идентификатором.

2 На должность DR выбирается маршрутизатор с наивысшим приоритетом из всех, объявивших себя в качестве DR. В случае равных приоритетов выбирается маршрутизатор с бóльшим идентификатором.

3 Если никто не предложил себя в качестве DR, в поле «Designated Router» заносится идентификатор BDR.

4 Если маршрутизатор только что выбрал себя на роль DR или BDR или только что потерял статус DR или BDR, шаги 1-3 повторяются. Термин

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

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

Когда маршрутизатор подключается к сети, сначала он достигает состояния 2-WAY со всеми своими соседями, а потом, прежде чем

(18)

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

Протокол обмена. После установления отношений смежности для каждой пары смежных маршрутизаторов происходит синхронизация их баз данных. Эта же операция происходит при восстановлении ранее разорванного соединения, поскольку в образовавшихся после аварии двух изолированных подсистемах базы данных развивались независимо друг от друга. Синхронизация баз данных происходит с помощью протокола обмена (Exchange protocol). Сначала маршрутизаторы обмениваются только описаниями своих баз данных (Database Description), содержащими идентификаторы записей и номера их версий, это позволяет избежать пересылки всего содержимого базы данных, если требуется синхронизировать только несколько записей. Во время этого обмена каждый маршрутизатор формирует список записей, содержимое которых он должен запросить (то есть эти записи в его базе данных устарели либо отсутствуют), и соответственно отправляет пакеты запросов о состоянии связей. В ответ он получает содержимое последних версий нужных ему записей в пакетах типа

«Обновление состояния связей (Link State Update)». После синхронизации баз данных производится построение маршрутов, как описано в предыдущем разделе.

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

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

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

Далее на всех маршрутизаторах OSPF-системы действует следующий

Referensi

Dokumen terkait