BGP довольно сложный протокол маршрутизации. Множество событий могут негативно повлиять на его работу и соседство. Ключ к устранению неполадок BGP — это понимание принципов того, как он формирует соседство (Neighbor Adjacency). Как работает процесс установления состояния соседства BGP можно узнать в этой статье. Далее рассмотрим несколько вариантов сценариев поиска и устранения неполадок при рассылке маршрута.
Содержание:
Проблема с интерфейсом
Топология
Исследуемая топология состоит из двух маршрутизаторов (Cisco 1941 с образом Cisco IOS Version 15.9(3)M6). Допускается использование маршрутизаторов других моделей, а также других версий операционной системы Cisco IOS. В зависимости от модели устройства и версии Cisco IOS, доступные команды и результаты их выполнения могут отличаться от тех, которые показаны в этой статье.
Схема топологии следующая:
Настройки маршрутизатора R1
Настройки маршрутизатора R2
Решение
Маршрутизаторы R1 и R2 соединены напрямую, и между ними настроен сеанс eBGP. Для начала проверим, установлена ли смежность BGP с помощью команды show ip bgp summary
:
Маршрутизатор R1:
Маршрутизатор R2:
Когда два маршрутизатора eBGP, которые подключены напрямую, не образуют рабочую смежность BGP, на это может быть несколько причин:
- Layer 1&2 не работают и не позволяют достичь другую сторону.
- Проблема с Layer 3: неправильный IP-адрес на одном из интерфейсов маршрутизаторов.
- Списки доступа (Access-list) блокируют TCP-порт 179 (BGP).
- Неверный IP-адрес при назначении соседнего маршрутизатора BGP.
Пойдем по порядку. На R1 выполним проверку соединения с соседом с IP-адресом 192.168.10.2, используя утилиту ping:
Выполненный ping показывает, что R1 не может достичь R2. Поскольку Layer 3 не работает, давайте посмотрим на Layer 1 и 2:
Маршрутизатор R1:
Маршрутизатор R2:
Обратите внимание, на R2 неактивен интерфейс GigabitEthernet0/0, а именно он указан в построении соседства. Давайте это исправим, активируя интерфейс командой no shutdown
:
После включения интерфейса появятся следующие уведомления:
Маршрутизатор R1:
Маршрутизатор R2:
Теперь соседняя смежность BGP установлена.
Краткий итог: убедитесь, что все интерфейсы запущены и работают.
Требования eBGP
Топология
Исследуемая топология состоит из двух маршрутизаторов (Cisco 1941 с образом Cisco IOS Version 15.9(3)M6). Допускается использование маршрутизаторов других моделей, а также других версий операционной системы Cisco IOS. В зависимости от модели устройства и версии Cisco IOS, доступные команды и результаты их выполнения могут отличаться от тех, которые показаны в этой статье.
Схема топологии следующая:
Настройки маршрутизатора R1
Настройки маршрутизатора R2
Решение
Такая же топология, но другая проблема. Целью этого сценария является установление соседства eBGP, используя IP-адреса на интерфейсах loopback.
Проверим, установлена ли смежность BGP:
Маршрутизатор R1:
Маршрутизатор R2:
Оба маршрутизатора показывают, что их соседний BGP неактивен. Здесь есть сразу несколько пунктов, которые необходимо проверить:
- Доступен ли IP-адрес соседа BGP? В примере не используется напрямую подключенная сеть (directly connected) в качестве адреса соседа.
- TTL IP-пакетов, которые используются для eBGP, равняется 1. Значение 1 действует для сетей с прямым подключением, в остальных случаях нужно настраивать значение самостоятельно.
- По умолчанию BGP будет получать обновления с IP-адреса, ближайшего к соседу BGP. В данном примере это интерфейс GigabitEthernet (далее это изменим).
Давайте проверим, доступен ли IP-адрес удаленного соседа, посмотрев таблицы маршрутизации:
Маршрутизатор R1:
Маршрутизатор R2:
Оба маршрутизатора знают только о своих напрямую подключенных сетях. Для того, чтобы достигнуть loopback-интерфейсов, используем статическую маршрутизацию. Пропишем статические маршруты (static route):
Маршрутизатор R1:
Маршрутизатор R2:
Два статических маршрута должны исправить ситуацию. Давайте попробуем проверить соединение утилитой ping на R1:
Отправка ping на IP-адрес 2.2.2.2 и получение его из собственного интерфейса loopback доказывает, что оба маршрутизатора знают, как достичь loopback-интерфейса друг друга.
Перед следующим шагом предлагаем включить отладку на R2, чтобы наблюдать за процессом установления соседства. Отладка включается в привилегированном режиме:
Поскольку не используются напрямую подключенные интерфейсы, необходимо увеличить TTL пакетов. Это можно сделать с помощью команды neighbor {ip-адрес | peer-group-name} ebgp-multihop {ttl}
в режиме конфигурации процесса маршрутизации BGP:
Маршрутизатор R1:
Маршрутизатор R2:
Примечание: как настроить eBGP Multihop на Cisco можно посмотреть в этой статье.
Теперь посмотрим на уведомления R1:
В выводе видно, что R1 использует IP-адрес 192.168.10.1 и R2 отказывается от соединения. Это связано с тем, что используется неправильный IP-адрес источника. Необходимо указать BGP использовать другой IP-адрес с помощью команды neighbor {ip-address | peer-group-name} update-source {interface-type interface-number}
:
Маршрутизатор R1:
Маршрутизатор R2:
После внесения этих изменений проблема должна быть решена:
Маршрутизатор R1:
Маршрутизатор R2:
Соседство BGP установлено.
Краткий итог: BGP-маршрутизаторы не должны устанавливать соседство с использованием непосредственно подключенных интерфейсов. Убедитесь, что маршрутизаторы BGP могут взаимодействовать друг с другом, что пакеты BGP получены из правильного интерфейса, а в случае использования eBGP не забывайте использовать команду multihop.
Источник обновления iBGP
Топология
Исследуемая топология состоит из двух маршрутизаторов (Cisco 1941 с образом Cisco IOS Version 15.9(3)M6). Допускается использование маршрутизаторов других моделей, а также других версий операционной системы Cisco IOS. В зависимости от модели устройства и версии Cisco IOS, доступные команды и результаты их выполнения могут отличаться от тех, которые показаны в этой статье.
Схема топологии следующая:
Настройки маршрутизатора R1
Настройки маршрутизатора R2
Решение
В этом примере настроен сеанс iBGP между маршрутизаторами. Используются интерфейсы loopback для установления соседства BGP. Проверим, установлено ли соседство:
Маршрутизатор R1:
Маршрутизатор R2:
Соседство не активно. Теперь проверим, могут ли маршрутизаторы достигнуть loopback-сетей:
Маршрутизатор R1:
Маршрутизатор R2:
Просмотр таблицы маршрутизации показывает, что маршрутизаторы не могут взаимодействовать с loopback-сетями друг друга. Это можно исправить, прописав статический маршрут или настроив IGP. Из IGP для iBGP обычно используется OSPF для рассылки интерфейсов loopback. Поэтому на каждом маршрутизаторе активируем сеанс OSPF и объявим сети:
Маршрутизатор R1:
Маршрутизатор R2:
Попробуем выполнить ping с R1 на адрес 2.2.2.2 loopback-интерфейса соседа:
Больше нет проблем с достижимостью. Итак, как теперь обстоят дела с соседством:
Маршрутизатор R1:
Маршрутизатор R2:
Тем не менее, смежность BGP отсутствует. Давайте попробуем выполнить отладку:
Маршрутизатор R1:
Маршрутизатор R2:
Отладка показывает, что в соединении отказано, и также виден локальный IP-адрес, который используется для BGP. Исправим это, добавив команду update-source:
Маршрутизатор R1:
Маршрутизатор R2:
Как и в eBGP, необходимо установить правильный источник для пакетов BGP. Через несколько секунд увидим следующее:
Маршрутизатор R1:
Маршрутизатор R2:
Проблема решена. Единственное отличие iBGP от eBGP заключается в том, что не нужно менять TTL с помощью команды ebgp-multihop.
Краткий итог: при настройке iBGP между интерфейсами loopback убедитесь, что эти loopbacks достижимы, и что обновления BGP приходят из интерфейса loopback.
Ещё один совет — не блокируйте TCP-порт BGP 179.
Выводы
Спасибо за уделенное время на прочтение статьи. Вы узнали про наиболее распространенные проблемы, в связи с которыми BGP может не создавать соседнюю смежность (Neighbor Adjacency). И теперь Вы умеете устранять неполадки соседства BGP.
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet (программируемые сети) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.