Skip to content

BGP (Border Gateway Protocol)

1. Введение

1.1 Назначение документа

Настоящий документ представляет собой подробное описание сетевого протокола — BGP (Border Gateway Protocol). Целью данного документа является предоставление полной информации о функциональном назначении, архитектуре, типах, принципах работы, конфигурации, безопасности и применении протокола BGP в современных сетях.

1.2 Определение

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


2. Основные функции BGP

Функция Описание
Обмен маршрутами между автономными системами (AS) Обеспечивает возможность связи между разными сетями по всему миру.
Выбор оптимального маршрута На основе политик, правил и атрибутов, а не только метрик.
Поддержка CIDR и VLSM Эффективное использование IP-адресного пространства.
Устойчивость к изменениям топологии Автоматически реагирует на сбои и перестройку сети.
Гибкая политика маршрутизации Позволяет управлять входящими и исходящими маршрутами на уровне политик.

3. Классификация BGP

3.1 По типу взаимодействия:

  • eBGP (External BGP)
    Используется для обмена маршрутами между разными автономными системами (AS).

  • iBGP (Internal BGP)
    Используется внутри одной AS для распространения внешних маршрутов между внутренними маршрутизаторами.

3.2 По версии:

  • BGP-4 – текущая и наиболее популярная версия.
  • Поддержка IPv6, MPLS, multicast через расширения.

4. Архитектура BGP

4.1 Основные компоненты

Компонент Описание
Автономная система (AS) Сеть, управляющаяся единым административным доменом. Каждая имеет уникальный номер (ASN).
Соседи (Peers / Neighbors) Маршрутизаторы, поддерживающие TCP-соединение для обмена маршрутами.
Таблица BGP (BGP Table / RIB-In / RIB-Out) Хранит все полученные и отправленные маршруты.
Таблица маршрутизации (IP Routing Table) Выбранные лучшие маршруты, которые используются для передачи трафика.
TCP порт 179 Все соединения BGP работают поверх TCP для обеспечения надёжности.

4.2 Процесс выбора маршрута

BGP использует алгоритм Best Path Selection, который выбирает лучший маршрут из нескольких возможных на основе следующих факторов:

  1. Приоритет локальной предпочтительности (Local Preference)
  2. Путь от клиента к провайдеру (Weight, если поддерживается Cisco)
  3. Наименьшее количество AS в пути (AS_PATH length)
  4. Происхождение маршрута (IGP, EGP, Incomplete)
  5. Метрика MED (Multi-Exit Discriminator)
  6. Исходящие/входящие политики (route maps, filters, communities)

5. Атрибуты BGP

Атрибут Тип Описание
Well-known mandatory Обязательный Должен присутствовать в каждом маршруте. Примеры: ORIGIN, AS_PATH, NEXT_HOP
Well-known discretionary Необязательный Может присутствовать. Пример: LOCAL_PREF
Optional transitive Передаваемый Может быть передан другим соседям. Пример: COMMUNITY
Optional non-transitive Локальный Не передаётся дальше. Пример: MED

6. Работа BGP

6.1 Этапы установления соединения:

  1. TCP-соединение (на порту 179)
  2. Обмен сообщениями OPEN – обмен параметрами (номер AS, версия BGP, холд-таймер)
  3. Обмен сообщениями KEEPALIVE – подтверждение активности
  4. Обмен маршрутами (UPDATE) – объявление новых маршрутов или отзыв старых
  5. Обмен сообщениями NOTIFICATION – при ошибках

6.2 Состояния BGP-соседства:

  • Idle
  • Connect
  • Active
  • OpenSent
  • OpenConfirm
  • Established

7. Безопасность BGP

Угроза Описание Защита
Несанкционированное подключение Злоумышленник пытается подключиться как BGP-пир Использование MD5-аутентификации
Перехват и изменение маршрутов Манипуляции с таблицами маршрутов Использование RPKI, BGPsec
Злоупотребление маршрутами (prefix hijacking) Злоумышленник объявляет чужие префиксы ROA (Route Origin Authorization), IRR фильтрация
Перегрузка ресурсов Отправка большого количества маршрутов Rate-limiting, prefix-limit, ACLs

8. Современные технологии и подходы

Технология Описание
RPKI (Resource Public Key Infrastructure) Защита от неправильных объявлений префиксов
BGPsec Шифрование и проверка подлинности маршрутов
Segment Routing with BGP Совмещение SR и BGP для управления трафиком
SDN + BGP Использование BGP в программно-определяемых сетях
BMP (BGP Monitoring Protocol) Мониторинг состояния BGP-сеансов и маршрутов
BGP Flowspec Расширение BGP для фильтрации трафика (например, DDoS-защита)

9. Примеры применения BGP

Сценарий Описание
Мультхоминг (multi-homing) Подключение к нескольким провайдерам для повышения отказоустойчивости
Аннопс (any cast) Расположение серверов в разных регионах с одинаковым IP-адресом
Маршрутизация CDN Балансировка нагрузки и снижение задержек через BGP
Корпоративная сеть с выходом в интернет Объявление собственного диапазона IP через провайдера
Балансировка нагрузки между провайдерами Настройка политик для распределения трафика по разным каналам

10. Конфигурация BGP (примеры)

10.1 Пример на Cisco IOS:

router bgp 65001
 neighbor 192.168.1.2 remote-as 65002
 network 203.0.113.0 mask 255.255.255.0

10.2 Пример на Junos OS:

protocols {
    bgp {
        group IBGP {
            type internal;
            neighbor 10.0.0.2;
        }
    }
}

10.3 Пример на MikroTik RouterOS:

/routing bgp peer add name=ISP1 remote-address=192.168.1.1 remote-as=65002

11. Приложения

11.1 Глоссарий

  • AS (Autonomous System) – автономная система.
  • ASN (AS Number) – уникальный номер автономной системы.
  • eBGP / iBGP – внешний и внутренний BGP.
  • AS_PATH – список автономных систем, через которые прошёл маршрут.
  • MED – метрика для выбора маршрута при наличии нескольких точек входа.
  • Community – тег, используемый для группировки маршрутов.
  • RPKI – технология защиты от неправильных маршрутов.

11.2 Полезные ссылки