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

Border Gateway Protocol

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

История

Протокол BGP был разработан в конце 1980-х годов как замена устаревшему протоколу внешних шлюзов (EGP), который не мог справляться с ростом и сложностью сети Интернет. Первая версия, BGP-1, была описана в RFC 1105 (1989 год). Вскоре последовали версии BGP-2 (RFC 1163, 1990) и BGP-3 (RFC 1267, 1991). Современная версия, BGP-4, была стандартизирована в RFC 1771 (1995 год) и впоследствии уточнена в RFC 4271 (2006 год). Основным нововведением BGP-4 стала поддержка бесклассовой междоменной маршрутизации (CIDR), что позволило агрегировать IP-адреса и существенно замедлить рост таблиц маршрутизации.

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

BGP функционирует на прикладном уровне модели OSI (уровень 7) и использует транспортный протокол TCP (порт 179) для установления и поддержания соединений между маршрутизаторами. Протокол работает в режиме «путь-вектор» (path-vector), что означает, что каждый маршрут (префикс) передаётся вместе с атрибутами, описывающими путь к нему через последовательность автономных систем (AS_PATH). Это позволяет избежать петель маршрутизации и даёт администраторам гибкие инструменты для управления трафиком.

Типы BGP-сессий

Различают два основных типа BGP-сессий:

  • Внешний BGP (eBGP) — сессия между маршрутизаторами, принадлежащими разным автономным системам. Используется для обмена маршрутами между провайдерами или между провайдером и клиентом.
  • Внутренний BGP (iBGP) — сессия между маршрутизаторами внутри одной автономной системы. Необходим для синхронизации информации о внешних маршрутах между всеми маршрутизаторами AS. В iBGP действует правило: маршруты, полученные от одного iBGP-соседа, не передаются другим iBGP-соседям (правило «полная связность»). Для обхода этого ограничения часто используют маршрутизаторы-отражатели (Route Reflectors) или конфедерации.

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

BGP использует множество атрибутов, которые влияют на выбор наилучшего пути. Основные из них:

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

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

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

  1. Наивысший вес (локальный параметр Cisco).
  2. Наивысшая LOCAL_PREF.
  3. Маршрут, объявленный локально (сеть, подключённая напрямую).
  4. Кратчайший AS_PATH.
  5. Наименьший ORIGIN (IGP < EGP < неполный).
  6. Наименьшая MED.
  7. Предпочтение eBGP перед iBGP.
  8. Наименьшая метрика до NEXT_HOP (по IGP).
  9. Наименьший IP-адрес маршрутизатора-соседа.

Применение

BGP является основой маршрутизации в Интернете. Он используется:

  • Провайдерами интернет-услуг (ISP) — для обмена маршрутами между собой и с клиентами.
  • Крупными корпоративными сетями — для подключения к нескольким провайдерам (мультихоминг) и управления трафиком.
  • Центрами обработки данных (ЦОД) — для балансировки нагрузки и обеспечения отказоустойчивости.
  • Сетями доставки контента (CDN) — для оптимизации маршрутов к пользователям.

Уязвимости и проблемы безопасности

BGP был разработан в эпоху, когда безопасность не была приоритетом, и поэтому имеет ряд уязвимостей. Основные угрозы:

  • Угон маршрутов (BGP hijacking) — злоумышленник объявляет префикс, принадлежащий другой сети, и перехватывает трафик. Примеры: инцидент с YouTube в 2008 году (пакистанский провайдер случайно объявил маршрут к YouTube) и атака на криптовалютные сервисы в 2018 году.
  • Утечка маршрутов (route leak) — некорректная передача маршрутов, полученных от одного соседа, другому соседу, что может привести к перегрузке каналов и нарушению связности.
  • Подделка атрибутов — изменение AS_PATH или других атрибутов для манипуляции трафиком.

Для защиты от этих угроз разработаны механизмы, такие как RPKI (Resource Public Key Infrastructure) — инфраструктура открытых ключей для проверки права на объявление префиксов, и BGPsec — расширение протокола, добавляющее цифровые подписи к маршрутам. Однако их внедрение в глобальном масштабе остаётся медленным.

Критика

BGP критикуется за сложность конфигурации, отсутствие встроенных механизмов безопасности и медленную сходимость (convergence) при изменениях топологии сети. Также отмечается, что протокол основан на доверии между операторами, что делает его уязвимым для человеческих ошибок и злонамеренных действий. Некоторые эксперты предлагают заменить BGP на более современные протоколы, такие как LISP (Locator/ID Separation Protocol) или SDN-решения, но полный переход на альтернативы пока не произошёл из-за масштаба и инерции существующей инфраструктуры.

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

  • BGP-таблица маршрутизации (полная таблица Интернета) содержит более 900 000 префиксов (по состоянию на 2024 год) и продолжает расти.
  • Крупнейшие сбои в Интернете часто связаны с ошибками в конфигурации BGP, например, сбой в работе Facebook (организация признана экстремистской и запрещена в РФ) в 2021 году, когда из-за ошибки BGP были отозваны маршруты к DNS-серверам компании.
  • Протокол BGP используется не только в Интернете, но и в частных сетях MPLS VPN для обмена маршрутами между клиентами.

Источники

  • RFC 4271 — A Border Gateway Protocol 4 (BGP-4)
  • RFC 4456 — BGP Route Reflection
  • RFC 5065 — Autonomous System Confederations for BGP
  • RFC 8205 — BGPsec Protocol Specification
  • Стивен Хейлби, «Справочник по BGP» (BGP Design and Implementation)
  • Материалы курса «Computer Networks» (Стэнфордский университет)

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

На главную BFOmetr →