BGP
BGP (рус. протокол граничного шлюза, англ. Border Gateway Protocol) — протокол динамической маршрутизации внешнего шлюза (EGP), обеспечивающий обмен информацией о достижимости сетевых префиксов между автономными системами (АС) и тем самым поддерживающий работу глобальной сети Интернет[3].
Протокол функционирует поверх TCP-порта 179, поддерживает бесклассовую междоменную маршрутизацию (CIDR) и предоставляет широкие возможности для реализации политик маршрутизации[4].
Общие сведения
| Протокол граничного шлюза | |
|---|---|
| англ. Border Gateway Protocol | |
| Область использования | Компьютерные сети, Маршрутизация, Интернет |
| Дата появления | 1989[1] |
| Место появления | Остин, Техас[2] |
| Автор понятия | Яков Рекхтер и Кирк Лугид[2] |
Определение
BGP — это прикладной протокол, предназначенный для:
- обмена информацией о доступности сетевых префиксов между АС;
- выбора наилучших маршрутов на основе атрибутов пути и настроенных политик;
- распространения выбранных маршрутов соседним системам;
- быстрой адаптации к изменениям топологии сети;
- обеспечения базовой аутентификации обмена маршрутами[5].
Базовые характеристики протокола:
- Относится к классу EGP;
- Использует надёжный транспорт TCP (порт 179) для передачи сообщений[6];
- Актуальная версия — BGP-4, поддерживающая CIDR (1994 г.)[4];
- Работает на принципах инкрементальных обновлений, передавая только изменившиеся маршруты[3].
- eBGP — обмен маршрутами между различными автономными системами. Пиры, как правило, подключены напрямую[6];
- iBGP — обмен маршрутами внутри одной АС; прямое соединение не требуется[7].
BGP-сессия проходит шесть состояний: Idle → Connect → Active → OpenSent → OpenConfirm → Established[8].
BGP использует четыре сообщения с фиксированным 19-байтовым заголовком[9]:
- OPEN — установление соседства (версии, ASN, Hold Time, BGP ID);
- UPDATE — объявление, изменение или отзыв маршрутов (NLRI, атрибуты пути);
- KEEPALIVE — подтверждение работоспособности сессии;
- NOTIFICATION — сообщение об ошибке; после отправки сессия разрывается.
- Adj-RIB-In — необработанные маршруты, полученные от соседа;
- Loc-RIB — таблица, содержащая отфильтрованные и отобранные наилучшие маршруты;
- Adj-RIB-Out — маршруты, подлежащие объявлению соседям[10].
- ORIGIN, AS_PATH, NEXT_HOP — общеизвестные обязательные атрибуты;
- LOCAL_PREF — общеизвестный дискреционный атрибут (выбор исходящего пути);
- MED, COMMUNITY, WEIGHT и др. — опциональные атрибуты, задающие детальную политику[11].
Протокол зародился в январе 1989 года на 12-й встрече IETF в Остине, штат Техас. Во время обеда инженеры Яков Рекхтер (на тот момент сотрудник IBM) и Кирк Лугид (Cisco Systems) набросали первоначальную архитектуру BGP на бумажных салфетках. Благодаря этому эпизоду протокол получил прозвище «протокол двух салфеток» (англ. the two-napkin protocol)[12].
Первая формальная спецификация, BGP-1, была опубликована в июне 1989 года в документе RFC 1105[13][14]. В последующие годы протокол получил несколько обновлений:
- BGP-2 — описан в RFC 1163 (июнь 1990)[13];
- BGP-3 — описан в RFC 1267 (октябрь 1991)[13];
- BGP-4 — текущая версия протокола, изначально представленная в RFC 1654 (1994 год), которая ввела поддержку CIDR[15].
Хотя фундаментальная версия протокола, BGP-4, была определена в 1994 году, её возможности были значительно расширены для соответствия требованиям растущего Интернета[16]. В 2006 году был выпущен RFC 4271, который стал текущим стандартом для BGP-4. Этот документ не внёс революционных изменений, но уточнил и систематизировал спецификации протокола на основе многолетнего опыта его эксплуатации[17].
Ключевые расширения протокола включают:
Масштабируемость и гибкость:
- Рефлексия маршрутов (англ. Route Reflection): Описана в RFC 4456 (обновившем RFC 1966). Позволила отказаться от требования полносвязной (англ. full-mesh) топологии для сессий iBGP, что значительно упростило конфигурацию в крупных сетях[18];
- Конфедерации (англ. Confederations): Стандартизированы в RFC 5065 (обновившем RFC 1965). Позволяют разбить одну большую АС на несколько подавтономных систем для уменьшения количества iBGP-сессий[18];
- Атрибут Communities: Введён в RFC 1997 для маркировки маршрутов специальными метками, что упрощает применение единых политик маршрутизации[18];
- Демпфирование колебаний маршрутов (англ. Route Flap Damping): Механизм из RFC 2439, предназначенный для повышения стабильности сети путём наложения штрафов на часто изменяющиеся («колеблющиеся») маршруты[18].
Поддержка новых протоколов и адресного пространства:
- Multiprotocol BGP (MP-BGP): Расширение, описанное в RFC 4760 (обновившем RFC 2283), позволило BGP передавать маршрутную информацию не только для IPv4, но и для других семейств адресов, таких как IPv6 и VPN[18];
- 4-байтовые номера AS: В связи с исчерпанием 2-байтовых номеров, RFC 4893 ввёл поддержку 32-битных номеров, значительно расширив доступное пространство для автономных систем.
Повышение безопасности:
- Аутентификация сессий по MD5: RFC 2385 ввёл возможность защиты BGP-сессий с помощью MD5-подписей для каждого TCP-сегмента, что помогает предотвратить атаки с подменой BGP-сообщений[18];
- BGPsec: Расширение, описанное в RFC 8205, обеспечивает криптографическую проверку пути маршрута. Каждая АС на пути следования подписывает анонс, что позволяет защититься от перехвата префиксов и подмены пути[19].
Дополнительные возможности:
Этапы работы протокола BGP
- Установление сессии — прохождение состояний FSM и согласование параметров с помощью сообщений OPEN и KEEPALIVE[21];
- Первичный обмен маршрутов — передача полных таблиц маршрутизации после перехода в состояние Established[6];
- Выбор наилучшего пути — применение алгоритма, который последовательно учитывает WEIGHT, LOCAL_PREF, длину AS_PATH, ORIGIN, MED и др[22];
- Распространение маршрутов — отправка UPDATE-сообщений соседям; от iBGP к iBGP маршруты не пересылаются (правило split-horizon), для масштабирования применяются route-reflectors[23];
- Обработка изменений — при появлении/удалении префиксов BGP генерирует инкрементальные UPDATE-сообщения, пересчитывает таблицы и повторяет выбор маршрутов[3].
- Масштабируемость — способен обрабатывать глобальные таблицы маршрутов;
- Тонкая политика управления трафиком благодаря атрибутам пути[24];
- Надёжность обмена (TCP), инкрементальные обновления и предотвращение петель через AS_PATH;
- Поддержка CIDR и агрегирования маршрутов[4].
- Сложность конфигурации и высокая пороговая квалификация персонала;
- Низкая скорость сходимости по сравнению с OSPF или IS-IS[25];
- Уязвимость к атакам (например, перехвату префиксов) из-за отсутствия в изначальном дизайне протокола встроенных механизмов аутентификации маршрутов;
- Значительные требования к памяти и CPU маршрутизатора при обработке полной таблицы маршрутов (англ. full view).
Несмотря на усилия по повышению безопасности, ландшафт угроз для BGP постоянно пополняется новыми векторами атак и уязвимостями в программных реализациях.
Новые типы атак
- Атака «Kirin» (2024 г.) — вектор атаки, использующий большое адресное пространство IPv6 для генерации миллионов уникальных маршрутов[26]. Эти анонсы распределяются через множество точек обмена трафиком, что позволяет обойти стандартные защитные механизмы, такие как ограничение на количество префиксов от одного соседа. Цель атаки — переполнить таблицы маршрутизации (RIB/FIB) на маршрутизаторах, что приводит к их сбою и нарушению работы сети[27];
- «Призрачные маршруты» (англ. BGP Zombies) — феномен, при котором записи о маршрутах продолжают существовать в таблицах маршрутизации даже после их официального отзыва. Это происходит из-за потери сообщений об отзыве маршрута (англ. BGP Withdrawal) и может приводить к созданию петель маршрутизации и неоптимальной доставке трафика.
Уязвимости в программных реализациях
- FRRouting — в 2022—2023 годах в популярном пакете маршрутизации с открытым исходным кодом был обнаружен ряд уязвимостей (CVE-2022-40302, CVE-2022-40318, CVE-2022-43681), позволяющих вызвать отказ в обслуживании (DoS). Злоумышленник мог отправить специально сформированное сообщение BGP OPEN, которое приводило к сбою BGP-сессии у соседа. Учитывая использование FRR в продуктах крупных вендоров (например, Nvidia), эти уязвимости представляют риск для всей цепочки поставок[28].
- Оборудование вендоров — производители сетевого оборудования регулярно сообщают об уязвимостях в своих реализациях BGP:
- Cisco — в 2018 году была обнаружена уязвимость CVE-2018-0295 в Cisco NX-OS, позволявшая вызвать перезагрузку устройства некорректным BGP-сообщением[29]. В 2024 году (CVE-2024-20321) была выявлена проблема, приводившая к разрыву eBGP-сессий из-за особенностей аппаратных очередей[30]. В марте 2025 года уязвимость CVE-2025-20115 в IOS XR позволяла удалённо вызвать сбой процесса BGP из-за ошибки обработки атрибута AS_CONFED_SEQUENCE[31][32];
- Juniper — в 2024 году уязвимость CVE-2024-39555 в Junos OS приводила к разрыву BGP-сессии при обработке некорректного UPDATE-сообщения[33]. В январе 2025 года (CVE-2025-21602) была найдена уязвимость, позволявшая вызвать сбой процесса маршрутизации (rpd) специально подготовленным BGP-пакетом[34];
- Arista и Juniper — в мае 2025 года некорректно сформированное BGP-сообщение с повреждённым атрибутом BGP Prefix-SID, отправленное с устройства на JunOS, вызывало сброс BGP-сессий на устройствах Arista с EOS, что приводило к кратковременной потере связности[35].
Слабости в механизмах защиты Исследования 2023—2024 годов выявили более 50 недостатков в различных программных реализациях RPKI — инфраструктуры, созданной для предотвращения перехватов BGP-маршрутов[36]. Обнаруженные проблемы варьируются от DoS-атак и отравления кэша до обхода аутентификации и удалённого выполнения кода. Из-за этих уязвимостей злоумышленник может заставить систему принять нелегитимный маршрут или отклонить легитимный, сводя на нет защиту, предоставляемую RPKI[37]. Одна из критических уязвимостей позволяла внедрить собственный якорь доверия, что давало атакующему полный контроль над иерархией RPKI[38].
Несмотря на разработку защитных мер, классические проблемы BGP, такие как утечки маршрутов (англ. Route Leaks) и их перехваты (англ. Hijacking), продолжают регулярно происходить из-за ошибок конфигурации или злонамеренных действий. Крупные инциденты последних лет включают:
- Май 2025 года — некорректно сформированное BGP-сообщение с повреждённым атрибутом BGP Prefix-SID, отправленное с устройства на Junos OS, вызвало сброс BGP-сессий на устройствах Arista с EOS. Это привело к кратковременной потере связности для некоторых сетей;
- Сентябрь 2024 года — оператор связи из Узбекистана Uztelecom допустил утечку более 3000 маршрутов через своего российского транзитного провайдера «Ростелеком». Инцидент длился около 40 минут и затронул трафик десятков стран, включая маршруты таких компаний, как Amazon и Cloudflare[39];
- Март 2024 года — российский мобильный оператор МТС спровоцировал утечку десятков тысяч маршрутов, полученных от точки обмена трафиком в Гонконге (HKIX), что привело к перенаправлению трафика по всему миру[40];
- Июнь 2019 года — крупная утечка маршрутов из швейцарского дата-центра в сторону China Telecom привела к тому, что трафик, предназначенный для крупных европейских мобильных операторов, в течение более двух часов перенаправлялся через Китай[41];
- Февраль 2022 года — злоумышленники использовали перехват BGP для атаки на южнокорейскую крипто-платформу, что позволило им украсть криптовалюту на сумму 1,9 миллиона долларов.
Сферы применения
- Интернет-провайдеры — взаимный обмен маршрутами, балансировка нагрузки и отказоустойчивость[42];
- Корпоративные сети с собственным ASN и множественными каналами к провайдерам;
- Облачные инфраструктуры и дата-центры (MP-BGP/EVPN, межоблачная связность);
- MPLS L3 VPN — распространение клиентских префиксов внутри сети оператора[4];
- Системы защиты от DDoS (BGP blackhole, FlowSpec) для фильтрации нежелательного трафика[7].
- FRRouting (FRR);
- BIRD;
- OpenBGPD;
- GoBGP;
- Quagga;
- ExaBGP.
- Cisco IOS / IOS XR;
- Juniper Junos OS;
- Arista EOS;
- MikroTik RouterOS.
- BGP Looking Glass;
- RIPE RIS, RouteViews;
- BGPmon, BGPAlerter;
- BGPStream, RIPEstat;
- Коммерческие платформы Kentik, ThousandEyes.
Примечания
- ↑ RFC 1105: A Border Gateway Protocol (BGP). IETF (июнь 1989). Дата обращения: 29 июля 2025.
- ↑ 1 2 Kirk Lougheed. Internet Hall of Fame. Дата обращения: 29 июля 2025.
- ↑ 1 2 3 [amazon.com](https://aws.amazon.com/ru/what-is/border-gateway-protocol/)
- ↑ 1 2 3 4 [huawei.com](https://forum.huawei.com/enterprise/ru/технология-и-принцип-работы-протокола-bgp/thread/667494762925670400-667481108482240512)
- ↑ [xgu.ru](http://xgu.ru/wiki/BGP)
- ↑ 1 2 3 [ipcisco.com](https://ipcisco.com/lesson/bgp-peers-bgp-sessions-bgp-messages/)
- ↑ 1 2 [ddos-guard.ru](https://ddos-guard.ru/terms/protocols/bgp)
- ↑ [zframez.com](https://www.zframez.com/articles/routing/bgp-protocol-peering-and-states)
- ↑ [study-ccnp.com](https://study-ccnp.com/bgp-message-types-open-keepalive-update-notification/)
- ↑ [tcpipguide.com](http://www.tcpipguide.com/free/t_BGPRouteStorageandAdvertisementandBGPRoutingInform-2.htm)
- ↑ [catchpoint.com](https://www.catchpoint.com/bgp-monitoring/bgp-attributes)
- ↑ The “Two-Napkin Protocol”. Computer History Museum. Дата обращения: 29 июля 2025.
- ↑ 1 2 3 BGP Overview, History, Standards and Versions. The TCP/IP Guide. Дата обращения: 29 июля 2025.
- ↑ A Quick History of BGP. HeckaNet (14 января 2020). Дата обращения: 29 июля 2025.
- ↑ History of the Internet. Cardiff University. Дата обращения: 29 июля 2025.
- ↑ Протокол BGP: что это за технология и как она объединяет глобальные сети. Skillbox.ru. Дата обращения: 29 июля 2025.
- ↑ RFC 4277 — опыт использования BGP-4. protokols.ru. Дата обращения: 29 июля 2025.
- ↑ 1 2 3 4 5 6 BGP Feature Guide. Juniper Networks. Дата обращения: 29 июля 2025.
- ↑ RFC 7454: BGP Operations and Security. IETF (февраль 2015). Дата обращения: 29 июля 2025.
- ↑ Основы протокола Border Gateway Protocol (BGP). Merionet. Дата обращения: 29 июля 2025.
- ↑ [noction.com](https://www.noction.com/blog/bgp-states)
- ↑ [ciscopress.com](https://www.ciscopress.com/articles/article.asp?p=2738462&seqNum=2)
- ↑ [cloudflare.com](https://www.cloudflare.com/learning/security/glossary/what-is-bgp/)
- ↑ [interlir.com](https://interlir.com/ru/2024/09/27/rol-protokola-bgp-border-gateway-protocol-v-upravlenii-ip-adresami/)
- ↑ OSPF vs BGP: какой протокол маршрутизации выбрать? FS Community. Дата обращения: 29 июля 2025.
- ↑ Risky Biz News: Ransomware attacks increase hospital mortality rates. Risky Business News. Дата обращения: 29 июля 2025.
- ↑ Kirin: Hitting the Internet with Millions of Distributed IPv6 Announcements. ResearchGate. Дата обращения: 29 июля 2025.
- ↑ Researchers Uncover New BGP Flaws in FRRouting That Could Let Attackers Crash Internet Routers. The Hacker News (24 мая 2023). Дата обращения: 29 июля 2025.
- ↑ CVE-2018-0295 : Cisco NX-OS Software Border Gateway Protocol Denial Of Service Vulnerability. cvedetails.com. Дата обращения: 29 июля 2025.
- ↑ Cisco NX-OS Software External BGP Denial of Service Vulnerability. Cisco Security Advisory. Дата обращения: 29 июля 2025.
- ↑ Cisco IOS XR BGP DoS flaw, CVE-2025-20115, can be triggered remotely. Security Affairs (27 марта 2025). Дата обращения: 29 июля 2025.
- ↑ Cisco IOS XR Software Border Gateway Protocol Denial of Service Vulnerability. Cisco Security Advisory. Дата обращения: 29 июля 2025.
- ↑ NVD - CVE-2024-39555. nvd.nist.gov. Дата обращения: 29 июля 2025.
- ↑ 2025-01 Security Bulletin: Junos OS and Junos OS Evolved: Receipt of specially-crafted BGP update packet causes RPD crash (CVE-2025-21602). Juniper Networks. Дата обращения: 29 июля 2025.
- ↑ The BGP attribute 40 incident, or: How to be a more responsible BGP citizen. Benjojo's Blog (20 мая 2025). Дата обращения: 29 июля 2025.
- ↑ Internet's anti-hijacking system RPKI is riddled with holes. The Register (2 октября 2024). Дата обращения: 29 июля 2025.
- ↑ The CURE to Vulnerabilities in RPKI Validation. NDSS Symposium. Дата обращения: 29 июля 2025.
- ↑ On Evaluating BGP Routing Stress Attack. ResearchGate. Дата обращения: 29 июля 2025.
- ↑ Beyond Their Intended Scope: Uzing into Russia. Kentik. Дата обращения: 29 июля 2025.
- ↑ BGP Routing Leak Leads to Spike of Misdirected Traffic. Kentik. Дата обращения: 29 июля 2025.
- ↑ BGP route leak: European traffic went through China. CiscoZine. Дата обращения: 29 июля 2025.
- ↑ [skillbox.ru](https://skillbox.ru/media/code/protokol-bgp-chto-eto-za-tehnologiya-i-kak-ona-obedinyaet-globalnye-seti/)