Что такое BGP?

«Что такое BGP?» — вопрос из категории Сети, который задают на 24% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

BGP (Border Gateway Protocol) — это протокол динамической маршрутизации категории EGP (Exterior Gateway Protocol). Он используется для обмена информацией о маршрутах между различными автономными системами (AS) в интернете. В DevOps-контексте понимание BGP критично при работе с гибридными облачными средами, multi-cloud архитектурами и настройкой прямого подключения (Direct Connect, ExpressRoute, Interconnect).

Основные концепции с точки зрения инфраструктуры:

  • Автономная система (AS): Сеть или группа сетей под единым техническим управлением (например, ваш дата-центр или облачный провайдер). Каждой AS присваивается уникальный номер (ASN).
  • eBGP vs iBGP: eBGP используется между разными AS, а iBGP — внутри одной AS для распространения внешних маршрутов.
  • Атрибуты пути (Path Attributes): BGP принимает решения о выборе маршрута на основе атрибутов, таких как AS_PATH, NEXT_HOP, LOCAL_PREF, MED.

Пример практического сценария: При настройке AWS Direct Connect мы объявляем свои внутренние префиксы (например, 10.0.0.0/16) через BGP в виртуальный интерфейс (VIF). Конфигурация на стороне сетевого оборудования (например, Cisco) может выглядеть так:

router bgp 65100
 neighbor 169.254.10.1 remote-as 7224  # AWS ASN
 neighbor 169.254.10.1 description AWS-DirectConnect
 address-family ipv4 unicast
  network 10.0.0.0 mask 255.255.0.0
  neighbor 169.254.10.1 activate
 exit-address-family

Зачем это DevOps-инженеру: Понимание BGP необходимо для диагностики проблем сетевой связности в распределенных системах, настройки отказоустойчивости через multi-homing (подключение к нескольким провайдерам) и управления трафиком с помощью политик на основе LOCAL_PREF или AS_PATH prepending.