Открыть сервис

BGP

BGP (англ. Border Gateway Protocol, протокол граничного шлюза) — это протокол динамической маршрутизации, предназначенный для обмена информацией о сетевых префиксах и маршрутах между автономными системами (AS) в глобальной сети Интернет. BGP является основным протоколом, обеспечивающим связность и маршрутизацию трафика между различными провайдерами, корпоративными сетями и точками обмена трафиком. Относится к классу протоколов внешней маршрутизации (EGP) и работает на основе вектора пути (path vector protocol), в отличие от протоколов внутренней маршрутизации (IGP), таких как OSPF или IS-IS.

История

BGP был разработан в конце 1980-х годов как замена устаревшему протоколу EGP (Exterior Gateway Protocol). Первая версия, BGP-1, была описана в RFC 1105 в 1989 году. Основной причиной создания нового протокола стала необходимость более эффективного и масштабируемого управления маршрутизацией в быстро растущем Интернете. EGP имел ограничения по топологии (требовал древовидной структуры) и не поддерживал политики маршрутизации.

В 1990 году вышла версия BGP-2 (RFC 1163), а в 1991 — BGP-3 (RFC 1267). Современная версия, BGP-4, была впервые опубликована в RFC 1654 в 1994 году. Ключевым нововведением BGP-4 стало введение бесклассовой междоменной маршрутизации (CIDR), что позволило агрегировать IP-адреса и уменьшить размер глобальных таблиц маршрутизации. Последующие уточнения и расширения протокола описаны в RFC 4271 (2006 год) и более поздних документах.

Принцип работы

BGP функционирует на прикладном уровне модели OSI (уровень 7) или на сетевом уровне (уровень 3) в зависимости от интерпретации, так как использует TCP (порт 179) для установления и поддержания сеансов связи между маршрутизаторами, называемыми BGP-пирами (peers) или соседями (neighbors).

Установление соединения

Процесс установления BGP-сессии включает несколько этапов:

  1. Открытие соединения: маршрутизаторы обмениваются OPEN-сообщениями, содержащими номер автономной системы, время удержания (hold timer) и параметры BGP-идентификатора.
  2. Обмен маршрутами: после успешного открытия пиры отправляют UPDATE-сообщения, содержащие информацию о новых маршрутах, а также withdrawn-маршруты (удаляемые).
  3. Поддержание активности: для проверки работоспособности соединения регулярно отправляются KEEPALIVE-сообщения (обычно каждые 60 секунд).
  4. Уведомления: при возникновении ошибок отправляются NOTIFICATION-сообщения, после чего сессия закрывается.

Атрибуты маршрутов

Каждый маршрут в BGP сопровождается набором атрибутов, которые определяют его характеристики и влияют на выбор наилучшего пути. Основные атрибуты включают:

Выбор наилучшего маршрута

BGP-маршрутизатор выбирает единственный наилучший маршрут для каждого префикса на основе последовательного сравнения атрибутов. Алгоритм выбора включает следующие шаги (в порядке приоритета):

  1. Маршрут с наивысшим LOCAL_PREF.
  2. Маршрут с кратчайшим AS_PATH.
  3. Маршрут с наименьшим ORIGIN (IGP предпочтительнее EGP).
  4. Маршрут с наименьшим MED.
  5. Предпочтение маршрутам через eBGP (внешние) перед iBGP (внутренние).
  6. Маршрут к ближайшему NEXT_HOP по метрике IGP.
  7. Маршрут от маршрутизатора с наименьшим BGP-идентификатором.

Типы BGP-сессий

BGP-сессии делятся на два основных типа в зависимости от расположения пиров относительно автономных систем:

Применение

BGP является критически важным протоколом для функционирования Интернета. Основные области применения:

Проблемы и ограничения

Несмотря на свою универсальность, BGP имеет ряд недостатков:

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →