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 — надежный протокол, отвечающий за соединение автономных систем. Процесс работы включает следующие этапы:
- Установление TCP-сессии: BGP-маршрутизатор инициирует установление TCP-сессии на порт 179 к своему соседу.
- Обмен сообщениями OPEN: Маршрутизаторы обмениваются информацией: номер автономной системы (ASN), идентификатор маршрутизатора (RouterID) и Hold timer (время поддержания TCP-сессии). При несоответствии информации, например, номера AS, отправляется сообщение NOTIFICATION, и сессия сбрасывается.
- Настройка BGP: BGP требует ручной настройки администраторами автономных систем. Неправильная настройка может привести к проблемам с доступом в интернет.
- Сообщения KEEPALIVE: С определенным интервалом маршрутизаторы обмениваются сообщениями KEEPALIVE, подтверждающими работоспособность соединения.
- Обмен маршрутной информацией (UPDATE): Сообщения UPDATE содержат:
- Path Attributes: информацию о происхождении маршрута и следующем маршрутизаторе.
- NRLI (Network Layer Reachability Information): информацию о сетях, которые нужно добавить в таблицу маршрутизации (IP-адрес сети и маска). Сообщения UPDATE передаются при появлении новых сетей.
- Выбор наилучшего пути: BGP выбирает наилучший путь на основе сложности маршрута, количества хопов и других характеристик.
- Управление таблицей маршрутов: Каждый узел управляет таблицей маршрутов и передает информацию соседним автономным системам.
Последствия сбоев
Сбои в работе BGP приводят к недоступности частей интернета. Например, в октябре 2021 года из-за ошибки инженеров Facebook информация о маршрутах к серверам Facebook была удалена, что вызвало перебои в работе Facebook, Instagram и WhatsApp.
BGP — ключевой протокол для функционирования интернета. Понимание его принципов работы необходимо для обеспечения стабильной работы сети.