Рейтинг:0

Настройка BGP с набором локальных предпочтений с помощью FRRouting

флаг vc

Я хочу настроить многосетевой BGP-маршрутизатор с предпочтением одного интернет-провайдера. Моя фактическая установка будет получать только маршруты по умолчанию, а не полный канал BGP от вышестоящих интернет-провайдеров. Но в этой тестовой настройке у меня есть следующая настройка сети, и моя цель — предпочесть R4, а не R2 для трафика от R1. Настройка сети

4 маршрутизатора представляют собой образы FRR 7.3.1 из Торговая площадка GNS3. Они настроены одинаково. Конфигурация одинакова для всех роутеров, меняются только IP-адреса, как показано на рисунке.

R1# показать текущую конфигурацию 
Конфигурация здания...

Текущая конфигурация:
!
версия 7.3.1
frr по умолчанию традиционный
имя хоста R1
сервис интегрированный-vtysh-config
!
маршрутизатор бгп 1
 сосед 192.168.1.2 удаленный-как 2
 сосед 192.168.4.1 удаленный-как 4
 !
 одноадресная рассылка ipv4 семейства адресов
  сеть 10.1.0.0/16
 выход-адрес-семья
!
линия vty
!
конец

Первая проблема заключается в том, что я не вижу все пути на всех маршрутизаторах. У двух маршрутизаторов по 7 путей, а у двух других по 5 путей. Два с 7 путями - это те, которые были настроены первыми и последними, если это имеет какое-либо значение.

Р1:

R1# показать ip bgp
Версия таблицы BGP — 5, идентификатор локального маршрутизатора — 192.168.4.2, идентификатор vrf — 0.
Локальный преф 100 по умолчанию, локальный AS 1
Коды состояния: s подавлено, d демпфировано, h история, * допустимо, > лучшее, = многолучевое,
               i внутренний, r Сбой RIB, S Устаревший, R Удален
Коды следующего перехода: идентификатор vrf @NNN следующего перехода, <annone-nh-self
Коды происхождения: i - IGP, e - EGP, ? - неполный

   Сеть Метрика следующего перехода LocPrf Вес Путь
*> 10.1.0.0/16 0.0.0.0 0 32768 я
* 10.2.0.0/16 192.168.4.1 0 4 3 2 я
*> 192.168.1.2 0 0 2 я
* 10.3.0.0/16 192.168.4.1 0 4 3 я
*> 192.168.1.2 0 2 3 я
*> 10.4.0.0/16 192.168.4.1 0 0 4 я
* 192.168.1.2 0 2 3 4 я

Отображено 4 маршрута и всего 7 путей

Р2:

R2# показать ip bgp 
Версия таблицы BGP — 4, идентификатор локального маршрутизатора — 192.168.2.1, идентификатор vrf — 0.
Локальный преф 100 по умолчанию, локальный AS 2
Коды состояния: s подавлено, d демпфировано, h история, * допустимо, > лучшее, = многолучевое,
               i внутренний, r Сбой RIB, S Устаревший, R Удален
Коды следующего перехода: идентификатор vrf @NNN следующего перехода, <annone-nh-self
Коды происхождения: i - IGP, e - EGP, ? - неполный

   Сеть Метрика следующего перехода LocPrf Вес Путь
*> 10.1.0.0/16 192.168.1.1 0 0 1 я
*> 10.2.0.0/16 0.0.0.0 0 32768 я
*> 10.3.0.0/16 192.168.2.2 0 0 3 я
* 10.4.0.0/16 192.168.1.1 0 1 4 я
*> 192.168.2.2 0 3 4 я

Отображено 4 маршрута и всего 5 путей

Р3:

R3# показать ip bgp 
Версия таблицы BGP — 4, идентификатор локального маршрутизатора — 192.168.3.1, идентификатор vrf — 0.
Локальный преф 100 по умолчанию, локальный AS 3
Коды состояния: s подавлено, d демпфировано, h история, * допустимо, > лучшее, = многолучевое,
               i внутренний, r Сбой RIB, S Устаревший, R Удален
Коды следующего перехода: идентификатор vrf @NNN следующего перехода, <annone-nh-self
Коды происхождения: i - IGP, e - EGP, ? - неполный

   Сеть Метрика следующего перехода LocPrf Вес Путь
* 10.1.0.0/16 192.168.3.2 0 4 1 я
*> 192.168.2.1 0 2 1 я
*> 10.2.0.0/16 192.168.2.1 0 0 2 я
*> 10.3.0.0/16 0.0.0.0 0 32768 я
*> 10.4.0.0/16 192.168.3.2 0 0 4 я

Отображено 4 маршрута и всего 5 путей

Р4:

R4# показать ip bgp 
Версия таблицы BGP — 5, идентификатор локального маршрутизатора — 192.168.4.1, идентификатор vrf — 0.
Локальный преф 100 по умолчанию, локальный AS 4
Коды состояния: s подавлено, d демпфировано, h история, * допустимо, > лучшее, = многолучевое,
               i внутренний, r Сбой RIB, S Устаревший, R Удален
Коды следующего перехода: идентификатор vrf @NNN следующего перехода, <annone-nh-self
Коды происхождения: i - IGP, e - EGP, ? - неполный

   Сеть Метрика следующего перехода LocPrf Вес Путь
*> 10.1.0.0/16 192.168.4.2 0 0 1 я
* 192.168.3.1 0 3 2 1 я
* 10.2.0.0/16 192.168.4.2 0 1 2 я
*> 192.168.3.1 0 3 2 я
* 10.3.0.0/16 192.168.4.2 0 1 2 3 я
*> 192.168.3.1 0 0 3 я
*> 10.4.0.0/16 0.0.0.0 0 32768 я

Отображено 4 маршрута и всего 7 путей

Помимо различий в списках путей BGP, все выглядит нормально. Я могу пропинговать каждый маршрутизатор друг от друга, и traceroute работает, как и ожидалось.

R1:~# traceroute -s 10.1.0.1 10.2.0.1
traceroute до 10.2.0.1 (10.2.0.1) из 10.1.0.1, макс. 30 переходов, пакеты по 46 байт
 1 10.2.0.1 (10.2.0.1) 1,473 мс 1,430 мс 1,328 мс
R1:~# traceroute -s 10.1.0.1 10.3.0.1
traceroute до 10.3.0.1 (10.3.0.1) из 10.1.0.1, макс. 30 переходов, пакеты по 46 байт
 1 192.168.1.2 (192.168.1.2) 1,377 мс 1,466 мс 1,356 мс
 2 10.3.0.1 (10.3.0.1) 3,149 мс 1,462 мс 1,033 мс
R1:~# traceroute -s 10.1.0.1 10.4.0.1
traceroute до 10.4.0.1 (10.4.0.1) от 10.1.0.1, макс. 30 переходов, 46-байтовые пакеты
 1 10.4.0.1 (10.4.0.1) 0,556 мс 1,243 мс 1,271 мс

R3:~# traceroute -s 10.3.0.1 10.1.0.1
traceroute до 10.1.0.1 (10.1.0.1) из 10.3.0.1, макс. 30 переходов, пакеты по 46 байт
 1 192.168.2.1 (192.168.2.1) 0,468 мс 1,461 мс 1,135 мс
 2 10.1.0.1 (10.1.0.1) 3,038 мс 3,332 мс 3,734 мс

Настройка предпочтений: Я хочу, чтобы мой исходящий трафик от R1 проходил через R4, а не через R2, поэтому я устанавливаю локальное предпочтение 300 на R1 для путей, полученных от R4. Р1:

frr(config)# ip prefix-list allow_all_pref seq 10 разрешить любой
frr(config)# route-map rmap Permit 10
frr(config-route-map)# соответствует списку префиксов IP-адресов allow_all_pref
frr(config-route-map)# установить локальное предпочтение 300
frr(config-route-map)# выход
frr(config)# маршрутизатор bgp 1
frr(config-router)# адресное семейство ipv4 unicast
frr(config-router-af)# сосед 192.168.4.1 route-map rmap в
frr(config-router-af)# показать ip bgp
Версия таблицы BGP — 8, идентификатор локального маршрутизатора — 192.168.4.2, идентификатор vrf — 0.
Локальный преф 100 по умолчанию, локальный AS 1
Коды состояния: s подавлено, d демпфировано, h история, * допустимо, > лучшее, = многолучевое,
               i внутренний, r Сбой RIB, S Устаревший, R Удален
Коды следующего перехода: идентификатор vrf @NNN следующего перехода, <annone-nh-self
Коды происхождения: i - IGP, e - EGP, ? - неполный

   Сеть Метрика следующего перехода LocPrf Вес Путь
*> 10.1.0.0/16 0.0.0.0 0 32768 я
*> 10.2.0.0/16 192.168.4.1 300 0 4 3 2 i
* 192.168.1.2 0 0 2 я
*> 10.3.0.0/16 192.168.4.1 300 0 4 3 i
* 192.168.1.2 0 2 3 я
*> 10.4.0.0/16 192.168.4.1 0 300 0 4 я
* 192.168.1.2 0 2 3 4 я

Отображено 4 маршрута и всего 7 путей

Но теперь все ломается. Я больше не могу пинговать R2 и R3. Когда я пингую R2 с R1, через wireshark я вижу, что эхо-запрос проходит через R4 к R3, но трафик между R3 и R2 не отображается.

Wireshark R4-R3 Wireshark R3-R2

traceroute до 10.2.0.1 (10.2.0.1) из 10.1.0.1, макс. 30 переходов, пакеты по 46 байт
 1 192.168.4.1 (192.168.4.1) 1,480 мс 1,514 мс 1,499 мс
 2 * * *
 3 * * *
 4 * * *

вывод show ip bgp с других маршрутизаторов выглядит следующим образом. Р2:

R2# показать ip bgp 
Версия таблицы BGP — 4, идентификатор локального маршрутизатора — 192.168.2.1, идентификатор vrf — 0.
Локальный преф 100 по умолчанию, локальный AS 2
Коды состояния: s подавлено, d демпфировано, h история, * допустимо, > лучшее, = многолучевое,
               i внутренний, r Сбой RIB, S Устаревший, R Удален
Коды следующего перехода: идентификатор vrf @NNN следующего перехода, <annone-nh-self
Коды происхождения: i - IGP, e - EGP, ? - неполный

   Сеть Метрика следующего перехода LocPrf Вес Путь
*> 10.1.0.0/16 192.168.1.1 0 0 1 я
*> 10.2.0.0/16 0.0.0.0 0 32768 я
* 10.3.0.0/16 192.168.1.1 0 1 4 3 я
*> 192.168.2.2 0 0 3 я
* 10.4.0.0/16 192.168.1.1 0 1 4 я
*> 192.168.2.2 0 3 4 я

Отображено 4 маршрута и всего 6 путей

Р3:

R3# показать ip bgp 
Версия таблицы BGP — 4, идентификатор локального маршрутизатора — 192.168.3.1, идентификатор vrf — 0.
Локальный преф 100 по умолчанию, локальный AS 3
Коды состояния: s подавлено, d демпфировано, h история, * допустимо, > лучшее, = многолучевое,
               i внутренний, r Сбой RIB, S Устаревший, R Удален
Коды следующего перехода: идентификатор vrf @NNN следующего перехода, <annone-nh-self
Коды происхождения: i - IGP, e - EGP, ? - неполный

   Сеть Метрика следующего перехода LocPrf Вес Путь
* 10.1.0.0/16 192.168.3.2 0 4 1 я
*> 192.168.2.1 0 2 1 я
*> 10.2.0.0/16 192.168.2.1 0 0 2 я
*> 10.3.0.0/16 0.0.0.0 0 32768 я
*> 10.4.0.0/16 192.168.3.2 0 0 4 я

Отображено 4 маршрута и всего 5 путей

Р4:

R4# показать ip bgp 
Версия таблицы BGP — 5, идентификатор локального маршрутизатора — 192.168.4.1, идентификатор vrf — 0.
Локальный преф 100 по умолчанию, локальный AS 4
Коды состояния: s подавлено, d демпфировано, h история, * допустимо, > лучшее, = многолучевое,
               i внутренний, r Сбой RIB, S Устаревший, R Удален
Коды следующего перехода: идентификатор vrf @NNN следующего перехода, <annone-nh-self
Коды происхождения: i - IGP, e - EGP, ? - неполный

   Сеть Метрика следующего перехода LocPrf Вес Путь
*> 10.1.0.0/16 192.168.4.2 0 0 1 я
* 192.168.3.1 0 3 2 1 я
*> 10.2.0.0/16 192.168.3.1 0 3 2 я
*> 10.3.0.0/16 192.168.3.1 0 0 3 я
*> 10.4.0.0/16 0.0.0.0 0 32768 я

Отображено 4 маршрута и всего 5 путей

Когда я пингую R2 с R4, пакеты перемещаются, как и ожидалось, от R3 к R2.

Любая помощь будет высоко оценен. Я новичок в сети, и мое понимание BGP может быть ошибочным. Пожалуйста, укажите, если я делаю что-то неправильно.

Рейтинг:0
флаг vc

Кажется, эта проблема специфична для FRRouting. Получение желаемых результатов с локальным предпочтением с IOS с точной настройкой. Будет протестировано с другими версиями FRRouting, чтобы увидеть, сохраняется ли проблема.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.