Траблшутинг BGP

BGP - это сложный протокол маршрутизации, и бывают ситуации, когда что-то идет не так как надо. Кроме того, что он сложный, он также совершенно отличается от наших IGP протоколов (OSPF и EIGRP). В этой статье мы начнем с рассмотрения неполадок, возникающих в установлении соседства BGP, и как только это разберем, перейдем к проблемам с объявлением маршрутов, которые должны или не должны появляться!


Видео: Основы BGP за 7 минут


Урок 1

Топология

Начнем с нескольких простых сценариев. Два маршрутизатора BGP, которые подключены и настроены для EBGP. К сожалению, мы видим это, когда проверяем соседство BGP:

show ip bgp summary show ip bgp summary

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

  • Layer 2 не позволяет нам добраться до другой стороны.
  • Проблема уровня 3: неправильный IP-адрес на одном из маршрутизаторов.
  • Список доступа, блокирующий TCP-порт 179 (BGP).
  • Неправильный IP-адрес настроен для соседнего маршрутизатора BGP

Мы можем использовать команду show ip bgp summary, чтобы проверить IP-адреса маршрутизаторов. Они, совпадают.

выполним эхо – запрос

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

show ip int brief show ip int brief

Проверяем интерфейсы и видим, что кто-то ввел команду отключения интерфейса.

R2(config)#interface fa0/0
R2(config-if)#no shutdown

"Поднимаем" интерфейс

Поднимаем интерфейс Поднимаем интерфейс

Это прекрасно! Наше соседство BGP установлено. Это было легко!

Итог урока: убедитесь, что ваш интерфейс работает.

Урок 2

Топология

Следующая неполадка похожа на предыдущую, но немного отличается. Мы используем те же маршрутизаторы и номера AS, но на этот раз необходимо установить соседство BGP между интерфейсами обратной связи.

Посмотрим, как выглядит конфигурация BGP:

show run | section bgp show run | section bgp

Вот конфигурация BGP. Как вы видите, мы используем loopback интерфейсы для установления соседства BGP-соседей.

show ip bgp summary show ip bgp summary

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

  • Доступен ли IP-адрес соседа BGP? Мы не используем прямые линии связи, поэтому у нас могут возникнуть проблемы с маршрутизацией.
  • TTL IP-пакетов, которые мы используем для внешнего BGP, равен 1. Это работает для сетей с прямым подключением, но, если они не подключены напрямую, нам нужно изменить эту настройку.
  • По умолчанию BGP будет получать обновления с IP-адреса, ближайшего к соседу BGP. В нашем примере это интерфейс FastEthernet. Это то, что мы должны изменить.
show ip route show ip route

Начнем с маршрутизации. Оба маршрутизатора знают только о своих напрямую подключенных сетях. Чтобы достичь loopback интерфейсов друг друга, мы будем использовать статическую маршрутизацию.

R1(config)#ip route 2.2.2.2 255.255.255.255 192.168.12.2
R2(config)#ip route 1.1.1.1 255.255.255.255 192.168.12.1

Два статических маршрута должны выполнить эту работу.

Отправка ping на IP-адрес 2.2.2.2

Отправка ping на IP-адрес 2.2.2.2 и получение его из нашего собственного loopback интерфейса доказывает, что оба маршрутизатора знают, как связаться с loopback интерфейсом друг друга.

R1(config-router)#neighbor 2.2.2.2 ebgp-multihop 2
R2(config-router)#neighbor 1.1.1.1 ebgp-multihop 2

Команда ebgp-multihop изменяет TTL на 2.

debug ip bgp debug ip bgp

Мы можем включить отладку, чтобы увидеть прогресс. Ясно видно, что R2 использует IP-адрес 192.168.12.2, а R1 отказывается от соединения.

R1(config-router)#neighbor 2.2.2.2 update-source loopback 0
R2(config-router)#neighbor 1.1.1.1 update-source loopback 0

Используйте команду update-source, чтобы изменить IP-адрес источника для обновлений BGP.

Соседство BGP работает Соседство BGP работает

Соседство BGP работает!

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

Урок 3

Топология №3

Продолжим рассмотрение некоторых проблем IBGP. Два маршрутизатора в одной AS и вот конфигурация:

show run | section bgp show run | section bgp

Легко и просто. Маршрутизаторы используют напрямую подключенные IP-адреса для соседства BGP.

show ip bgp summary show ip bgp summary

Жаль ... мы не становимся соседями. Что может быть не так? Мы используем напрямую подключенные интерфейсы, поэтому не так много проблем, если не считать проблемы L2 / L2.

Отправка пинга с одного маршрутизатора на другой

Отправка пинга с одного маршрутизатора на другой доказывает, что L2 и L3 работают нормально. Как насчет L3? У нас могут быть проблемы с транспортным уровнем.

telnet проверка telnet проверка

Я не могу подключиться к TCP-порту 179 с обоих маршрутизаторов. Это звоночек в сторону того, что что-то блокирует BGP?

show ip interface fastEthernet 0/0 | include access show ip interface fastEthernet 0/0 | include access

Вот оно! Это Служба безопасности.…

show ip access-lists

Кто-то решил, что было бы неплохо "обезопасить" BGP и заблокировать его списком доступа.

R2(config)#interface fastEthernet 0/0
R2(config-if)#no ip access-group 100 in

Удалим список доступа.

не блокируйте TCP-порт BGP 179 не блокируйте TCP-порт BGP 179
Итог урока: не блокируйте TCP-порт BGP 179.

Урок 4

Топология №4

Следующая проблема IBGP. Это похоже на ситуацию с EBGP ранее...мы будем использовать loopback-интерфейсы для установления соседства BGP, вот конфигурации:

show run | section router bgp show run | section router bgp

Ничего особенного, IBGP и мы используем loopback интерфейсы.

show ip bgp summary | begin Neighbor show ip bgp summary | begin Neighbor

Не повезло здесь ... нет соседей. Давайте сначала проверим, могут ли маршрутизаторы получить доступ к loopback интерфейсам друг друга:

show ip route show ip route

Быстрый взгляд на таблицу маршрутизации показывает нам, что это не так. Мы могли бы исправить это с помощью статического маршрута или IGP. Обычно мы используем IGP для IBGP для объявления loopback интерфейсов. Сейчас будем использовать OSPF:

R1(config)#router ospf 1
R1(config-router)#network 1.1.1.0 0.0.0.255 area 0
R1(config-router)#network 192.168.12.0 0.0.0.255 area 0
R2(config)#router ospf 1
R2(config-router)#network 192.168.12.0 0.0.0.255 area 0
R2(config-router)#network 2.2.2.0 0.0.0.255 area 0

Набор правильных команд OSPF должно сделать свою работу!

Отправка эхо-запроса

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

show ip bgp summary | begin Neighbor show ip bgp summary | begin Neighbor

Тем не менее, соседство BGP по-прежнему отсутствует

debug ip bgp debug ip bgp

Отладка показывает, что в соединении отказано, а также показывает локальный IP-адрес, который используется для BGP. Кажется, кто-то забыл добавить команду update-source, так что давайте исправим это!

R1(config)#router bgp 1
R1(config-router)#neighbor 2.2.2.2 update-source loopback 0
R2(config)#router bgp 1
R2(config-router)#neighbor 1.1.1.1 update-source loopback 0

Точно так же, как EBGP, мы должны установить правильный источник для наших пакетов BGP.

Задача решена Задача решена

Задача решена! Единственное отличие от EBGP в том, что нам не нужно менять TTL с помощью команды ebgp-multihop.

Итог урока: распространенная практика настройки IBGP между loopback интерфейсами. Убедитесь, что эти loopback доступны и обновления BGP получены из loopback интерфейса.

Теперь, рекомендуем почитать вторую часть статьи по траблшутингу протокола BGP.

Who's online

There are currently 0 users and 1 guest online.