Что такое 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

  1. Установка сессии. Два BGP-маршрутизатора (BGP speakers) устанавливают TCP-соединение на порт 179 и обмениваются сообщениями OPEN.

  2. Обмен маршрутами. После установки сессии они обмениваются таблицами маршрутизации через сообщения UPDATE. Каждый маршрут содержит префикс сети и набор атрибутов пути.

  3. Keepalive. Периодические сообщения для поддержания сессии (обычно каждые 30–60 секунд).

  4. Отзыв маршрутов. Если маршрут становится недоступен, отправляется сообщение 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). Вы обмениваетесь только своими маршрутами и маршрутами своих клиентов.

Для оператора связи важно иметь сочетание: дешёвый транзит для «остального интернета» и пиринг для локального и регионального трафика.