BGP (Border Gateway Protocol) - это протокол динамической маршрутизации, используемый для обмена информацией о доступности сетей между автономными системами (AS) в интернете. Это основной протокол, обеспечивающий работу глобальной маршрутизации.
Содержание
Основные характеристики BGP
- Тип протокола: Внешний шлюзовый протокол (EGP, Exterior Gateway Protocol).
- Работает на: Транспортном протоколе TCP (порт 179).
- Метрика: Принимает решения на основе пути (AS_PATH), политик и атрибутов, а не только скорости/задержки.
- Масштабируемость: Поддерживает огромное количество маршрутов (более 1 млн в глобальной таблице BGP).
Для чего нужен BGP?
- Связывает автономные системы (AS) – позволяет интернет-провайдерам (ISP), дата-центрам и крупным сетям обмениваться маршрутами.
- Обеспечивает избыточность и отказоустойчивость – мультихоминг (подключение к нескольким провайдерам).
- Позволяет применять гибкие политики маршрутизации – фильтрация, предпочтение определенных путей.
Типы BGP
- eBGP (External BGP) – между разными AS (например, ISP и клиент).
- iBGP (Internal BGP) – внутри одной AS (согласование маршрутов между роутерами).
Ключевые атрибуты BGP (Path Attributes)
- AS_PATH – список пройденных AS (используется для предотвращения петель).
- NEXT_HOP – IP следующего роутера для достижения сети.
- ORIGIN – источник маршрута (IGP, EGP, incomplete).
- LOCAL_PREF – приоритет маршрута внутри AS.
- MED (Multi-Exit Discriminator) – "подсказка" для соседней AS, какой путь выбрать.
Проблемы и уязвимости BGP
- Утечки маршрутов – неправильная настройка может перенаправить трафик (например, инцидент с YouTube и Pakistan Telecom в 2008).
- BGP Hijacking – злоумышленники объявляют чужие префиксы, перехватывая трафик.
- Отсутствие шифрования – атаки на TCP-сессии (нужно использовать BGPsec или RPKI).