У каждой автономной системы есть магистральная область (backbone area), называемая областью 0. Маршрутизаторы, расположенные в этой области, называются магистральными маршрутизаторами (backbone routers). Все области соединены с магистралью, например, туннелями, так что по магистрали можно попасть из любой области автономной системы в ее любую другую область. Туннель представляется на графе в виде дуги и обладает определенной ценой. Как и в случае других областей, топология магистрали за ее пределами не видна.
Маршрутизатор, соединенный одновременно с двумя и более областями, называется пограничным маршрутизатором области (area border router). Он также должен быть частью магистрали. Его задача — собирать сведения об адресах одной области и передавать их другим областям. Эти сведения включают стоимость передачи, но не всю информацию о топологии области. Зная стоимость передачи, хосты других областей могут выбрать тот маршрутизатор границы области, через который они войдут в эту область. Отсутствие информации о топологии уменьшает трафик и упрощает процесс вычисления кратчайших путей для маршрутизаторов, находящихся вне данной области. Но если вне области есть только один пограничный маршрутизатор области, эти сведения передавать бессмысленно. Все пути, ведущие за пределы области, начинаются с указания: «Идите на пограничный маршрутизатор». Такая область называется тупиковой областью (stub area).
Последний тип маршрутизаторов — пограничные маршрутизаторы автономной системы (AS boundary router). Они передают внутрь области сведения о путях к внешним адресам на другие АС. Внешние пути становятся адресами, до которых можно добраться через пограничный маршрутизатор автономной системы; при этом указывается стоимость передачи. Внешний путь может быть передан на один или более таких маршрутизаторов. Связь между автономными системами, областями и различными типами маршрутизаторов показана на рис. 5.56. Один маршрутизатор может играть несколько ролей — например, быть и пограничным маршрутизатором области, и магистральным маршрутизатором.
Рис. 5.56. Взаимосвязь между автономными системами, магистралями и областями в OSPF
При нормальной работе алгоритма у всех маршрутизаторов, принадлежащих к одной области, имеется одна и та же база данных состояния каналов и один алгоритм выбора кратчайшего пути. Работа маршрутизаторов заключается в расчете кратчайшего пути от себя до всех остальных маршрутизаторов этой области. Маршрутизатор, соединенный с несколькими областями, должен иметь базы данных для каждой из них. Кратчайший путь для каждой области вычисляется отдельно.
Для отправителя и получателя из одной области выбирается наилучший внутриобластной маршрут (полностью лежащий в этой области). Для отправителя и получателя из разных областей межобластной маршрут проходит от источника к магистрали, затем по магистрали к области назначения, а затем уже к адресу назначения. Такой алгоритм приводит к конфигурации типа «звезда», в которой магистраль исполняет роль концентратора, а области являются лучами звезды. Так как при выборе маршрута учитывается его стоимость, разные маршрутизаторы могут попадать на магистраль через разные пограничные маршрутизаторы области. Пакеты направляются от отправителя к получателю в натуральном виде. Они не упаковываются в другие пакеты и не туннелируются, кроме случаев, когда они направляются в области, с которыми магистраль соединена по туннелю. Кроме того, пути к внешним адресам могут включать внешнюю стоимость (от пограничного маршрутизатора по внешнему пути) или только внутреннюю (в пределах АС).
При загрузке маршрутизатор рассылает сообщения ПРИВЕТСТВИЕ (HELLO) по всем своим двухточечным линиям, производя многоадресную рассылку по локальным сетям для групп, состоящих из всех остальных маршрутизаторов. С помощью получаемых ответов каждый маршрутизатор знакомится со своими соседями. Все маршрутизаторы одной ЛВС являются соседями.
Протокол OSPF работает при помощи обмена информацией между смежными маршрутизаторами, что не то же самое, что соседние маршрутизаторы. В частности, общение каждого маршрутизатора с каждым маршрутизатором локальной сети неэффективно. Поэтому один маршрутизатор выбирается назначенным маршрутизатором (designated router — DR). Он считается смежным (adjacent) со всеми остальными маршрутизаторами данной ЛВС и обменивается с ними информацией. Соседние маршрутизаторы, не являющиеся смежными, не обмениваются информацией друг с другом. На случай выхода из строя основного назначенного маршрутизатора всегда поддерживается в готовом состоянии запасной назначенный маршрутизатор (backup designated router — BDR).
При нормальной работе каждый маршрутизатор периодически рассылает методом заливки сообщение ОБНОВЛЕНИЕ СОСТОЯНИЯ КАНАЛОВ (LINK STATE UPDATE) всем своим смежным маршрутизаторам. Это сообщение содержит сведения о состоянии маршрутизатора и предоставляет информацию о цене, используемую в базах данных. В ответ на эти сообщения посылаются подтверждения, что повышает их надежность. Каждое сообщение получает последовательный номер, так что маршрутизатор может распознать, что новее: пришедшее сообщение или сообщение, хранимое им. Маршрутизаторы также рассылают эти сообщения, когда включается или выключается канал или изменяется его цена.
Сообщение ОПИСАНИЕ БАЗЫ ДАННЫХ (DATABASE DESCRIPTION) содержит порядковые номера всех записей о состоянии линий, которыми владеет отправитель. Сравнивая соб
ственные значения со значениями отправителя, получатель может определить, у кого информация новее. Эти сообщения посылаются при восстановлении линии.
Каждый маршрутизатор может запросить информацию о состоянии линий у своего партнера с помощью сообщения ЗАПРОС О СОСТОЯНИИ КАНАЛА (LINK STATE REQUEST). В результате каждая пара смежных маршрутизаторов выясняет, чьи сведения являются более свежими, и, таким образом, по области распространяется наиболее новая информация. Все эти сообщения посылаются в виде IP-пакетов. Пять типов сообщений приведены в табл. 5.9.
Таблица 5.9. Пять типов сообщений протокола OSPF
Подведем итоги. С помощью механизма заливки каждый маршрутизатор информирует все остальные маршрутизаторы своей области о своих связях с другими маршрутизаторами и сетями и о стоимости этих связей. Эта информация позволяет всем маршрутизаторам построить граф своей области и рассчитать кратчайшие пути. Маршрутизаторы магистральной области также занимаются этим. Кроме того, магистральные маршрутизаторы получают информацию от пограничных маршрутизаторов областей, с помощью которой они вычисляют оптимальные маршруты от каждого магистрального маршрутизатора до всех остальных маршрутизаторов. Эта информация рассылается обратно пограничным маршрутизаторам областей, которые распространяют ее в своих областях. С помощью этой информации внутренний маршрутизатор может выбрать оптимальный путь до внешнего адреса и, в том числе, выбрать пограничный маршрутизатор области, имеющий выход к магистрали.
5.6.7. Протокол внешнего шлюза BGP
В пределах одной автономной системы наиболее часто используются протоколы OSPF и IS-IS. При выборе маршрута между различными автономными системами используется другой протокол, BGP (Border Gateway Protocol — пограничный межсетевой протокол). Для выбора маршрута между различными автономными системами действительно требуется другой протокол, так как цели внутридоменного и междоменого протоколов различны. Задача внутридоменного протокола ограничивается максимально эффективной передачей пакетов от отправителя к получателю. Политикой этот протокол не интересуется.
Междоменный протокол, напротив, вынужден заниматься политикой (Metz, 2001). Например, корпоративной автономной системе может понадобиться возможность