Состояния-соседства-BGP

Состояния соседства BGP

Как и OSPF или EIGRP, протокол BGP устанавливает соседство с другими маршрутизаторами BGP, прежде чем они обменяются любой информацией о маршрутизации. Однако, в отличие от других протоколов маршрутизации, BGP не использует широковещательную (broadcast) или многоадресную (multicast) рассылку для «обнаружения» других соседей BGP.

Содержание:

  1. Введение
  2. Топология
    1. Настройки маршрутизатора R1
    2. Настройки маршрутизатора R2
  3. Отслеживание состояний соседства
  4. Выводы

Введение

Соседей необходимо указывать вручную командой neighbor {ip-address | peer-group-name} remote-as {as-number}, указав IP-адрес напрямую подключённого соседа и номер AS, в которой находится маршрутизатор соседа. BGP использует порт TCP 179 для подключения.

Ниже представлены 6 состояний соседства (neighbor adjacency), в которых может оказаться маршрутизатор BGP при попытке установить смежность с другим маршрутизатором:

  1. Idle — это первое состояние, когда BGP ожидает «события запуска». Событие запуска происходит при настройке нового соседа BGP или при перезапуске уже установленного сеанса BGP. После события запуска, BGP инициализирует некоторые ресурсы, сбрасывает таймер ConnectRetry и инициирует TCP-соединение с соседом BGP. Он также начнет прослушивать соединение, если удаленный сосед BGP попытается установить соединение. Когда всё проходит успешно, BGP переходит в состояние Connect. Когда что-то идёт не так, он останется в состоянии Idle.
  2. Connect BGP ожидает завершения трехстороннего подтверждения TCP. Когда он его получит, перейдёт в состояние OpenSent. В случае неудачи сеанс останется в состоянии Active. Таймер ConnectRetry будет сброшен, и BGP попытается выполнить трехстороннее рукопожатие TCP. Если произойдёт некая неполадка (например, сброс BGP), маршрутизатор возвращается в состояние Idle.
  3. Active BGP попытается выполнить другое трехстороннее рукопожатие TCP, чтобы установить соединение с удаленным соседом BGP. Если оно будет успешным, он перейдёт в состояние OpenSent. Если таймер ConnectRetry истекает, то он возвращается в состояние Connect. BGP также будет продолжать прослушивать входящие соединения, на случай, если удаленный сосед BGP пытается установить соединение.
  4. OpenSent — в этом состоянии BGP будет ожидать сообщения Open от удаленного BGP-соседа. Сообщение Open будет проверяться на наличие ошибок. Если что-то не так (неправильные номера версий, неправильный номер AS и т. д.), то BGP ответит сообщением «Notification» и перейдет в состояние Idle. Это также тот момент, когда BGP решает, используется eBGP или iBGP. Если всё в порядке, то BGP начинает отправлять сообщения keepalive и сбрасывает свой таймер keepalive. В этот момент время удержания согласовывается (выбирается самое низкое значение) между двумя BGP-маршрутизаторами. В случае сбоя сеанса TCP, BGP вернется в состояние Active. Когда происходят какие-либо другие ошибки (истечение таймера удержания), BGP отправляет уведомление с кодом ошибки и переходит в состояние Idle.
  5. OpenConfirm BGP ожидает сообщения keepalive от удаленного BGP-соседа. Когда он получит keepalive, то сможет перейти в состояние Established, и соседство будет установлено. Когда это произойдет, случится сброс таймера удержания. Если маршрутизатор получит сообщение «Notification» от удаленного соседа BGP, то вернется в состояние Idle. BGP будет продолжать отправлять сообщения keepalive.
  6. Established — соседство BGP установлено, и маршрутизаторы BGP отправят пакеты для обмена информацией о маршрутизации. Каждый раз, когда маршрутизатор получает сообщение keepalive или update, таймер удержания будет сброшен. При получении сообщения Notification — возвращается в состояние Idle.

Весь этот процесс установления соседства BGP можно визуализировать для лучшего восприятия информации. Официальное название «диаграммы», показывающей разные состояния, по которым мы можем перемещаться из одного в другое, называется конечным автоматом — FSM (Finite State Machine). Для BGP это выглядит так:

 

BGP-states-neighbor-adjacency

Топология

Исследуемая топология состоит из двух маршрутизаторов (Cisco 1941 с образом Cisco IOS Version 15.9(3)M6). Допускается использование других моделей маршрутизаторов и версий программного обеспечения Cisco IOS. В зависимости от модели маршрутизатора и версии программного обеспечения Cisco IOS, доступные команды и полученные результаты могут отличаться от показанных в этой статье.

Схема топологии следующая:

 

BGP neighbor adjacency topology

Настройки маршрутизатора R1

Настройки маршрутизатора R2

Отслеживание состояний соседства

Прежде чем настроить BGP, включим отладку на двух маршрутизаторах:

 

На R1 заходим в конфигурацию BGP и прописываем IP-адрес соседа и его AS:

 

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

 

R1 пытается подключиться к R2. Первая строка вывода debug указывает, что состояние меняется с Idle на Active (оно не показывает состояние Connect в отладке). Когда что-то идёт не так, он возвращается в состояние Idle.

Теперь давайте настроим BGP на R2, чтобы увидеть успешный прогресс изменения состояния:

 

После этого посмотрим на отладку на R2:

 

В выводе выше можно видеть, что состояние BGP меняется с Idle на Active, а затем на OpenSent. Некоторые сообщения Open  отправляются и принимаются, маршрутизаторы BGP обмениваются своей информацией. Далее смежность переходит в состояние OpenConfirm и Established. Наконец, соседство BGP успешно установлено (последняя строка).

На R1 происходит нечто подобное.

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

Выводы

Спасибо за уделенное время на прочтение статьи. Теперь Вы знаете больше о состояниях соседства BGP.

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet (программируемые сети) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики
Меню