Последний тип маршрутизаторов — пограничные маршрутизаторы автономной системы (AS boundary routers). Они прокладывают пути на внешние адреса в других АС области. Внешние маршруты становятся адресатами, до которых можно добраться через пограничный маршрутизатор АС с определенными затратами. Внешний путь может проходить один или несколько таких маршрутизаторов. Связь между АС, областями и разными типами маршрутизаторов показана на илл. 5.66. Один маршрутизатор может играть несколько ролей — например, быть и пограничным, и магистральным.
Илл. 5.66. Взаимосвязь между АС, магистралями и областями в OSPF
При нормальной работе алгоритма у всех маршрутизаторов, принадлежащих к одной области, имеется одна и та же база данных состояния каналов и один алгоритм выбора кратчайшего пути. Работа маршрутизатора состоит в расчете кратчайшего пути от самого себя до всех остальных маршрутизаторов этой области. Маршрутизатор, соединенный с несколькими областями, должен иметь базы данных для каждой из них. Кратчайший путь для каждой области вычисляется отдельно.
Для отправителя и получателя из одной области выбирается наилучший внутриобластной маршрут (не выходящий за ее пределы). Для отправителя и получателя из разных областей межобластной маршрут проходит от источника к магистрали, затем по магистрали к области назначения, а затем уже к получателю. В результате возникает конфигурация «звезда», в которой магистраль исполняет роль концентратора, а области являются лучами. При выборе пути учитываются издержки, поэтому разные маршрутизаторы могут попадать на магистраль через разные пограничные маршрутизаторы области. Пакеты направляются от отправителя к получателю в исходном виде. Они не помещаются в другие пакеты и не туннелируются (помимо случаев, когда они направляются в области, с которыми магистраль соединена туннелем). Кроме того, пути к внешним адресам сопровождаются внешними издержками (от пограничного маршрутизатора по внешнему пути) или только внутренними (в пределах АС).
При запуске маршрутизатор отправляет сообщение HELLO (приветствие) по всем своим двухточечным линиям и производит многоадресную рассылку по локальным сетям группе, куда входят все остальные маршрутизаторы. Благодаря ответам маршрутизатор знакомится со своими соседями. Все маршрутизаторы одной LAN являются соседями.
Протокол OSPF работает за счет обмена информацией между смежными маршрутизаторами (а это не то же самое, что соседние). В частности, взаимодействие каждого маршрутизатора со всеми остальными неэффективно. Поэтому один из них становится назначенным маршрутизатором (designated router, DR). Он считается смежным (adjacent) со всеми остальными маршрутизаторами данной LAN и обменивается с ними информацией. По сути, он выступает в роли узла, представляющего LAN. Соседние маршрутизаторы, не являющиеся смежными, не обмениваются данными друг с другом. На случай выхода из строя основного назначенного маршрутизатора существует резервный, готовый заменить его в любой момент.
Работая в штатном режиме, каждый маршрутизатор периодически рассылает методом лавинной адресации сообщение LINK STATE UPDATE (Обновление состояния каналов) смежным маршрутизаторам. Сообщение предоставляет сведения о состоянии маршрутизатора и о затратах на топологическую базу данных. В ответ приходят подтверждения LINK STATE ACK, что повышает надежность. Каждое сообщение имеет последовательный номер, чтобы маршрутизатор мог определить, какое из них новее: только что полученное или уже имеющееся. Маршрутизаторы также рассылают эти сообщения, когда включается или выключается канал или изменяется его стоимость.
Сообщение DATABASE DESCRIPTION (Описание базы данных) содержит порядковые номера всех имеющихся у отправителя записей о состоянии линий. Сравнив свои значения с данными источника, получатель определяет, чья информация актуальнее. Эти сообщения передаются при восстановлении линии.
Каждый маршрутизатор может запросить информацию о состоянии линий у своего партнера с помощью сообщения LINK STATE REQUEST (Запрос о состоянии канала). Таким образом каждая пара смежных маршрутизаторов выясняет, чьи сведения более свежие, и по области распространяется самая новая информация. Все сообщения отсылаются в виде IP-пакетов. Пять типов сообщений приведены на илл. 5.67.
Подведем итоги. С помощью алгоритма лавинной адресации каждый маршрутизатор информирует всех остальных внутри области о своих связях с другими маршрутизаторами и сетями, а также о стоимости этих связей. Эта информация позволяет всем маршрутизаторам построить граф своей области и рассчитать кратчайшие пути. В магистральной области происходит то же самое. Кроме того, магистральные маршрутизаторы получают информацию от пограничных маршрутизаторов областей и с ее помощью вычисляют оптимальные пути от каждого магистрального до всех остальных маршрутизаторов.
Тип сообщения
Описание
Hello
Используется для знакомства с соседями
Link state update
Сообщает соседям информацию о каналах отправителя
Link state ack
Подтверждает обновление состояния каналов
Database description
Сообщает о том, насколько свежей информацией располагает отправитель
Link state request
Запрашивает информацию у партнера
Илл. 5.67. Пять типов сообщений протокола OSPF
Эта информация рассылается обратно пограничным маршрутизаторам областей, а они распространяют ее в своих областях. Обладая такими данными, внутренний маршрутизатор может найти кратчайший путь до внешнего адресата и оптимальный пограничный маршрутизатор области с выходом к магистрали.
5.7.7. Протокол внешнего шлюза BGP
В пределах одной АС наиболее часто используются протоколы OSPF и IS-IS. При выборе маршрута между различными системами используется пограничный межсетевой протокол (Border Gateway Protocol, BGP). Для этого действительно требуется другой протокол, так как цели внутридоменного и междоменного протоколов различны. Внутридоменный протокол должен максимально эффективно передавать пакеты от отправителя к получателю. Политика маршрутизации его не интересует.
Междоменный протокол, напротив, вынужден ее учитывать (Мец; Metz, 2001). Допустим, корпоративная АС хочет принимать и отправлять пакеты на любой интернет-сайт. Но скорее всего, она откажется от роли транзитной сети для пакета, источник и адресат которого находятся за пределами данного государства (даже если через нее проходит кратчайший путь — «Это их проблемы!»). С другой стороны, АС совсем не против передавать трафик других систем (возможно, соседних), которые оплачивают эту услугу. Например, телефонные компании были бы рады предоставлять такой сервис, но только своим клиентам. Протоколы внешнего шлюза вообще и BGP в частности разрабатывались, чтобы обеспечить реализацию разных стратегий выбора маршрута между АС.
Как правило, стратегии маршрутизации учитывают политический и экономический факторы, а также соображения безопасности. Приведем несколько примеров ограничений при выборе пути.
1. Не передавать коммерческий трафик в образовательные сети.
2. Никогда не передавать трафик Пентагона по маршруту, идущему через Ирак.