Справочник по сетевым протоколам

       

Протокол BGP


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

BGP, в отличие от предшествующих протоколов маршрутизации, которые взаимодействуют напрямую с протоколом IP, работает поверх протокола транспортного уровня. Например, при работе поверх TCP BGP использует порт 179. Это позволяет не нагружать сервисы обработки протокола BGP механизмами фрагментации или обеспечения достоверности доставки пакетов. Схемы аутентификации протоколов транспортного уровня также могут быть использованы BGP в дополнение к собственной системе аутентификации. Кроме того, хотя BGP разработан как протокол маршрутизации между AS, он может использоваться для маршрутизации и внутри AS.

Основным предназначением BGP является обеспечение обмена информацией с другими BGP-системами о досягаемости определенных сетей или хостов. Эта информация должна содержать набор маршрутов к данной сети, т. е. должны быть указаны все промежуточные AS. Такой информации вполне достаточно для того, чтобы построить граф соединений между AS и проконтролировать возможные маршрутные петли. На основании этих данных BGP выбирает оптимальный маршрут и передает эту информацию своим соседям.

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

Показатели оптимальности — "метрики" BGP представляет собой числа, характеризующее степень предпочтения какого-нибудь конкретного маршрута.


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

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

Для установления соединения, коррекции маршрутов, уведомления друг друга BGP-роутеры использует систему сообщений.

Открывающие сообщения (open message). После того, как организовано соединение протокола транспортного уровня, первым сообщением, отправляемым каждой стороной, является открывающее сообщение. Пакет открывающего сообщения содержит, в дополнение к основному заголовку BGP (рис. 4), несколько дополнительных параметров. Параметр версия (version) — номер версии BGP дает возможность получателю проверять, совпадает ли его версия с версией отправителя. Параметр автономная система (autonomous system)

содержит номер AS отправителя. Параметр время удерживания (hold time) указывает максимальное число секунд, которые могут пройти без получения какого-либо сообщения от передающего устройства, прежде чем считать его отказавшим. Параметр код аутентификации (authentication code) указывает на используемый код удостоверения, если, конечно, таковой имеется- Параметр данных аутентификации (authentication data) содержит возможные данные аутентификации.


0                                     16                                       24                                    31
<



/p>

Marker
Length type


Рис. 4. Заголовок BGP-пакета


Сообщения о корректировке (update message).

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

Источник (origin). Может иметь одно из трех значений: 1GP, EGP и incomplete (незавершенный). Атрибут 1GP означает, что данная сеть является частью данной AS. Атрибут EGP означает, что первоначальные сведения о данной информации получены от протокола EGP. Реализации BGP склонны отдавать предпочтение маршрутам 1GP перед маршрутами EGP, так как маршрут EGP отказывает при наличии маршрутных петель. Атрибут incomplete используется для указания того, что о данной сети известно через какие-то другие средства.
Путь (path). Путь AS. Обеспечивает фактический перечень AS на пути к пункту назначения.
Следующая пересылка (next hop). Содержит адрес IP-роутера, который должен быть использован в качестве следующей пересылки к сетям, перечисленным в сообщении о корректировке.
Недосягаемый (unreachable). Указывает, что какой-нибудь маршрут больше не является досягаемым.
Показатель оптимальности маршрута между AS (inter-AS metric). Обеспечивает для какого-нибудь роутера BGP возможность тиражировать свои затраты на маршруты к пунктам назначения, находящимся в пределах его AS. Эта информация может быть использована роутерами, которые являются внешними по отношению к AS тиражирующего роутера, для выбора оптимального маршрута к конкретному пункту назначения, находящемуся в пределах данной AS.
Сообщения "продолжай действовать" (keepalive message). Эти сообщения не содержат каких-либо дополнительных полей помимо тех, которые содержатся в заголовке BGP.
Уведомления об ошибках (error message).

Уведомления отправляются в том случае, если была обнаружена сбойная ситуация и один роутер хочет сообщить другому, почему он закрывает соединение между ними. В сообщении содержится код ошибки (error code), подкод ошибки (error subcode) и данные ошибки (error data).
<


Содержание раздела