BGP (, протокол граничного шлюза) — протокол динамической маршрутизации.

Относится к классу протоколов маршрутизации внешнего шлюза ().

На текущий момент является основным протоколом динамической маршрутизации в сети Интернет.

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

BGP поддерживает бесклассовую адресацию и использует суммирование маршрутов для уменьшения таблиц маршрутизации. С 1994 года действует четвёртая версия протокола, все предыдущие версии являются устаревшими.

BGP, наряду с DNS, является одним из главных механизмов, обеспечивающих функционирование Интернета.

BGP является протоколом прикладного уровня и функционирует поверх протокола транспортного уровня TCP (порт 179). После установки соединения передаётся информация обо всех маршрутах, предназначенных для экспорта. В дальнейшем передаётся только информация об изменениях в таблицах маршрутизации. При закрытии соединения удаляются все маршруты, информация о которых передана противоположной стороной.

Формат сообщения Сообщение BGP начинается с заголовка, после которого, в зависимости от типа сообщения, могут следовать данные. Максимальная длина сообщения — 4096 октетов, минимальная — 19 октетов. Заголовок сообщения содержит следующие поля: Маркер (16 октетов) — используется для совместимости, должен быть заполнен единицами; Длина (2 октета) — длина сообщения в октетах, включая заголовок; Тип (1 октет): 1 — Открытие; 2 — Обновление информации; 3 — Оповещение; 4 — Сохранение соединения.

Открытие Первое сообщение после установки соединения должно быть «Открытие». Если сообщение успешно обработано, в ответ будет послано «Сохранение соединения». В дополнение к заголовку BGP сообщение «Открытие» содержит следующие поля: Версия (1 октет) — версия протокола, текущее значение 4; Моя система (2 октета) — номер автономной системы; Интервал времени (2 октета) — максимальный интервал времени в секундах между получением сообщений «Обновление информации» или «Сохранение соединения»; Идентификатор отправителя (4 октета) — устанавливается равным IP-адресу; Длина дополнительных параметров (1 октет); Дополнительные параметры: Тип параметра (1 октет); Длина параметра (1 октет); Значение параметра.

Обновление информации Сообщение «Обновление информации» предназначено для передачи информации о маршрутах между АС. Сообщение может указывать новые маршруты и удалять неработающие. Структура сообщения: + Флаги атрибутов БитЗначение 01 – дополнительный, 0 – стандартный 11 – транзитивный (для стандартных всегда 1) 21 – информация частичная, 0 – полная 31 – поле длины атрибута два октета, 0 – один октет 4не используются, должны быть 0 5 6 7

Длина удаляемых маршрутов (2 октета); Удаляемые маршруты: Длина (1 октет) — длина в битах префикса IP-адреса; Префикс IP-адреса, дополненный минимальным количеством бит до полного октета; Длина атрибутов пути (2 октета); Атрибуты пути: Тип атрибута: Флаг атрибута; Код атрибута; Длина атрибута (1 или 2 октета, в зависимости от флага); Данные атрибута; Информация о достижимости — список префиксов IP-адресов: Длина (1 октет) — длина в битах префикса IP-адреса (нулевая длина — соответствие всем IP-адресам); Префикс IP-адреса, дополненный минимальным количеством бит до полного октета. Все атрибуты пути соответствуют всем записям в поле «Информация о достижимости».

Сохранение соединения Сообщение сохранения соединения должно посылаться не реже чем раз в одну третью часть максимального интервала времени между сообщениями, но не чаще чем один раз в секунду. Если интервал времени установлен равным нулю, то сообщение не должно периодически рассылаться. Сообщение не использует дополнительных полей.

Оповещение Оповещение посылается в случае обнаружения ошибки, при этом соединение закрывается. Сообщение содержит следующие поля: Код ошибки (1 октет); Субкод (3 октет); Данные.

Процесс выбора Процесс выбора запускается после обновления информации и служит для отбора маршрутов, предназначенных для использования локально и передачи другим маршрутизаторам, использующим BGP. Процесс использует атрибуты полученных маршрутов для оценки степени предпочтения маршрута или информации о том, что маршрут является неподходящим для занесения в базу маршрутов и должен быть исключён из процесса отбора. Процесс делится на три фазы: Вычисление степени предпочтения каждого полученного маршрута; Выбор наилучшего маршрута для каждого места назначения и занесение его в базу маршрутов; Передача маршрутов на другие маршрутизаторы, при этом может производиться суммирование маршрутов.

См. также EGP IGP RIP2

Примечания

Ссылки RFC 1105, A Border Gateway Protocol version 1 RFC 1163, A Border Gateway Protocol version 2 RFC 1164, Application of the Border Gateway Protocol in the Internet RFC 1265, BGP Protocol Analysis RFC 1266, Experience with the BGP Protocol RFC 1403, BGP OSPF Interaction RFC 4271, A Border Gateway Protocol 4 (BGP-4) RFC 1772, Application of the Border Gateway Protocol version 4 in the Internet RFC 1773, Experience with the BGP-4 Protocol RFC 4274, BGP-4 Protocol Analysis RFC 1863, A BGP4/IDRP Route Server alternative to a full mesh routing RFC 1997, BGP Communities Attribute RFC 1998, An Application of the BGP Community Attribute in Multi-home Routing

Категория:Протоколы маршрутизации Категория:Интернет-протоколы