Протоколы внешних роутеров предназначены для маршрутизации между доменами маршрутизации. В терминологии Internet (международнойсети, об'единяющей университеты, правительственные учреждения,научно-исследовательские организации и частные коммерческие концерны)доменом маршрутизации называется автономная система (AS). Первым протоколом внешних роутеров, получившим широкое признание в Internet, был протокол EGP(Смотри Главу 26 "ЕGP").Хотя технологияEGP пригодна для сетей, он имеет ряд недостатков, в том числе тот факт,что это скорее протокол досягаемости, а не маршрутизации.
Протокол Граничных роутеров (Border Gateway Protocol - BGP)является попыткой решить самую серьезную проблему EGP. BGP является протоколом маршрутизации между AS, созданным для применения в Internet. В отличие от EGP, BGP предназначен для обнаружения маршрутных петель. BGP можно назвать следующим поколением EGP. Идействительно, BGP и другие протоколы маршрутизации между AS постепенновытесняют EGP из Internet. Версия 3 BGP определена в Запросах дляКомментария (RFC) 1163.
Хотя BGP разработан как протокол маршрутизации между AS, он может использоваться для маршрутизации как в пределах, так и между AS. Двасоседа BGP, сообщающихся из различных AS, должны находиться в одной и той же физической сети. Роутеры BGP, находящиеся впределах одной и той же AS, сообщаются друг с другом, чтобы обеспечить согласующееся представление о данной AS и определить, какой из роутеров BGP данной AS будет служить в качестве точки соединенияпри передаче сообщений в определенные внешние AS и при их приеме.
Некоторые AS являются просто каналами для прохождения через них сетевого трафика. Другими словами, некоторые AS переносят трафик,источник которого не находится в их пределах и который не предназначендля них. BGP должен взаимодействовать с любыми протоколами маршрутизации внутри AS, которые существуют в пределах этих проходныхAS.
Сообщения о корректировках BGP состоят из пар "сетевой номер/тракт AS".Тракт AS содержит последовательность из AS, через которые может бытьдостигнута указанная сеть. Эти сообщения о корректировке отправляютсяс помощью механизма транспортировки TCP для обеспечения надежной доставки.
Обмен исходной информацией между двумя роутерами является содержанием всей маршрутной таблицы BGP. С изменением маршрутнойтаблицы отправляются инкрементные корректировки. В отличие от некоторыхдругих протоколов маршрутизации BGP не требует периодического обновления всей маршрутной таблицы. Вместо этого роутеры BGPхранят новейшую версию маршрутной таблицы каждого равноправногочлена. Хотя BGP поддерживает маршрутную таблицу всех возможныхтрактов к какой-нибудь конкретной сети, в своих сообщениях окорректировке он об'являет только об основных (оптимальных) маршрутах.
Показатель BGP представляет собой произвольное число единиц, характеризующее степень предпочтения какого-нибудь конкретного маршрута. Эти показатели обычно устанавливаются администратором сетис помощью конфигурационных файлов. Степень предпочтения может базироваться на любом числе критериев, включая число AS (тракты с меньшим числом AS как правило лучше), тип канала (стабильность, быстродействие и надежность канала) и другие факторы.
Формат пакета представлен на Рис. 27-1.
Пакеты BGP имеют общий 19-байтовый заголовок, состоящий их трех полей.
Поле маркера (marker) имеет длину 16 байтов и содержит величину, которую получатель сообщения может предсказывать. Это поле используетсядля установки подлинности.
Поле длины (length) содержит полную длину сообщения в байтах.
Поле типа (type) определяет тип сообщения.
RFC 1163 определяет 4 типа сообщений:
После того, как соединение протокола транспортного уровня организовано,первым сообщением, отправляемым каждой стороной, является открывающеесообщение. Если открывающее сообщение приемлемо для получателя, то отправителю отсылается сообщение keepalive, подтверждающее получение открывающего сообщения. После успешного подтверждения принятия открывающего сообщения может быть произведен обмен корректировками, сообщениями keepalive и уведомлениями.
Открывающие сообщения
В дополнение к обычному заголовку пакета BGP в открывающих сообщенияхвыделяют несколько полей. Поле версии (version) обеспечивает номерверсии BGP и дает возможность получателю проверять, совпадает ли его версия с версией отправителя. Поле автономной системы (autonomoussystem) обеспечивает номер AS отправителя. Поле времени удерживания(hold time) указывает максимальное число секунд, которые могут пройти без получения какого-либо сообщения от передающего устройства,прежде чем считать его отказавшим. Поле кода удостоверения (authentication code) указывает на используемый код удостоверения(если он имеется). Поле данных удостоверения (autentication data) содержит фактические данные удостоверения (при их наличии).
Сообщения о корректировке
Сообщения о корректировках BGP обеспечивают корректировки маршрутизациидля других систем BGP. Информация этих сообщений используется для построения графика, описывающего взаимоотношения между различными AS.В дополнение к обычному заголовку BGP сообщения о корректировках имеютнесколько дополнительных полей. Эти поля обеспечивают маршрутную информацию путем перечисления атрибутов трактов, соответствующих каждой сети.В настоящее время BGP определяет 5 атрибутов:
Сообщения keepalive (продолжай действовать)
Сообщения keepalive не содержат каких-либо дополнительных полей помимотех, которые содержатся в заголовке BGP. Эти сообщения отправляютсядовольно часто для того, чтобы препятствовать истечению периода времениудерживания таймера.
Уведомления
Уведомления отправляются в том случае, если была обнаружена сбойная ситуация, и один роутер хочет сообщить другому, почему он закрывает соединение между ними. Помимо обычного заголовка BGP уведомления содержат поле кода ошибки (error code),поле подкода ошибки(error subcode) и данные ошибки (error data).Поле кода ошибки указываеттип ошибки, который может быть одним из перечисленных ниже: