Устранение-неполадок-при-рассылке-маршрутов-BGP

Устранение неполадок при рассылке маршрутов BGP

После установления соседства BGP, маршрутизаторы начнут обмениваться информацией друг с другом о известных для себя маршрутах. На этом этапе могут возникнуть некоторые проблемы с рассылкой маршрутов BGP, которые показаны в этой статье. Для начала рекомендуем ознакомиться со статьей, где рассмотрено как устранить неполадки соседства BGP.

Содержание:

  1. Команда BGP network
    1. Топология
    2. Настройки маршрутизатора R1
    3. Настройки маршрутизатора R2
    4. Решение
  2. Суммирование маршрутов в BGP (Route Summarization)
    1. Топология
    2. Настройки маршрутизатора R1
    3. Настройки маршрутизатора R2
    4. Решение
  3. Автоматическое суммирование в BGP (auto-summary)
    1. Топология
    2. Настройки маршрутизатора R1
    3. Настройки маршрутизатора R2
    4. Решение
  4. Карта маршрутов в BGP (route-map)
    1. Топология
    2. Настройки маршрутизатора R1
    3. Настройки маршрутизатора R2
    4. Решение
  5. Метод Split Horizon в iBGP
    1. Топология
    2. Настройки маршрутизатора R1
    3. Настройки маршрутизатора R2
    4. Настройки маршрутизатора R3
    5. Решение
  6. Адрес следующего перехода в BGP (next hop)
    1. Топология
    2. Настройки маршрутизатора R1
    3. Настройки маршрутизатора R2
    4. Настройки маршрутизатора R3
    5. Решение
  7. Выводы

Команда BGP network

Топология

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

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

 

MC BGP dampening

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

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

Решение

Начнем со сценария eBGP: маршрутизаторы R1 и R2 находятся в разных AS. R1 пытается объявить свою сеть 1.1.1.0/24 соседу R2, но она не отображается в таблице BGP R2. На первый взгляд, всё настроено верно. Посмотрим, узнал ли что-нибудь R2:

 

Маршрутизатор R2 не узнал никаких маршрутов от R1 (State/PfxRcd = 0). Давайте проверим конфигурацию BGP на R1:

 

Проблема заключается в команде network, она работает по-разному для протоколов BGP и IGP. Если применять команду network для BGP, обязательно должно быть точное совпадение — точный адрес сети и маска подсети network {ip-prefix} mask {mask}.

В данном случае нужно добавить маску подсети. Давайте исправим эту проблему на R1:

 

Теперь снова проверим R2:

 

 

Обратите внимание, R2 узнал о сети соседа 1.1.1.0/24 (State/PfxRcd = 1) и установил его в свою таблицу BGP.

Итог: вводите точные (правильные) адрес сети и маску подсети — BGP достаточно привередлив.

Суммирование маршрутов в BGP (Route Summarization)

Топология

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

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

 

Troubleshooting BGP Route Advertisement-3

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

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

Решение

Представим, что сетевой инженер из AS 1 хочет разослать суммирование в AS 2. Сетевой инженер из AS 2 сообщил, что не получил никакой информации. Давайте посмотрим текущую конфигурацию обоих маршрутизаторов:

Маршрутизатор R1:

 

Маршрутизатор R2:

 

В выходных данных R1 можно увидеть команду aggregate-address для сети 172.16.0.0/16. Получил ли R2 что-нибудь:

 

Маршрутизатор R2 не получил никаких маршрутов от соседа (State/PfxRcd = 0). Проверим, что находится в таблице маршрутизации R1, поскольку он не может рассылать то, чего у него нет. Начнем с таблицы маршрутизации R1:

 

Здесь нет никакой информации о 172.16.0.0/16. Если планируется отправка суммирования маршрутов, необходимо сначала поместить сеть/сети в таблицу маршрутизации R1. Рассмотрим несколько вариантов решения.

Вариант №1: на R1 создадим интерфейс loopback1 с IP-адресом, входящий в диапазон команды aggregate-address. Также объявим сеть в BGP:

 

Проверим таблицу BGP R2:

 

Теперь суммирование присутствует в таблице маршрутизации BGP R2. По умолчанию маршрутизатор по прежнему будет рассылать и другие маршруты. Если в этом нет необходимости, используйте команду aggregate-address summary-only.

Вариант №2: поместим сеть 172.16.0.0/16 в таблицу маршрутизации, создав статический маршрут и указывая его на интерфейсе null 0. Будем использовать команду network для рассылки этой сети в BGP:

 

Результатом будет следующее:

 

Теперь суммирование присутсвует на R2.

Итог: невозможно рассылать информацию о сети, которой нет в таблице маршрутизации. Создайте статический маршрут и укажите его на интерфейсе null 0 или создайте интерфейс loopback с сетью, который попадает в диапазон адресов суммирования.

Автоматическое суммирование в BGP (auto-summary)

Топология

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

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

 

MC BGP dampening

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

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

Решение

Рассмотрим следующий сценарий. Сетевой инженер из автономной системы AS 2 связывается с инженером из AS 1 с вопросом, почему происходит анонс агрегированного маршрута 1.0.0.0/8. Для выяснения причины предпринимается анализ текущей маршрутизации и конфигурации. Вот что видно на R2:

 

BGP воспринимает настроенную сеть 1.1.1.0/24 как класс A и преобразует в 1.0.0.0/8 — именно это и увидел R2. Давайте посмотрим, что рассылает R1:

 

Вывод команды показывает, что сеть 1.0.0.0/8 присутствует в таблице BGP R1. Проверим его таблицу маршрутизации R1:

 

Сеть 1.1.1.0/24 настроена на интерфейсе loopback, но она записана в таблице BGP как 1.0.0.0/8. Это указывает только на автоматическое суммирование (autosummary). Посмотрим на вывод R1 ниже:

 

Просмотр IP-протоколов показывает, что автоматическое суммирование включено (Automatic route summarization is enabled). Отключим его на R1:

 

Снова проверим таблицу BGP R2:

 

Таблица BGP R2 пустая. Давайте проверим конфигурацию BGP на R1:

 

Когда auto-summary отключён, необходимо всегда указывать маску, чтобы BGP нашел точное совпадение маршрута в таблице маршрутизации. Без mask и без auto-summary анонса не будет. Исправим это на R1:

 

Теперь суммированный адрес 1.1.1.0/24 есть на R2.

Итог: при наличии классовых сетей в таблице BGP, можно включить автоматическое суммирование (autosummary).

Примечание: Некоторые проблемы могут быть легко устранены путем просмотра или сравнения вывода команды «show run». Однако следует учитывать, что доступ ко всем маршрутизаторам BGP в сети может отсутствовать, поэтому сравнение конфигураций не всегда возможно. Между устройствами, в процессе устранения неполадок, могут находиться коммутаторы или другие маршрутизаторы, вызывающие затруднения. Применение соответствующих команд show и debug позволяет точно определить действия маршрутизатора и информацию, которую он передаёт другим маршрутизаторам.

Карта маршрутов в BGP (route-map)

Топология

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

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

 

MC BGP dampening

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

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

Решение

Пользователи из AS 2 жалуются, что они не получают информацию от AS 1. Давайте посмотрим на R2, какая информация есть от соседа R1:

 

Маршрутизатор R2 не получает никаких маршрутов (State/PfxRcd = 0). Возможно R1 имеет какие-то фильтры:

 

Фильтры отсутствуют. Давайте проверим, имеет ли R1 сеть 1.1.1.0/24 в своей таблице BGP:

 

Таким образом, можно подтвердить, что сеть 1.1.1.0/24 присутствует в таблице BGP R1. Тогда почему она не отправляется на R2?

Следует проверить, настроено ли на R1 что-либо специфическое для соседа R2 с помощью команды show ip bgp neighbors:

 

Получена подробная информация о соседе R2. Видно, что к исходящим объявлениям применяется карта маршрутов с именем NEIGHBORS. Следует помнить, что кроме distribute-lists, фильтрация маршрутов в BGP может осуществляться с помощью route-map. Давайте проверим содержимое этой карты маршрутов на R1:

 

Используется только оператор сопоставления с prefix-list под названием PREFIXES. Теперь посмотрим содержимое prefix-list:

 

Вот и источник проблемы — объявление сети 1.1.1.0/24 блокируется. Необходимо удалить привязку карты маршрутов:

 

После этого проблема должна быть устранена. Проверим таблицу маршрутизации BGP R2:

 

Наконец, маршрутизатор R2 получил сеть — проблема решена.

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

Метод Split Horizon в iBGP

Топология

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

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

 

Troubleshooting BGP Route Advertisement

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

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

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

Решение

Рассмотрим сценарий: маршрутизатор R1 анонсирует сеть 1.1.1.0/24, но маршрутизатор R3 не получает эту сеть. Соседство настроено, R1 анонсирует сеть 1.1.1.0/24. Посмотрим, узнали ли об этом R2 и R3:

Маршрутизатор R2:

 

Маршрутизатор R3:

 

С помощью команды на R2 видно, что сеть получена, однако на R3 маршрут 1.1.1.0/24 отсутствует.

Причина состоит в том, что это особенность протокола iBGP. В iBGP действует правило split-horizon: маршруты, полученные от одного iBGP-соседа, не пересылаются другим iBGP-соседям. Таким образом, R2 не пересылает маршрут от R1 к R3.

Для решения этой проблемы необходимо настроить прямое соседство iBGP между R1 и R3. Для этого требуется обеспечить маршрутизацию между ними. В данном случае используются статические маршруты:

Маршрутизатор R1:

 

Маршрутизатор R3:

 

После чего настраивается соседство между R1 и R3:

Маршрутизатор R1:

 

Маршрутизатор R3:

 

Теперь R3 успешно получает маршрут:

 

Теперь у R3 есть доступ к сети 1.1.1.0/24.

 

Итог: в сетях iBGP все маршрутизаторы должны быть соединены в полносвязную (full-mesh) топологию. Альтернативные решения — использование маршрутизаторов-рефлекторов маршрутов (route reflectors) или конфедераций (confederations).

Адрес следующего перехода в BGP (next hop)

Топология

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

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

 

Troubleshooting BGP Route Advertisement-2

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

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

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

Решение

Маршрутизатор R3 анонсирует сеть 3.3.3.0/24 через eBGP. Маршрутизатор R2 принимает этот маршрут и устанавливает его в таблицу маршрутизации. Однако R1 не имеет этого маршрута в своей таблице.

Для простоты примера, будем использовать IP-адреса физических интерфейсов для настройки соседства BGP. Проверим, узнал ли R2 о 3.3.3.0/24:

 

На маршрутизаторе R2 маршрут 3.3.3.0/24 присутствует. Однако на R1 — его нет:

 

В таблице маршрутизации R1 ничего нет. Первое, что необходимо проверить, это таблица BGP:

 

Обратите внимание, маршрут присутствует в таблице BGP, помечен как допустимый (*), но не выбранный (>) — это означает, что он не установлен в таблицу маршрутизации. Причина может быть в недостижимом next-hop. Проверим IP-адрес следующего перехода на R1:

 

Маршрутизатор R1 не знает, как добраться до 192.168.20.3. Есть два способа решения этой проблемы:

Решение №1: изменение next-hop на R2

Чтобы устранить недостижимость next-hop, на маршрутизаторе R2 применяется следующая команда:

 

Эта команда изменит IP-адрес следующего перехода на IP-адрес R2. После этого через некоторое время на R1 маршрут появляется с новым next-hop:

 

Можно увидеть символ «>«, который указывает, что этот путь выбран как лучший:

Однако, не всё так просто. Попытка отправки эхо-запроса с R1 к 3.3.3.3 завершается неудачей:

 

Хотя маршруты есть, пакеты не доходят до R3, так как обратного маршрута до источника (192.168.10.0/24) на R3 нет. Давайте посмотрим на R3:

 

Решение №2: анонсирование сети 192.168.10.0/24 на R2

R3 получит IP-пакет с адресом 3.3.3.3 и источником 192.168.10.1. В таблице маршрутизации можно увидеть, что R3 не знает, куда отправлять IP-пакеты, которые предназначены для 192.168.10.1. Чтобы это изменить, добавим следующую команду на маршрутизаторе R2:

 

Сеть 192.168.10.0/24 будет аннонсирована на R2. Теперь R3 знает, как добраться до источника пакета:

 

Попробуем снова выполнить ping с R1:

 

Проблема решена.

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

Выводы

Спасибо за уделенное время на прочтение статьи. Теперь Вы знаете как найти и устранить неполадки при рассылке маршрутов 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.
Вы должны согласиться с условиями для продолжения


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