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, который выбирает лучший маршрут из нескольких возможных на основе следующих факторов:
- Приоритет локальной предпочтительности (Local Preference)
- Путь от клиента к провайдеру (Weight, если поддерживается Cisco)
- Наименьшее количество AS в пути (AS_PATH length)
- Происхождение маршрута (IGP, EGP, Incomplete)
- Метрика MED (Multi-Exit Discriminator)
- Исходящие/входящие политики (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 Этапы установления соединения:
- TCP-соединение (на порту 179)
- Обмен сообщениями OPEN – обмен параметрами (номер AS, версия BGP, холд-таймер)
- Обмен сообщениями KEEPALIVE – подтверждение активности
- Обмен маршрутами (UPDATE) – объявление новых маршрутов или отзыв старых
- Обмен сообщениями 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 Полезные ссылки