32 изображения подробно объясняют протокол маршрутизации BGP: основные понятия BGP, одноранговые узлы BGP, типы сообщений BGP, конечный автомат BGP и т. д.
32 изображения подробно объясняют протокол маршрутизации BGP: основные понятия BGP, одноранговые узлы BGP, типы сообщений BGP, конечный автомат BGP и т. д.

Предисловие

Протокол маршрутизации BGPЭто наиболее широко используемый протокол в сети.,Будь то сеть оператора связи, корпоративная сеть или сеть центра обработки данных.,В настоящее время используется протокол BGP.

Сегодня я подробно расскажу вам о протоколе маршрутизации BGP;

Что такое протокол маршрутизации BGP

1. Предпосылки появления протокола BGP

Протоколы маршрутизации OSPF и ISIS широко используются в сетях. Однако по мере расширения масштаба сети количество записей маршрутизации также увеличивается, и протокол IGP больше не способен управлять крупномасштабными сетями. Так возникла концепция AS.

Понятие AS относительно абстрактно.

Официальное объяснение: AS относится к набору устройств, использующих единую стратегию маршрутизации под управлением одной организации.

Если говорить проще: вы можете разделить разные устройства в сети на разные группы (AS), или все в одну группу, тогда эти устройства в группе будут иметь одинаковый протокол маршрутизации.

Например, вы можете разделить сеть головного офиса компании на одну AS, а сеть филиалов компании на другую AS. Разные AS могут использовать разные протоколы маршрутизации.

Итак, когда сетям разных AS необходимо взаимодействовать, какой протокол маршрутизации используется для связи? Ответ — протокол маршрутизации BGP, описанный в этой главе. Так почему бы не иметь возможность общаться через IGP (ISIS, BGP)?

Вот простой пример, когда сеть предприятия или сеть дата-центра подключена к интернету оператора. Если для подключения вы используете протоколы маршрутизации IGP (OSPF, ISIS), то сеть предприятия и сеть оператора работают в одной сети. Как вы думаете, почему оператор доверяет вашей сети предприятия?

Другой момент заключается в том, что масштаб всей сети расширяется, количество маршрутов увеличивается, а сходимость маршрутов происходит медленно.

Итак, существует ли протокол маршрутизации, который может реализовать взаимодействие маршрутизации между различными сетями? Ответ: BGP. Преимущество BGP заключается в том, что он не генерирует маршруты, а только передает маршруты и имеет богатые стратегии маршрутизации.

В настоящее время некоторые люди все еще могут встать и сказать: не может ли статическое соглашение решить эту проблему? На самом деле это можно решить, но есть одна проблема: при использовании статических протоколов людям приходится вручную добавлять и удалять маршруты при изменении сети. Так есть ли динамический способ? Ответ — протокол маршрутизации BGP.

Итак, в приведенном выше примере: когда предприятия и операторы подключаются, они могут использовать протокол маршрутизации BGP для реализации взаимодействия маршрутизации.

2. Преимущества маршрутизации доставки BGP

Различные AS соединяются через протокол маршрутизации BGP. Каковы преимущества использования BGP по сравнению с протоколом IGP?

  • BGP — это протокол маршрутизации, основанный на TCP. Пока можно установить TCP, можно установить и BGP;
  • BGP только передает информацию о маршрутизации, не рассчитывает маршруты и не раскрывает топологию сети внутри AS;
  • Обновления маршрутизации BGP являются запускаемыми, а не периодическими обновлениями;

3、Что такое протокол маршрутизации BGP

BGP — это протокол маршрутизации на основе вектора расстояния, используемый для достижения достижимых маршрутов между различными AS.

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

(1) BGP — это протокол внешнего шлюза. Его задача заключается не в обнаружении и расчете маршрутов, а в управлении распространением маршрутов и выборе наилучшего маршрута;

(2) BGP использует TCP в качестве протокола транспортного уровня (номер порта 179), что повышает надежность протокола;

(3) BGP — это протокол маршрутизации на основе вектора расстояния, разработанный для предотвращения образования петель;

(4) BGP предоставляет множество стратегий маршрутизации, обеспечивающих гибкую фильтрацию и выбор маршрутов;

(5) BGP использует инициируемые инкрементные обновления вместо периодических обновлений;

Одноранговый узел BGP

1. Что такое одноранговый узел BGP?

Спикер BGP:бегать Протокол маршрутизации Маршрутизатор BGP называется Спикер. BGP (маршрутизатор BGP);

Одноранговый узел BGP:два заведенияBGPсессия(BGPизсессияоснован наTCPучредил)маршрутизаторы друг для друга Одноранговый узел BGP,Одноранговый узел Таблицы маршрутизации могут обмениваться между BGP;

2、Классификация одноранговых узлов BGP

Одноранговый узел BGP можно разделить на EОдноранговый в зависимости от того, имеют ли два маршрутизатора одинаковую AS. узел BGPиIОдноранговый узел BGP。

(1) IBGP: маршрутизаторы BGP, расположенные в одной AS, являются взаимоисключающими. узел BGP-отношения;

(2) EBGP: маршрутизаторы BGP, расположенные в разных AS, взаимодействуют друг с другом. узел BGP-отношения;

Условия создания пэров:

  • Адреса, указанные двумя маршрутизаторами для установления одноранговых отношений, должны быть доступны;
  • TCP-соединение может быть установлено;

3. Как установить одноранговый узел BGP

(1) Установление TCP-соединения

Предполагая, что маршрутизатор BGP R1 запускается первым, R1 сначала инициирует установление TCP-соединения и завершает установление TCP-соединения посредством трехэтапного рукопожатия.

(2) Маршрутизатор BGP отправляет сообщение OPEN для согласования параметров.

После установления трехстороннего установления связи R1 и R2 отправляют друг другу сообщения OPEN для установления согласования параметров однорангового узла.

Параметры сообщения ОТКРЫТЬ:

  • собственный номер AS;
  • время удержания: используется для согласования последующего времени отправки сообщения подтверждения активности;
  • Идентификатор BGP: идентификатор собственного маршрутизатора;

(3) Маршрутизатор BGP отправляет сообщение проверки активности для завершения установления узла.

После того, как согласование параметров проходит нормально, обе стороны отправляют друг другу сообщения поддержки активности. После получения сообщений поддержки активности от другой стороны установление однорангового узла происходит успешно. В то же время сообщения поддержки активности отправляются регулярно для поддержания соединения.

(4) Маршрутизатор BGP отправляет сообщение UPDATE для объявления маршрута.

Одноранговый узел Как только связь BGP будет установлена, вы сможете использовать BGP. update Пакет объявляет маршрут партнеру. После получения сообщения поддержки активности от другой стороны партнер успешно устанавливается, и сообщения поддержки активности периодически отправляются для поддержания соединения.

4. Одноранговый узел BGP устанавливается с использованием адреса источника.

По умолчанию BGP использует IP-адрес исходящего интерфейса для установления одноранговых узлов.

(1) При установлении ИОднорангового узел При использовании отношений BGP рекомендуется использовать адрес обратной связи для установления Iоднорангового соединения. узел БГП. Поскольку адрес обратной связи стабилен, для обеспечения надежности можно использовать внутреннюю избыточность IGP.

Например, картинка выше:

R1 и R2 устанавливают IОдноранговый адрес через шлейфовый адрес. узел BGP, если физическое соединение между R1 и R2 разорвано, на подключение адреса обратной связи это не повлияет. Адреса обратной связи R1 и R2 могут быть соединены между собой через R3, тогда равноправные отношения между R1 и R2 все равно могут быть установлены. . Если установить через интерфейс, то это приведет к Одноранговому узел Связь BGP прервана.

(2) При установлении ЭОднорангового узел При использовании отношений BGP рекомендуется использовать прямые адреса для установления EОднорангового узел БГП. Если вы используете петлю, вам необходимо обратить внимание на проблему многопереходности EBGP.

Тип сообщения BGP

1、Тип сообщения BGP

В BGP существует пять различных типов сообщений: открытие, обновление, уведомление, подтверждение активности и обновление маршрута.

2. Формат заголовка BGP.

В отличие от обычного протокола IGP, BGP использует TCP в качестве протокола транспортного уровня, номер порта 179. Существует пять различных типов сообщений BGP, и разные типы сообщений имеют один и тот же заголовок.

Пояснения к полям заголовка сообщения:

  • Маркер: 16 байт, используется для обозначения границы BGP, все биты равны «1».
  • Длина: 2 байта, общая длина сообщения BGP (включая заголовок сообщения).
  • Тип: 1 байт, тип сообщения BGP. Его значение находится в диапазоне от 1 до 5 и представляет сообщения об открытии, обновлении, уведомлении, проверке активности и обновлении маршрута соответственно.

3. Формат сообщения BGP.

(1) Сообщение ОТКРЫТЬ

Открытое сообщение — это первое сообщение, отправленное после установки TCP-соединения, которое используется для согласования параметров;

  • версия: версия bgp, обычно 4;
  • Моя AS: локальный номер AS;
  • Время удержания: Время удержания. При установлении одноранговых отношений обе стороны должны согласовать время удержания. Если в течение этого периода от однорангового узла не получены сообщения подтверждения активности и сообщения обновления, соединение BGP считается прерванным;
  • Идентификатор BGP: идентификатор BGP, идентифицируемый в виде IP-адреса, используемый для идентификации маршрутизатора.

(2) Обновить сообщение

Сообщения обновления используются для передачи информации о маршрутизации между узлами и могут использоваться для публикации и отзыва маршрутов.

Сообщение обновления может объявлять несколько маршрутов с одинаковыми атрибутами пути, и эти маршруты хранятся в NLRI (информация о доступности сетевого уровня).

  • Длина отозванных маршрутов: указывает длину части отозванных маршрутов. Когда его значение равно нулю, это указывает на отсутствие отозванных маршрутов.
  • Общая длина атрибута пути: длина поля атрибута пути в байтах. Если он равен 0, это означает, что поле «Атрибуты пути» отсутствует.

(3) Уведомительное сообщение

Когда BGP обнаруживает состояние ошибки, он отправляет узлу сообщение уведомления, чтобы проинформировать его об ошибке, а затем соединение BGP будет немедленно прервано.

  • Код ошибки, код ошибки: код ошибки, подкод ошибки, описывающий тип ошибки;
  • Данные: содержание ошибки;

(4) Сообщение активности

Обе стороны отправляют друг другу сообщения поддержки активности. После получения сообщений поддержки активности от другой стороны установление узла является успешным. В то же время сообщения поддержки активности отправляются регулярно для поддержания соединения.

(5) Сообщение об обновлении маршрута

Сообщения обновления маршрута используются для запроса узла на повторную отправку информации о маршрутизации для указанного семейства адресов. Как правило, соответствующая политика маршрутизации изменяется локально, и другая сторона повторно отправляет сообщения обновления.

Во время согласования открытого пакета будет согласовано, поддерживать ли обновление маршрута. Если партнер поддерживает возможность обновления маршрута, для этого можно использовать обновление. Команда bgp вручную выполняет программный сброс соединения BGP. Программный сброс BGP может обновить соединение BGP, не прерывая его. маршрутизации BGP и примените новые политики.

Конечный автомат BGP

1. Состояния BGP 6

Существует шесть состояний BGP: бездействие, подключение, активный, opensent, openconfirm и установленный.

2. Переход состояния BGP

Существует шесть состояний BGP: бездействие, подключение, активный, opensent, openconfirm и установленный.

(1) Состояние ожидания — это начальное состояние BGP.

В состоянии ожидания,BGP отклоняет запрос на соединение, отправленный партнером. Только после получения события Start этого устройства,BGP только начал попытки установить TCP-соединения с другим одноранговым узлом BGP.,и перейдите в состояние подключения.

Событие Start вызывается тем, что оператор настраивает процесс BGP, сбрасывает существующий процесс или программное обеспечение маршрутизатора сбрасывает процесс BGP.

После получения события ошибки, такого как сообщение уведомления или уведомление об отключении канала TCP в любом состоянии, BGP перейдет в состояние ожидания.

(2) Статус подключения

В состоянии Connect BGP запускает таймер повторной передачи соединения (Connect Retry) и ждет, пока TCP завершит соединение.

  • Если TCP-соединение установлено успешно, BGP отправляет одноранговому узлу сообщение Open и переключается в состояние OpenSent.
  • Если TCP-соединение не установлено, BGP переходит в активное состояние.
  • Если таймер повторной передачи соединения истекает, BGP все равно не получает одноранговый узел BGP отвечает, затем BGP продолжает попытки и другой Одноранговый узел BGP выполняет TCP-соединение и остается в состоянии Connect.

(3)Активное состояние

В активном состоянии BGP всегда пытается установить TCP-соединение.

  • Если TCP-соединение установлено успешно, BGP отправляет одноранговому узлу сообщение Open, закрывает таймер повторной передачи соединения и переходит в состояние OpenSent.
  • Если TCP-соединение не удается, BGP остается в активном состоянии.
  • Если время таймера повторной передачи соединения истекло,BGP до сих пор не получил ответа от Однорангового узла BGP.,Затем BGP переходит в состояние Connect.

(4) Статус открытия, статус открытия

После успешного установления трехстороннего установления связи TCP отправляется открытое сообщение для установления одноранговых отношений. В настоящее время статус:

состояние openssent: при получении открытого сообщения, на которое ответил партнер, и правильности проверки параметров, он переходит в состояние openconfirm после отправки сообщения поддержки активности.

(5) установившееся состояние

После перехода в состояние openconfirm он переходит в состояние установленное после получения сообщения поддержки активности от узла.

Таблица маршрутизации BGP

1、Одноранговый узел BGPповерхность

Вы можете передать это bgp peer Проверять Одноранговый узел таблица BGP;

‍ (1) одноранговый узел: адрес однорангового узла

(2) V: номер версии

(3) AS: номер AS узла.

(4) UP/DOWN: время, когда партнер находится в верхнем или нижнем положении.

(5) состояние: равноправный статус

(6) prefRce: количество префиксов маршрутизации, полученных от узла.

2、Таблица маршрутизации BGP

Вы можете передать этоplay bgp routing-table Посмотреть таблицу маршрутизации BGP;

Если к одному пункту назначения имеется несколько маршрутов, в списке будут показаны все маршруты, но для каждого пункта назначения будет предпочтительным только один маршрут.

Посредством отображения таблицы маршрутизации bgp ipv4-адрес {маска | длина маски} вы можете отобразить информацию о маршрутизации указанного IP-адреса/длины маски, которая содержит подробную информацию о маршруте BGP, например: отправитель маршрута, адрес следующего перехода. , атрибуты пути маршрута и т. д.

Генерация маршрута BGP

Маршруты BGP объявляются с помощью команд BGP, и существует два метода объявления маршрутов BGP: сетевой и импорт.

(1) Сетевой режим:

Используйте команду network, чтобы опубликовать маршруты (не BGP) в текущей таблице маршрутизации устройства в Таблице. маршрутизации Метод использования команды network в BGP и объявления ее соседям аналогичен использованию команды network в OSPF. Однако при объявлении в BGP вам нужно только объявить сегмент сети + номер маски, например: network. 12.12.0.0 16。

(2)Метод импорта:

Используйте команду «Импорт», чтобы перераспределить информацию о маршрутизации, полученную маршрутизатором, в Таблицу. маршрутизации BGPсередина,Это способ объявления маршрутов BGP.,Маршруты, которые можно импортировать в BGP, включают прямые маршруты, статические маршруты и маршруты, полученные протоколами динамической маршрутизации. Формат команды аналогичен перераспределению OSPF в RIP.

Принципы уведомления BGP

Устройство BGP добавит оптимальный маршрут в Таблицу маршрутизации BGP, чтобы сформировать маршрут BGP.

После того как устройство BGP устанавливает соседские отношения с одноранговым узлом, оно применяет следующие принципы взаимодействия:

  • От И.Одноранговый узел Маршрут BGP получен по BGP, устройство BGP передает его только на EОдноранговый узел BGP。
  • От ЭОдноранговый узел BGP получает маршрут BGP, устройство BGP передает его всем EBGP и IОдноранговый узел BGP (если партнером является IBGP, можно передать только один переход, но если партнером является EBGP, ограничений нет)
  • При наличии нескольких допустимых маршрутов к одному и тому же адресу назначения устройство BGP объявляет одноранговому узлу только оптимальный маршрут.
  • При обновлении маршрутизации устройство BGP отправляет только обновленные маршруты BGP.
  • Все маршруты, отправленные узлами, будут получены устройством BGP.
  • Весь следующий переход EОдноранговый узел BGP изменяется во время доставки.
  • Все следующие переходы BGP остаются неизменными во время доставки (требуется особое внимание).
  • Значение TTL по умолчанию во время передачи EBGP равно 1 (требуется особое внимание).
  • Значение TTL по умолчанию для доставки IBGP — 255.

---END---

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose