Открыть сервис

BGP-4

BGP-4 (Border Gateway Protocol версии 4) — это протокол динамической маршрутизации, относящийся к классу протоколов внешних шлюзов (EGP), используемый для обмена информацией о маршрутах между автономными системами (AS) в глобальной сети Интернет. Является единственным де-факто стандартом для организации междоменной маршрутизации, обеспечивая связность между различными провайдерами, корпоративными сетями и дата-центрами. BGP-4 был определён в RFC 4271 (2006 год) и заменил более ранние версии BGP, включая BGP-3.

История

Разработка протокола BGP началась в конце 1980-х годов в ответ на рост Интернета и необходимость замены устаревшего протокола EGP (Exterior Gateway Protocol), который не справлялся с управлением маршрутами в быстро расширяющейся сети. Первая версия BGP (BGP-1) была описана в RFC 1105 в 1989 году, а BGP-2 — в RFC 1163 (1990). Версия BGP-3 появилась в 1991 году (RFC 1267).

Основным достижением BGP-4, представленного в RFC 1654 (1994) и окончательно стандартизированного в RFC 4271, стало введение поддержки бесклассовой междоменной маршрутизации (CIDR). Это позволило агрегировать IP-адреса и значительно сократить размер таблиц маршрутизации, что было критически важно для предотвращения коллапса интернет-маршрутизации в середине 1990-х годов. С тех пор BGP-4 остаётся основным протоколом маршрутизации в Интернете, с последующими расширениями, такими как поддержка IPv6 (MP-BGP) и различных типов VPN.

Принцип работы

BGP-4 является протоколом вектора пути (path vector protocol). В отличие от протоколов состояния канала (OSPF, IS-IS) или дистанционно-векторных (RIP), BGP не распространяет информацию о топологии сети, а передаёт список атрибутов маршрута, включая последовательность номеров автономных систем (AS_PATH), через которые прошёл маршрут. Это позволяет избежать образования петель маршрутизации.

Основные понятия

  • Автономная система (AS) — совокупность маршрутизаторов и сетей, находящихся под единым административным управлением и использующих единую политику маршрутизации. Каждая AS имеет уникальный номер (ASN) — 16-битное (до 65535) или 32-битное (RFC 6793) целое число.
  • BGP-спикер (BGP speaker)маршрутизатор, на котором запущен процесс BGP.
  • BGP-сессия (BGP peering) — логическое соединение между двумя BGP-спикерами, устанавливаемое через TCP-порт 179. Сессии могут быть внутренними (iBGP — внутри одной AS) и внешними (eBGP — между разными AS).
  • NLRI (Network Layer Reachability Information)информация о достижимости сетей, передаваемая в сообщениях BGP. Включает префикс IP-сети и длину маски.

Типы сообщений

BGP-4 использует четыре типа сообщений:

  1. OPEN — устанавливает сессию и согласовывает параметры (версия протокола, ASN, время удержания).
  2. UPDATE — передаёт информацию о новых маршрутах (NLRI) и отзывает ранее объявленные.
  3. KEEPALIVE — подтверждает активность сессии (обычно отправляется каждые 60 секунд).
  4. NOTIFICATION — уведомляет об ошибке и закрывает сессию.

Атрибуты маршрутов

Каждый маршрут в BGP сопровождается набором атрибутов, которые определяют политику выбора наилучшего пути. Ключевые атрибуты:

  • AS_PATH — список номеров AS, через которые прошёл маршрут. Используется для обнаружения петель и выбора кратчайшего пути (по количеству AS).
  • NEXT_HOPIP-адрес следующего маршрутизатора, куда следует отправлять пакеты.
  • LOCAL_PREF — атрибут, используемый только внутри AS (iBGP) для указания предпочтительности выхода из AS. Чем выше значение, тем предпочтительнее маршрут.
  • MULTI_EXIT_DISC (MED) — атрибут, передаваемый между AS для указания предпочтительности входа в AS. Чем ниже значение, тем предпочтительнее.
  • ORIGIN — источник маршрута (IGP, EGP, неполный).
  • COMMUNITY — тег, позволяющий группировать маршруты и применять к ним общие политики (например, «не анонсировать за пределы AS»).

Выбор наилучшего маршрута

BGP-спикер может получить несколько маршрутов к одной и той же сети. Выбор наилучшего пути происходит по строгому алгоритму, включающему следующие шаги (в порядке приоритета):

  1. Маршрут с наибольшим значением LOCAL_PREF.
  2. Маршрут с наименьшей длиной AS_PATH.
  3. Маршрут с наименьшим типом ORIGIN (IGP < EGP < неполный).
  4. Маршрут с наименьшим значением MED.
  5. Предпочтение eBGP-маршрутов перед iBGP-маршрутами.
  6. Маршрут через ближайший IGP-сосед (с наименьшей метрикой до NEXT_HOP).
  7. Маршрут от BGP-спикера с наименьшим Router ID.

Классификация и виды

BGP-4 классифицируется по нескольким признакам:

  • По типу сессии:
  • eBGP (External BGP) — между маршрутизаторами в разных AS. Используется провайдерами и крупными организациями для обмена маршрутами.
  • iBGP (Internal BGP) — внутри одной AS. Требуется полная связность (full mesh) между всеми iBGP-спикерами, так как iBGP не пересылает маршруты, полученные от другого iBGP-соседа. Для упрощения используются Route Reflectors (RFC 4456) или Confederations (RFC 5065).
  • По функциональности:
  • MP-BGP (Multiprotocol BGP) — расширение BGP-4, определённое в RFC 4760, позволяющее передавать маршруты для различных протоколов сетевого уровня (IPv6, VPN, MPLS, L2VPN). Является основой для построения MPLS VPN и 6PE.
  • BGP-LS (BGP Link State) — расширение, позволяющее BGP передавать информацию о состоянии каналов (link-state) для использования в контроллерах SDN.

Применение

BGP-4 является фундаментальным протоколом для функционирования Интернета. Его основные области применения:

  • Междоменная маршрутизация: Обмен маршрутами между автономными системами (провайдерами, контент-сетями, корпоративными сетями). BGP позволяет реализовывать сложные политики маршрутизации, такие как выбор наилучшего пути на основе стоимости, производительности или географического расположения.
  • Построение MPLS VPN: MP-BGP используется для распространения информации о VPN-маршрутах и метках MPLS между провайдерскими маршрутизаторами (PE-маршрутизаторами). Это позволяет создавать изолированные виртуальные частные сети (VPN) поверх общей инфраструктуры.
  • Маршрутизация в дата-центрах: Крупные дата-центры (например, у Google, Amazon, Яндекс) используют BGP для организации маршрутизации внутри своих сетей, часто в сочетании с протоколами IGP (OSPF, IS-IS) для внутренней топологии.
  • Балансировка трафика и отказоустойчивость: BGP позволяет объявлять одни и те же сети из нескольких точек (AS) с разными атрибутами (AS_PATH, MED), что реализует механизмы мультихоминга (multi-homing) и распределения нагрузки.
  • Интернет-обмен (IX): На точках обмена трафиком (IXP) BGP используется для установления пиринговых соединений между различными операторами.

Критика и проблемы

Несмотря на широкое распространение, BGP-4 имеет ряд недостатков и уязвимостей:

  • Проблемы безопасности: BGP изначально не предусматривал механизмов аутентификации и проверки достоверности маршрутов. Это делает его уязвимым для атак, таких как BGP-хайекинг (BGP hijacking) — перехват трафика путём объявления ложных маршрутов. Примеры: инцидент с YouTube в 2008 году (перехват трафика компанией Pakistan Telecom), атака на криптовалютные сервисы в 2022 году. Для защиты разрабатываются расширения, такие как RPKI (Resource Public Key Infrastructure) и BGPsec (RFC 8205), но их внедрение идёт медленно.
  • Медленная сходимость: BGP может требовать значительного времени для восстановления маршрутизации после сбоя (от нескольких секунд до минут), особенно в сложных топологиях.
  • Сложность конфигурации: Настройка BGP требует глубоких знаний сетевых протоколов и политик. Ошибки в конфигурации могут привести к серьёзным сбоям в работе сети.
  • Рост таблиц маршрутизации: Несмотря на CIDR, количество маршрутов в глобальной таблице BGP (DFZ — Default-Free Zone) продолжает расти, превышая 1 миллион префиксов (на 2024 год). Это требует от маршрутизаторов больших объёмов памяти и вычислительных ресурсов.

Интересные факты

  • BGP-4 является одним из немногих протоколов, который не использует UDP или IP напрямую, а полагается на TCP для надёжной доставки сообщений.
  • Протокол не требует обязательного знания топологии сети — он работает на основе политик, определённых администратором.
  • В России BGP-4 активно используется операторами связи (ПАО «Ростелеком», ПАО «МТС», ПАО «ВымпелКом» и др.) для организации междоменной маршрутизации и подключения к точкам обмена трафиком (например, MSK-IX, SPB-IX).
  • Существуют проекты, такие как «BGPmon» и «RIPE RIS», которые в реальном времени отслеживают объявления BGP-маршрутов и выявляют аномалии.

Источники

  • RFC 4271 — A Border Gateway Protocol 4 (BGP-4)
  • RFC 4760 — Multiprotocol Extensions for BGP-4
  • RFC 4456 — BGP Route Reflection
  • RFC 8205 — BGPsec Protocol Specification
  • Столлингс В. — «Современные компьютерные сети» (глава 12)
  • Олифер В.Г., Олифер Н.А. — «Компьютерные сети. Принципы, технологии, протоколы» (глава 10)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →