BGP - описание протокола

Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2026
Перейти к:навигация, поиск

BGP (Border Gateway Protocol)

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

Основные концепции

  • AS (Autonomous System) — совокупность сетей под единым административным управлением. Каждая AS имеет уникальный номер — ASN.
  • eBGP (External BGP) — BGP-сессия между разными AS.
  • iBGP (Internal BGP) — BGP-сессия внутри одной AS.

Атрибуты BGP

BGP принимает решения на основе атрибутов маршрута и политик администратора.

Основные атрибуты (по убыванию приоритета)
Атрибут Описание
Weight Cisco-proprietary, локальный для роутера (чем выше, тем приоритетнее)
Local Preference Локальный для AS (по умолчанию 100, чем выше — тем лучше)
Originate Маршрут, сгенерированный самим роутером
AS-Path Список AS, через которые прошёл маршрут (чем короче, тем лучше)
Origin IGP, EGP, Incomplete (IGP предпочтительнее)
MED (Multi-Exit Discriminator) Указывает предпочтительный вход в AS (меньше — лучше)
Paths (eBGP vs iBGP) eBGP предпочтительнее iBGP
Router-ID Выбирается путь с наименьшим Router-ID

Алгоритм выбора лучшего пути

  1. Если next-hop недоступен — отбросить маршрут
  2. Выбрать с наивысшим Weight
  3. Выбрать с наивысшим Local Preference
  4. Предпочесть маршрут, объявленный самим роутером
  5. Выбрать с кратчайшим AS_PATH
  6. Выбрать с наименьшим Origin (IGP < EGP < Incomplete)
  7. Выбрать с наименьшим MED
  8. Предпочесть eBGP над iBGP
  9. Выбрать с наименьшей IGP-метрикой до next-hop
  10. При нескольких путях — выбрать с наименьшим Router-ID

Типы сообщений BGP

BGP работает поверх TCP (порт 179).

Тип Назначение
OPEN Установление соединения, обмен параметрами (ASN, Hold Timer, BGP ID)
UPDATE Объявление новых маршрутов или отзыв старых
KEEPALIVE Поддержание сессии (каждые 1/3 Hold Timer, не чаще 1 сек)
NOTIFICATION Сообщение об ошибке, после которого сессия закрывается

Состояния BGP-сессии (FSM)

  1. Idle — ожидание старта
  2. Connect — попытка TCP-соединения
  3. Active — TCP-соединение не удалось, повторная попытка
  4. OpenSent — OPEN отправлен, ожидание OPEN от пира
  5. OpenConfirm — OPEN получен, отправлен KEEPALIVE, ожидание KEEPALIVE
  6. Established — сессия установлена, обмен UPDATE-сообщениями

Масштабирование

BGP спроектирован с учётом масштабирования:

  • Route Aggregation (CIDR) — суммирование префиксов
  • Route Reflectors — предотвращают полносвязную топологию iBGP
  • Confederations — разбиение большой AS на несколько под-AS
  • Filtering — prefix-list, route-map, as-path access-list

BGP в современном интернете

  • DFZ (Default-Free Zone) — ядро интернета с полной таблицей BGP (~1M+ префиксов)
  • IXP (Internet Exchange Point) — точки обмена трафиком
  • Peering — прямое соединение между AS
  • Transit — доступ к маршрутам интернета за плату

Проблемы BGP

  • Медленная сходимость (convergence)
  • Отсутствие встроенной безопасности
  • BGP Hijacking — перехват трафика (решается RPKI/ROV)
  • Route Leak — непреднамеренная анонсировка маршрутов

BGP Security

  • RPKI (Resource Public Key Infrastructure) — криптографическая верификация (ROA-записи)
  • BGPsec — подпись UPDATE-сообщений для защиты AS_PATH

Пример конфигурации (Cisco IOS)

router bgp 65001
 bgp router-id 10.0.0.1
 neighbor 192.0.2.1 remote-as 65002
 neighbor 192.0.2.1 description Peer-AS65002
 neighbor 192.0.2.1 route-map SET-POLICY in
 network 203.0.113.0 mask 255.255.255.0
×
Реклама
ИКС