BGP за 7 минут: Основы и типы протокола

BGP (Border Gateway Protocol) — протокол граничного шлюза, предназначенный для обмена информацией о маршрутизации и доступности между автономными системами (AS) в интернете. Автономная система будет рассмотрена ниже. Упрощенно: BGP — метод маршрутизации, благодаря которому функционирует интернет. Без него были бы невозможны поиск в Google, игры и многое другое. BGP, наряду с DNS, является одним из важнейших протоколов интернета.

Типы BGP

Существуют два типа BGP:

  • iBGP — для маршрутизации внутри сети (Internal BGP).
  • eBGP — для внешней маршрутизации (External BGP).

В дальнейшем рассматривается eBGP, который обычно называют просто BGP.

Краткая история

Изначально интернет состоял из небольшого количества сетей, связанных статичными маршрутами, которые администраторы прописывали вручную на роутерах. С ростом числа сетей возникла необходимость в динамическом методе обмена информацией о маршрутах. Так появился EGP (Exterior Gateway Protocol) — протокол внешнего шлюза. EGP работал по древовидной иерархической топологии, что ограничивало гибкость маршрутизации. С дальнейшим ростом интернета недостатки EGP стали очевидны, что привело к появлению BGP.

Автономные системы (AS)

Autonomous System (AS) — сеть или набор подсетей, объединенных общей внутренней политикой маршрутизации (например, OSPF или EIGRP). Автономными системами управляют отдельные организации: интернет-провайдеры, ВУЗы, коммерческие компании и крупные корпорации. Каждая AS имеет уникальный номер — AS Number (ASN) и диапазон IP-адресов. BGP обеспечивает обмен информацией о маршрутах между этими системами.

Работа BGP

BGP — надежный протокол, отвечающий за соединение автономных систем. Процесс работы включает следующие этапы:

  1. Установление TCP-сессии: BGP-маршрутизатор инициирует установление TCP-сессии на порт 179 к своему соседу.
  2. Обмен сообщениями OPEN: Маршрутизаторы обмениваются информацией: номер автономной системы (ASN), идентификатор маршрутизатора (RouterID) и Hold timer (время поддержания TCP-сессии). При несоответствии информации, например, номера AS, отправляется сообщение NOTIFICATION, и сессия сбрасывается.
  3. Настройка BGP: BGP требует ручной настройки администраторами автономных систем. Неправильная настройка может привести к проблемам с доступом в интернет.
  4. Сообщения KEEPALIVE: С определенным интервалом маршрутизаторы обмениваются сообщениями KEEPALIVE, подтверждающими работоспособность соединения.
  5. Обмен маршрутной информацией (UPDATE): Сообщения UPDATE содержат:
    • Path Attributes: информацию о происхождении маршрута и следующем маршрутизаторе.
    • NRLI (Network Layer Reachability Information): информацию о сетях, которые нужно добавить в таблицу маршрутизации (IP-адрес сети и маска). Сообщения UPDATE передаются при появлении новых сетей.
  6. Выбор наилучшего пути: BGP выбирает наилучший путь на основе сложности маршрута, количества хопов и других характеристик.
  7. Управление таблицей маршрутов: Каждый узел управляет таблицей маршрутов и передает информацию соседним автономным системам.

Последствия сбоев

Сбои в работе BGP приводят к недоступности частей интернета. Например, в октябре 2021 года из-за ошибки инженеров Facebook информация о маршрутах к серверам Facebook была удалена, что вызвало перебои в работе Facebook, Instagram и WhatsApp.

BGP — ключевой протокол для функционирования интернета. Понимание его принципов работы необходимо для обеспечения стабильной работы сети.

Что будем искать? Например,программа