Что такое BGP
BGP (Border Gateway Protocol) — это протокол междоменной маршрутизации. Он соединяет автономные системы (AS) — сети разных операторов и организаций — в единый интернет. BGP не ищет кратчайший путь; он находит путь согласно политикам.
Автономная система (AS)
Каждый оператор связи получает номер автономной системы (ASN) от RIR (RIPE NCC, ARIN, APNIC и др.). ASN — это уникальный идентификатор сети оператора в интернете.
Номера бывают:
- 2-байтовые: 1–64511 (публичные), 64512–65535 (частные)
- 4-байтовые: 65536–4294967295
Для небольшого оператора или корпоративной сети можно использовать частный ASN, но для полноценного участия в интернете нужен публичный.
Как работает BGP
-
Установка сессии. Два BGP-маршрутизатора (BGP speakers) устанавливают TCP-соединение на порт 179 и обмениваются сообщениями OPEN.
-
Обмен маршрутами. После установки сессии они обмениваются таблицами маршрутизации через сообщения UPDATE. Каждый маршрут содержит префикс сети и набор атрибутов пути.
-
Keepalive. Периодические сообщения для поддержания сессии (обычно каждые 30–60 секунд).
-
Отзыв маршрутов. Если маршрут становится недоступен, отправляется сообщение WITHDRAW.
Ключевые атрибуты BGP
AS_PATH — список автономных систем, через которые прошёл анонс. Используется для предотвращения петель: если маршрутизатор видит свой ASN в AS_PATH, он отбрасывает маршрут.
NEXT_HOP — IP-адрес следующего маршрутизатора на пути к префиксу.
LOCAL_PREF (Local Preference) — числовой атрибут (по умолчанию 100). Чем выше, тем предпочтительнее маршрут. Используется для управления исходящим трафиком внутри своей AS.
MED (Multi-Exit Discriminator) — чем ниже, тем предпочтительнее. Используется для влияния на входящий трафик от соседней AS.
eBGP vs iBGP
- eBGP (External BGP): сессии между разными AS. Анонсы от eBGP-соседа распространяются всем соседям.
- iBGP (Internal BGP): сессии внутри одной AS. Анонсы от iBGP-соседа не передаются другим iBGP-соседям (правило split horizon). Поэтому внутри AS нужна полносвязная топология iBGP или route reflectors.
Peering vs Transit
- Transit: вы платите вышестоящему оператору за доступ ко всему интернету. Upstream-оператор анонсирует вам полную таблицу маршрутизации (full table) или маршрут по умолчанию.
- Peering: бесплатный обмен трафиком между операторами на точках обмена (IX). Вы обмениваетесь только своими маршрутами и маршрутами своих клиентов.
Для оператора связи важно иметь сочетание: дешёвый транзит для «остального интернета» и пиринг для локального и регионального трафика.