Jump to content
Калькуляторы

Правильная настройка bgp multipath

Коллеги, всем привет. Сейчас имею такую схему с двумя провайдерами и двумя бордерами. Красным цветом выделены существующие соседства (ibgp).

Зеленым цветом выделил соседства, которые предположительно необходимо настроить. На всех сессиях необходимо заанонсировать сетку 1.1.1.0/24.

Сейчас на sw2 и sw1 статикой прописаны маршруты до стыковочных адресов серверов a1-a4 и a5-a8.

bgp.thumb.png.5b01de5eae386d8314d05511645943a7.png

 

Собрал я значит макет сети в GNS3. И если просто взять поднять сессии c a1-a4 до sw2 и с a5-a8 до sw1 и с них заанонсировать 1.1.1.0/24, то у меня получается петля в маршрутизации, так как пакетик допустим прилетая через isp1 на sw1 и дальше на sw2 натыкается на такую ситуацию, что у маршрута до сети 1.1.1.0/24 имеется next-hop в сторону a1-a4 и соответственно отправляет пакетик обратно на sw1, а так как на sw1 у меня так же есть multipath с next-hop a5-a8, то пакетик опять бежит на sw2 и так далее по кругу.

 

 

Как правильно разрулить такую ситуацию? Сейчас мне на ум приходит мысль как-то колхозить через vrf, либо придумывать что-то с pbr.

 

Кто что думает? Посоветуйте в какую сторону продолжить идти?

Share this post


Link to post
Share on other sites

3 часа назад, roma33rus сказал:

Коллеги, всем привет. Сейчас имею такую схему с двумя провайдерами и двумя бордерами. Красным цветом выделены существующие соседства (ibgp).

Зеленым цветом выделил соседства, которые предположительно необходимо настроить. На всех сессиях необходимо заанонсировать сетку 1.1.1.0/24.

Сейчас на sw2 и sw1 статикой прописаны маршруты до стыковочных адресов серверов a1-a4 и a5-a8.

bgp.thumb.png.5b01de5eae386d8314d05511645943a7.png

 

Собрал я значит макет сети в GNS3. И если просто взять поднять сессии c a1-a4 до sw2 и с a5-a8 до sw1 и с них заанонсировать 1.1.1.0/24, то у меня получается петля в маршрутизации, так как пакетик допустим прилетая через isp1 на sw1 и дальше на sw2 натыкается на такую ситуацию, что у маршрута до сети 1.1.1.0/24 имеется next-hop в сторону a1-a4 и соответственно отправляет пакетик обратно на sw1, а так как на sw1 у меня так же есть multipath с next-hop a5-a8, то пакетик опять бежит на sw2 и так далее по кругу.

 

 

Как правильно разрулить такую ситуацию? Сейчас мне на ум приходит мысль как-то колхозить через vrf, либо придумывать что-то с pbr.

 

Кто что думает? Посоветуйте в какую сторону продолжить идти?

Вам нужно между роутером 1 и роутером 2 настроить конфедерацию, которая как раз для вашего случая изобретена.

Share this post


Link to post
Share on other sites

17 часов назад, murano сказал:

Вам нужно между роутером 1 и роутером 2 настроить конфедерацию, которая как раз для вашего случая изобретена.

 

Спасибо за наводку. С конфедерацией ни разу не работал. Буду изучать как оно устроено.

 

Спасибо.

Share this post


Link to post
Share on other sites

Сейчас изучаю работу bgp конфедераций и пока не понимаю как оно будет работать с multipath. Ведь если я настраиваю конфедерацию между sw1 и sw2, я буду получать один маршрут с одним nexthop. И получается так, что я трафик приходя на sw1 будет балансить между a1-a4 и sw2. А надо, чтобы он знал, что за sw2 еще 4 машины и надо балансить не по 5 nexthop, а по восьми.

 

Или я путаю и не до конца дочитал?

Share this post


Link to post
Share on other sites

13 минут назад, fractal сказал:

Там если это серваки то может nginx как балансировщик поставить? 

 

Именно на них nginx и крутится как балансировщик. НО задача еще до них трафик разбалансить плюс/минус поровну

Share this post


Link to post
Share on other sites

конфиг для bird:
 

log syslog all;
router id 90.189.177.25;

protocol device VRF0_DEVICE {};

protocol kernel VRF0_KERNEL_v4 {
	ipv4 {
       import none;
       export filter {krt_prefsrc=90.189.177.25; accept;};
     }; 
     merge paths yes;
};
protocol kernel VRF0_KERNEL_v6 {
	ipv6 {
       import none;
       export filter {krt_prefsrc=2a02:c189:c100:1::a; accept;};
     }; 
     merge paths yes;
};
protocol static vrf0_ipv4_static {
 ipv4;
 route 90.189.177.0/24 via "null0";
 route 199.7.255.0/24 169.254.0.50;
}
protocol static vrf0_ipv6_static {
 ipv6;
 route 2a02:c189:c100::/48 via "null0";
 route 2a02:c189:c100:a::/64 fec0:1234::50;
}
filter input_filter {
 include "mospat_blacklist.conf";
 accept;
}

filter output_filter {
 if net ~ [ 199.7.255.0/24, 90.189.177.0/24 ] then accpt;
 reject;
}

template bgp internal {
 local as 204863;
 rr client;
 ipv4 {import filter input_filter; export filter output_filter;};
 ipv6 {import filter input_filter; export filter output_filter;};
}

protocol bgp border1 from internal {
 neighbor 169.254.0.25 as 204863;
}
protocol bgp border2 from internal {
 neighbor 169.254.0.24 as 204863;
}
protocol bgp border3 from internal {
 neighbor 169.254.0.23 as 204863;
}
protocol bgp border4 from internal {
 neighbor 169.254.0.22 as 204863;
}

 

Share this post


Link to post
Share on other sites

16 часов назад, ne-vlezay80 сказал:

для этого одно из устройств должно выполнять функции rr client.

 

Ага. Понял. Путем сложения мой путь этой настройка конфедерации между роутерами и роут рефлектора.

 

Спасибо. Изучаю данное положение дело, но пока в голове каша

Share this post


Link to post
Share on other sites

Коллеги всем привет. Пишу статус.

 

Случилась печальная новость. Оказывается мои железки не умеют и не знают, что такое конфедерации, только роут рефлекторы.

 

Есть какой-то обходной путь в этом случае? Может через VRF нахимичить?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.