Algorytm wyboru najlepszej ścieżki BGP - "locally injected routes"
: 30 maja 2016, 01:01
Cześć!
Uczę się właśnie do CCNP Route i porównując informacje z Cert Guide'a z topologią, którą widziałem działającą produkcyjnie, naszły mnie pewne wątpliwości dotyczące kroku 3 wyboru ścieżki:
BGP Best-Path Algorithm:
0. Next hop: reachable?
1. Weight
2. Local preference
3. Locally injected routes - Locally injected (via "network" or "redistribute") is better than iBGP/eBGP learned.
4. AS_Path length
...
Teoretycznie sama koncepcja jest niby jasna, że jeśli ten sam prefix będzie ogłoszony przy pomocy iBGP lub eBGP oraz zostanie wstawiony "ręcznie" przez network lub redystrybucję, to w 3 kroku wygrywa ścieżka "lokalna". Niby jasne, ale...
Widziałem takie działające środowisko:
http://i64.tinypic.com/2n0q4iv.jpg
I tutaj z poziomu switcha BR1 sieć BR2 10.10.10.0/24 była osiągalna ścieżką bezpośrednią przez MetroEthernet. Ścieżka przez MPLS była traktowana jako zapasowa. Listing komendy "sh ip bgp" z BR1 był następujący:
No i tutaj moja wątpliwość dotycząca trzeciego kroku wyboru ścieżki przez BGP:
Czy w powyższym przykładzie z punktu widzenia BR1 trasa przez peera iBGP 172.30.0.1 została wybrana w punkcie trzecim dlatego, że na switchu BR2 sieć 10.10.10.0/24 została wprowadzona do BGP komendą "network 10.10.10.10 mask 255.255.255.0"? Czy może zadecydował punkt 4 i krótsze AS_Path przy peerze iBGP?
Chodzi mi o to, co tak na prawdę oznacza "locally injected routes"? Czy "lokalnie" - na tym samym routerze, czy "lokalnie" - w ramach tego samego AS'a BGP? Tutaj sieć 10.10.10.0/24 została wstawiona przy pomocy "network" na switchu BR2. Czy switch BR1 wybiera ją w punkcie 3 algorytmu jako "locally injected", czy dla niego to jest "iBGP learned" i przechodzi do punktu 4 algorytmu gdzie wybiera ją na podstawie AS_Path?
A może jest jakaś magiczna komenda, którą można zobaczyć dlaczego dana ścieżka została wybrana? Czy może np. przy debugowaniu BGP byłaby informacja czemu dana ścieżka została wybrana?
Wątpliwość w sumie trochę książkowa i możliwe, że trochę przekombinowałem, ale może ktoś to już kiedyś drążył. W internecie wszyscy tylko powtarzają jak mantrę "locally means via network or redistribute command" i tyle.
Pozdro!
JD
Uczę się właśnie do CCNP Route i porównując informacje z Cert Guide'a z topologią, którą widziałem działającą produkcyjnie, naszły mnie pewne wątpliwości dotyczące kroku 3 wyboru ścieżki:
BGP Best-Path Algorithm:
0. Next hop: reachable?
1. Weight
2. Local preference
3. Locally injected routes - Locally injected (via "network" or "redistribute") is better than iBGP/eBGP learned.
4. AS_Path length
...
Teoretycznie sama koncepcja jest niby jasna, że jeśli ten sam prefix będzie ogłoszony przy pomocy iBGP lub eBGP oraz zostanie wstawiony "ręcznie" przez network lub redystrybucję, to w 3 kroku wygrywa ścieżka "lokalna". Niby jasne, ale...
Widziałem takie działające środowisko:
http://i64.tinypic.com/2n0q4iv.jpg
I tutaj z poziomu switcha BR1 sieć BR2 10.10.10.0/24 była osiągalna ścieżką bezpośrednią przez MetroEthernet. Ścieżka przez MPLS była traktowana jako zapasowa. Listing komendy "sh ip bgp" z BR1 był następujący:
Kod: Zaznacz cały
Network Next Hop Metric LocPrf Weight Path
* 10.10.10.0/24 10.100.0.1 0 0 65666 ?
*>i 172.30.0.1 0 100 0 i
Czy w powyższym przykładzie z punktu widzenia BR1 trasa przez peera iBGP 172.30.0.1 została wybrana w punkcie trzecim dlatego, że na switchu BR2 sieć 10.10.10.0/24 została wprowadzona do BGP komendą "network 10.10.10.10 mask 255.255.255.0"? Czy może zadecydował punkt 4 i krótsze AS_Path przy peerze iBGP?
Chodzi mi o to, co tak na prawdę oznacza "locally injected routes"? Czy "lokalnie" - na tym samym routerze, czy "lokalnie" - w ramach tego samego AS'a BGP? Tutaj sieć 10.10.10.0/24 została wstawiona przy pomocy "network" na switchu BR2. Czy switch BR1 wybiera ją w punkcie 3 algorytmu jako "locally injected", czy dla niego to jest "iBGP learned" i przechodzi do punktu 4 algorytmu gdzie wybiera ją na podstawie AS_Path?
A może jest jakaś magiczna komenda, którą można zobaczyć dlaczego dana ścieżka została wybrana? Czy może np. przy debugowaniu BGP byłaby informacja czemu dana ścieżka została wybrana?
Wątpliwość w sumie trochę książkowa i możliwe, że trochę przekombinowałem, ale może ktoś to już kiedyś drążył. W internecie wszyscy tylko powtarzają jak mantrę "locally means via network or redistribute command" i tyle.
Pozdro!
JD