Протоколы маршрутизации. Протокол OSPF. Часть 2.


Протокол OSPF может работать в сетях следующих типов:
Сети точка-точка. Используются для связи двух маршрутизаторов. Обычно, для организации такой связи используются коммутируемые или выделенные каналы связи;
Широковещательные сети. Примером может служить Ethernet. В этой сети с помощью широковещательной адресации мона передавать инфу одновременно всем маршрутизаторам.
Нешироковещательные сети. (NBMA, Non-Broadcast Multiple Access Networks, нешироковещательные сети со множественным доступом). Примером таких сетей могут служить Х.25, Frame Relay или АТМ.
При включении маршрутизатору необходимо синхронизировать свою базу данных со всеми маршрутизаторами локальной сети. Так как база данных на всех маршрутизаторах одинакова, достаточно провести маршрутизацию с одним из них. Этот маршрутизатор называется назначенным маршрутизатором - Designated Router(DR). Его заместитель называется резервным назначенным маршрутизатором - Backup Designated Router(BDR). При этом DR и BDR будут единственными маршрутизаторами, с которыми новый маршрутизатор должен синхронизировать свою базу. После синхронизации базы с назначенным маршрутизатором, новый маршрутизатор будет синхронизирован со всеми маршрутизаторами данной сети. Кроме того, назначенный маршрутизатор делает объявления о сетевых связях, перечисляя своих соседей по подсети. Остальные маршрутизаторы просто объявляют о своей связи с назначенным маршрутизатором. BDR занимает место DR в тех случаях, когда последний выходит из строя. Достоинство этого метода в том, что после назначения DR значительно уменьшается количество маршрутной инфы, передаваемой по сети. Протокол OSPF состоит из трех внутренних протоколов: Hello, Exchange и Flooding.
Протокол Hello использует сообщения Hello. Периодически маршрутизаторы обмениваются между собой этими сообщениями. Сообщение Hello посылается через все порты маршрутизатора и содержит следующую информацию:
приоритет маршрутизатора, который используется для выбора DR и BDR;
интервал между сообщениями Hello в секундах;
интервал ожидания сообщения;
список маршрутизаторов, от которых недавно были получены сообщения Hello;
маршрутизаторы, которые в настоящий момент являются DR и BDR.
Наиболее важны интервал между сообщениями Hello и интервал ожидания сообщения. В сообщениях Hello маршрутизатор передает некоторые сведения о себе и говорит о том, кого он рассматривает в качестве ближайших соседей. Маршрутизаторы с разными рабочими параметрами игнорируют сообщения Hello друг от друга, поэтому маршрутизаторы с некорректно настроенными параметрами не влияют на остальные. Маршрутизаторы посылают сообщения Hello всем своим соседям, по крайне мере, один раз на протяжении интервала времени Hello. Если интервал ожидания сообщения истек, а сообщение Hello от соседа не пришло, то считается, что сосед не работоспособен, и рассылается объявление о сетевых каналах, для того чтобы в сети произошел пересчет маршрутов. Ниже на рисунке показан формат сообщения Hello.

Общий заголовок OSPF (поле «Тип» равно 1)
Маска подсети (32 бита)
Интервал Hello (16 бит) Опции (8 бит) Приоритет (8 бит)
Интервал Dead (32 бита)
DR (32 бита)
BDR (32 бита)
Сосед (32 бита)
...
Сосед (32 бита)
Поле «Маска подсети» указывает маску подсети порта, через который посылается сообщение. Это поле устанавливается в шестнадцатеричное значение %FF000000 для сетей класса А, %FFFF0000 для сетей класса В и %FFFFFF00 для сетей класса С.Значения «Интервал Hello» и «Интервал Dead» устанавливаются администратором. Поле «Приоритет» используется при выборе DR и BDR. Каждому маршрутизатору назначается приоритет в пределах от 0 до 255. Выбирается маршрутизатор, имеющий наибольший приоритет. Если маршрутизатор с наибольшим приоритетом выходит из строя или просто отключен, выбирается другой маршрутизатор с наибольшим приоритетом. Он будет оставаться маршрутизатором DR, даже если старый DR вновь будет функционировать. Но маршрутизаторы, у которых приоритет равен 0, никогда не будут избраны DR. В сетях точка-точка выбор DR не производится.Начальная синхронизация баз данных нового маршрутизатора и DR выпол­няется с помощью протокола Exchange. Работу данного протокола можно разде­лить на два этапа. На первом этапе определяются роли двух маршрутизаторов:один становится доминирующим, другой - доминантным. После этого на вто­ром этапе происходит взаимный обмен базами данных с помощью пакетов DDP (Database Description Packet, пакет описания базы данных). После начальной синхронизации с помощью протокола Exchange ответственность за поддержку синхронизации баз данных состояния каналов связи всех маршрутизаторов несет протокол Flooding.В широковещательных сетях и сетях точка-точка сообщения Hello посылают­ся соседям с использованием групповой IP-адресации. В этом случае соседние маршрутизаторы обнаруживаются динамически. В сети, в которой широковеща­тельная передача не поддерживается, сообщения Hello посылаются по списку адресов маршрутизаторов в сети. Данный список ведется на каждом маршрути­заторе, который может (потенциально) стать DR.Для распространения по сети данных о состоянии каналов связи маршрути­заторы обмениваются специальными сообщениями LSA, называемыми Network Links Advertisement (объявления о каналах сети, NLA), - объявлениями о кана­лах и их состоянии. Маршрутизаторы обмениваются не только своими, но и чужими объявлениями о каналах, получая, в конце концов, информацию о со­стоянии всех каналов в сети. По этой информации строится ориентированный граф связей сети (он один и тот же для маршрутизаторов). Кроме информации о соседях маршрутизаторы в своих объявлениях перечисляют IP-подсети, с ко­торыми они связаны непосредственно. Маршрутизатор вычисляет путь не до подсети, а до маршрутизатора, к которому эта подсеть подключена. Каждый мар­шрутизатор имеет уникальный идентификатор, который передается в объявле­нии о состоянии каналов.
Для обмена маршрутной информацией протокол OSPF использует группо­вую адресацию. В этих целях зарезервированы два IP-адреса класса D:
224.0.0.5 - все маршрутизаторы, работающие по протоколу OSPF, долж­ны поддерживать передачу и получение дейтаграмм по этому групповому адресу;
224.0.0.6 - все DR и BDR должны поддерживать получение дейтаграмм с данным групповым адресом.
В соответствии с уже рассмотренными правилами преобразования груп­повых адресов протокола IP в физические адреса канального уровня исполь­зуемые групповые адреса преобразуются в следующие физические адреса (табл. 2).

Таблица 2. Соответствие между групповыми и физическими адресами протокола OSPF
Адрес класса D Физический адрес
224.0.0.5%01-00-5Е-00-00-05
224.0.0.6 %01-00-5Е-00-00-Об

Необходимо отметить, что протокол OSPF не использует групповую переда­чу в сетях NBMA. Все сообщения протокола OSPF начинаются со стандартного заголовка (рис. 9.5).

Рис. 9.5. Формат заголовка сообщений OSPF
Версия (8 бит) Тип (8 бит) Длина сообщения (16 бит)
Идентификатор маршрутизатора (32 бита)
Идентификатор области (32 бита)
Контрольная сумма (16 бит) Идентификатор алгоритма аутентификации (16 бит)
Аутентификация (32 бита)
Аутентификация (продолжение предыдущего поля - 32 бита)

Поля в заголовке имеют следующие значения:
«Версия» указывает на версию протокола OSPF. Текущая версия - 2;
«Тип» указывает на тип сообщения протокола OSPF;
«Длина сообщения» - длина сообщения в байтах;
«Идентификатор маршрутизатора» - это может быть IP-адрес, выбран­ный для идентификации маршрутизатора;
«Идентификатор области» используется для указания области. Общей практикой является выбор IP-адресов в качестве идентификаторов;
«Контрольная сумма» вычисляется для всего сообщения, исключая 8-байтовое поле «Аутентификация»;
«Идентификатор алгоритма аутентификации» может принимать только два значения: 0 - аутентификация не используется, 1 - простая аутентификация.
При простой аутентификации поле «Аутентификация» содержит пароль, состоящий из восьми символов. Администратор может задать различные пароли для каждой сети. Это является хорошей гарантией защиты от случайных оши­бок, например, от некорректной настройки маршрутизатора. Однако это не очень надежный метод защиты от намеренного вмешательства.
Практика показывает, что не существует сетей, в которых используется ис­ключительно протокол OSPF. Совместно с ним применяются протоколы EGP, BGP, RIP IP или фирменные протоколы производителей.