BGP (Border Gateway Protocol, протокол граничного шлюза) — протокол динамической маршрутизации, используемый для обмена информацией о достижимости сетей между автономными системами (AS). Автономная система — это набор IP-сетей, управляемых одной организацией с единой маршрутной политикой, обозначаемый номером ASN. BGP 4, описанный в RFC 4271 (2006), — протокол, на котором работает весь интернет.
Как работает
BGP-маршрутизаторы устанавливают TCP-соединения (порт 179) с соседями (peers/neighbors) и обмениваются информацией о сетях через UPDATE-сообщения. Каждый маршрут несёт атрибуты: AS_PATH (список AS, через которые прошёл маршрут), NEXT_HOP, MED, LOCAL_PREF и другие. BGP-роутер выбирает лучший маршрут на основе этих атрибутов по детерминированному алгоритму выбора.
Типы BGP-сессий:
- eBGP (external BGP) — между разными AS. Используется провайдерами для обмена маршрутами с партнёрами, клиентами, на точках обмена трафиком (IX/IXP). AS_PATH увеличивается на каждом переходе.
- iBGP (internal BGP) — внутри одной AS между маршрутизаторами. AS_PATH не изменяется, используется LOCAL_PREF для управления трафиком.
Глобальная таблица маршрутизации BGP (full routing table) содержала около 950 000 префиксов IPv4 и 200 000 IPv6 по состоянию на 2024 год. Для её хранения требуется маршрутизатор с 2+ ГБ RAM. Провайдеры малого и среднего размера часто принимают только default route (0.0.0.0/0) вместо полной таблицы.
История
BGP создан в 1989 году (BGP-1, RFC 1105) Кирком Локхидом, Якобом Рехтером и Лэни Ли. Протокол заменил EGP (RFC 904, 1984), который не поддерживал политику маршрутизации. BGP-4 (1994, RFC 1654; затем RFC 1771; актуальный — RFC 4271, 2006) ввёл поддержку CIDR и агрегацию маршрутов. Расширения BGP (RFC 4760) добавили поддержку IPv6 (MP-BGP).
BGP в хостинге
Хостинг-провайдеры используют BGP для:
- Анонса своих IP-блоков нескольким вышестоящим провайдерам (multihoming) для отказоустойчивости.
- Получения трафика клиентов через IX (точки обмена трафиком, например, MSK-IX, DE-CIX).
- Управления входящим трафиком через AS_PATH prepending и BGP communities.
- Защиты от DDoS: blackhole-routing — анонс атакуемого /32 с community
666для «черной дыры» у upstream-провайдера.
Клиентский BGP (BGP colocation) позволяет арендатору стойки анонсировать собственный IP-блок (portable IP) через инфраструктуру дата-центра. Минимальный анонсируемый блок — /24 (256 адресов).
На что обращать внимание
BGP — вектор крупных инцидентов в истории интернета. Маршрутная утечка (route leak) 2010 года через China Telecom перенаправила ~15% мирового трафика. BGP hijacking позволяет AS захватить чужие IP-префиксы. RPKI (Resource Public Key Infrastructure) — криптографическая защита BGP-анонсов, внедряемая с 2012 года. По данным RIPE NCC, к 2024 году около 45% IPv4-адресного пространства защищено ROA (Route Origin Authorization).
BGP в контексте хостинга
Для хостинг-провайдеров BGP — основной инструмент для анонсирования своих IP-блоков в интернет. Провайдер получает ASN (Autonomous System Number) в RIPE NCC и анонсирует через BGP свои CIDR-блоки. Клиенты колокейшена могут получить собственный ASN и анонсировать через BGP-сессию с хостером. Anycast (использование одного IP-префикса с разных ПО) реализуется через BGP: провайдеры CDN (Cloudflare, Fastly) используют BGP Anycast для маршрутизации пользователей на ближайший PoP.
Безопасность BGP
BGP route hijacking — подмена маршрутов через анонс чужих IP-блоков. Знаменитые инциденты: Pakistan Telecom блокировал YouTube (2008), Rostelecom похитил трафик AWS (2020). RPKI/Route Origin Authorization — криптографическая защита BGP, внедряемая с 2012 года. Добавьте ROA для своих IP-блоков в базе RIPE.