img

Устранение неисправностей в BGP – часть 2

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

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

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


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


Урок 1

Топология

Новый сценарий. R1 и R2 находятся в разных автономных системах. Мы пытаемся объявить сеть 1.1.1.0 / 24 от R1 до R2, но она не отображается на R2. Вот конфигурации:

show run | section bgp show run | section bgp

На первый взгляд, здесь все в порядке.

show ip bgp summary

Однако R2 не узнал никаких префиксов от R1

show ip protocols | include filter show ip protocols | include filter

Может быть, используется distribute-list. Но нет, это не тот случай. Это означает, что нам придется проверять наши все команды network.

show run | section router bgp

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

R1(config)#router bgp 1
R1(config-router)#network 1.1.1.0 mask 255.255.255.0

Мы должны убедиться, что ввели правильную маску подсети.

show ip bgp summary | begin Neighbor show ip route bgp

Итак, видно, что мы узнали префикс, и R2 устанавливает его в таблицу маршрутизации ... проблема решена!

Итог урока: введите правильную маску подсети ... BGP требователен!

Урок 2

Топология №2

Давайте перейдем к следующей проблеме. Системный администратор из AS1 хочет объявить summary в AS 2. Системный администратор из AS 2 жалуется, однако, что он ничего не получает..., давайте, выясним, что происходит не так!

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

Вот конфигурация. Вы можете увидеть команду aggregate-address на R1 для сети 172.16.0.0 / 16.

show ip bgp summary | begin Neighbor

Жаль ... префиксы не были получены R2. Здесь мы можем проверить две вещи:

  • Проверьте, не блокирует ли distribute-list префиксы, как это мы сделали в предыдущем занятии.
  • Посмотрите, что R1 имеет в своей таблице маршрутизации (Правило: "не могу объявлять то, чего у меня нет!").

Давайте начнем с таблицы маршрутизации R1. Из предыдущих уроков вы знаете, как выглядит distribute-list.

show ip route

Здесь нет ничего, что выглядело бы даже близко к 172.16.0.0 /16. Если мы хотим объявить summary, мы должны сначала поместить что-то в таблицу маршрутизации R1. Рассмотрим различные варианты:

R1(config)#interface loopback 0
R1(config-if)#ip address 172.16.0.1 255.255.255.0
R1(config-if)#exit
R1(config)#router bgp 1
R1(config-router)#network 172.16.0.0 mask 255.255.255.0

Это вариант 1. Создам интерфейс loopback0 и настроим IP-адрес, который попадает в диапазон команды aggregate-address.

show ip route bgp

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

Второй вариант объявления summary:

R1(config)#ip route 172.16.0.0 255.255.0.0 null 0
R1(config)#router bgp 1
R1(config-router)#network 172.16.0.0 mask 255.255.0.0

Сначала мы поместим сеть 172.16.0.0 / 16 в таблицу маршрутизации, создав статический маршрут и указав его на интерфейсе null0. Во-вторых, будем использовать команду network для BGP для объявления этой сети.

show ip route bgp
Итог урока: Вы не можете объявлять то, чего у вас нет. Создайте статический маршрут и укажите его на интерфейсе null0, чтобы создать loopback интерфейс с префиксом, который попадает в диапазон суммарных адресов.

Урок 3

Топология №3

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

show ip route bgp

Это то, что видит системный администратор на R2.

show ip bgp 1.0.0.0

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

show ip route 1.0.0.0

Сеть 1.1.1.0 / 24 настроена на loopback интерфейс, но она находится в таблице BGP как 1.0.0.0 / 8. Это может означать только одну вещь ... суммирование.

show ip protocols

Беглый взгляд на выводы команды show ip protocols показывает, что автоматическое суммирование включено. Отключим это:

R1(config)#router bgp 1
R1(config-router)#no auto-summary

Мы отключим его на R1.

show ip route bgp

Теперь мы видим 1.1.1.0 / 24 на R2 ... проблема решена!

Итог урока: если вы видите classful сети в своей таблице BGP, возможно, вы включили автоматическое суммирование.
Некоторые из проблем, которые были рассмотрены, можно легко решить, просто посмотрев и/или сравнив результаты команды "show run". И это правда, но имейте в виду, что у вас не всегда есть доступ ко ВСЕМ маршрутизаторам в сети, поэтому, возможно, нет способа сравнить конфигурации. Между устройствами, на которых вы пытаетесь устранить неисправности или которые вызывают проблемы, может быть коммутатор или другой маршрутизатор. Использование соответствующих команд show и debug покажет вам, что именно делает ваш маршрутизатор и что он сообщает другим маршрутизаторам.

Урок 4

Топология №4

Та же топология, другая проблема. Персонал из AS 2 жалуются, что они ничего не получают от AS 1. Для усложнения проблемы, конфигурация не будет показана.

show ip bgp summary | begin Neighbor

Для начала, мы видим, что R2 не получает никаких префиксов.

show ip protocols | include filter

Так же можем убедиться, что R1 не имеет каких-либо distribute-lists.

show ip bgp 1.1.1.0

Мы видим, что R1 действительно имеет сеть 1.1.1.0 /24 в своей таблице маршрутизации, так почему же он не объявляет ее в R2?

Давайте посмотрим, может на R1 есть какие-то особенные настройки для своего соседа R2:

show ip bgp neighbors 192.168.12.2

Будем использовать команду show ip bgp neighbors, чтобы увидеть подробную информацию о R2. Мы видим, что route-map была применена к R2 и называется "NEIGHBORS". Имейте в виду, что помимо distribute-lists мы можем использовать также route-map для фильтрации BGP.

show route-map

Существует только оператор соответствия для prefix-list "PREFIXES".

show ip prefix-list

Вот наш нарушитель спокойствия ... он запрещает сеть 1.1.1.0 / 24!

R1(config)#router bgp 1
R1(config-router)#no neighbor 192.168.12.2 route-map NEIGHBORS out

Удалим route-map

show ip route bgp

И наконец R2 узнал об этом префиксе ... проблема решена!

Итог урока: убедитесь, что нет route-map, блокирующих объявление префиксов.
BGP иногда может быть очень медленным, особенно когда вы ждете результатов, когда вы работаете на тестовом или лабораторном оборудовании. "Clear ip bgp *" - это хороший способ ускорить его ... просто не делайте этого на маршрутизаторах в производственной сети)

Урок 5

Топология №5

Наконец, третий участник выходит на арену, чтобы продемонстрировать новую проблему. R1-это объявляемая сеть 1.1.1.0 / 24, но R3 не изучает эту сеть. Здесь представлены конфигураций:

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

Соседство настроено, R1 - объявляемая сеть 1.1.1.0 / 24.

show ip route bgp
R3#show ip route bgp

Мы можем видеть сеть 1.1.1.0 / 24 в таблице маршрутизации R2, но она не отображается на R3.

Технически проблем нет. Если вы внимательно посмотрите на конфигурацию BGP всех трех маршрутизаторов, то увидите, что существует только соседство BGP между R1 и R2 и между R2 и R3. Из-за split horizon IBGP R2 не пересылает сеть 1.1.1.0 / 24 в направлении R3. Чтобы это исправить, нам нужно настроить R1 и R3, чтобы они стали соседями.

R1(config)#ip route 192.168.23.3 255.255.255.255 192.168.12.2
R3(config)#ip route 192.168.12.1 255.255.255.255 192.168.23.2

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

R1(config)#router bgp 1
R1(config-router)#neighbor 192.168.23.3 remote-as 1
R3(config)#router bgp 1
R3(config-router)#neighbor 192.168.12.1 remote-as 1

Примените правильные настройки команды neighbor BGP.

show ip route bgp

И R3 имеет доступ к сети 1.1.1.0 / 24!

Итог урока: соседство по IBGP должно быть полным циклом! Другим решением было бы использование route-reflector или confederation.

Урок 6

Топология №6

Очередная проблема. R3 является объявляемой сетью 3.3.3.0 / 24 через EBGP, а R2 устанавливает ее в таблицу маршрутизации. R1, однако, не имеет этой сети в своей таблице маршрутизации. Вот конфигурации:

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

Вот конфигурации. Для простоты мы используем IP-адреса физического интерфейса для настройки соседей BGP.

show ip route bgp

Мы можем проверить, что сеть 3.3.3.0 / 24 находится в таблице маршрутизации R2.

R1#show ip route bgp

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

show ip bgp

Мы видим, что он находится в таблице BGP, и * указывает, что это допустимый маршрут. Однако мы не видим символа >, который указывает лучший путь. По какой-то причине BGP не может установить эту запись в таблице маршрутизации. Внимательно посмотрите на следующий IP-адрес прыжка (192.168.23.3). Доступен ли этот IP-адрес?

show ip route 192.168.23.3

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

  • Используйте статический маршрут или IGP, чтобы сделать этот next hop IP-адрес доступным.
  • Измените next hop IP-адрес.

Мы изменим IP-адрес следующего прыжка, так как мы достаточно изучили применение статических маршрутов и IGPs.

R2(config)#router bgp 1
R2(config-router)#neighbor 192.168.12.1 next-hop-self

Эта команда изменит IP-адрес следующего перехода на IP-адрес R2.

show ip bgp

Теперь мы видим символ >, который указывает, что этот путь был выбран как лучший. IP-адрес следующего перехода теперь 192.168.12.2.

show ip route bgp

Ура! Теперь он есть в таблице маршрутизации. Мы уже закончили? Если наша цель состояла в том, чтобы она отобразилась в таблице маршрутизации, то мы закончили...однако есть еще одна проблема.

ping 3.3.3.3

Наш пинг не удался. R1 и R2 оба имеют сеть 3.3.3.0 / 24 в своей таблице маршрутизации, поэтому мы знаем, что они знают, куда пересылать IP-пакеты.

Давайте взглянем на R3:

show ip route

R3 получит IP-пакет с пунктом назначения 3.3.3.3 и источником 192.168.12.1. Из таблицы маршрутизации видно, что она не знает, куда отправлять IP-пакеты, предназначенные для 192.168.12.1. Исправим это:

R2(config)#router bgp 1
R2(config-router)#network 192.168.12.0 mask 255.255.255.0

Мы будем объявлять сеть 192.168.12.0 / 24 на R2.

show ip route bgp

Теперь R3 знает, куда отправлять трафик для 192.168.12.0 / 24.

ping 3.3.3.3

Проблема устранена!

Итог урока: убедитесь, что IP-адрес следующего перехода доступен, чтобы маршруты могли быть установлены в таблице маршрутизации, и чтобы все необходимые сети были достижимы.
Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
DevOps
Скидка 25%
DevOps-инженер с нуля
Научитесь использовать инструменты и методы DevOps для автоматизации тестирования, сборки и развертывания кода, управления инфраструктурой и ускорения процесса доставки продуктов в продакшн. Станьте желанным специалистом в IT-индустрии и претендуйте на работу с высокой заработной платой.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
В начале 2000-х, когда идея мессенджеров только формировалась, расширяемый протокол обмена сообщениями и информацией о присутств
img
Задержка в сети, или сетевая задержка, - это временная задержка при передаче запросов или данных от источника к адресату в сетев
img
Система доменных имен (DNS – Domain Name System) обеспечивает сетевую коммуникацию. DNS может показаться какой-то невидимой сило
img
Wi-Fi это технология, которая использует радиоволны для отправки и получения сигналов от находящихся поблизости устройств, чтобы
img
BGP (Border Gateway Protocol) - это протокол граничного шлюза, предназначенный для обмена информацией о маршрутизации и доступно
img
Когда читаете данную статью, браузер подключается к провайдеру (или ISP) а пакеты, отправленные с компьютера, находят путь до се
21 ноября
20:00
Бесплатный вебинар
Введение в Docker