BGP (Border Gateway Protocol)

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).