Vreau să configurez un router BGP multi-homed cu preferință pentru un ISP. Configurația mea reală va primi doar rutele implicite și nu fluxul complet BGP de la ISP-urile din amonte. Dar în această configurare de testare am o configurație de rețea după cum urmează și scopul meu este să prefer R4 în locul R2 pentru traficul de la R1.
Cele 4 routere sunt imagini FRR 7.3.1 de la Piața GNS3. Sunt configurate identic. Configurația este aceeași pentru toate routerele, doar adresele IP se modifică conform figurii.
R1# arată rularea-config
Configurația clădirii...
Configurație curentă:
!
frr versiunea 7.3.1
frr implicite tradiționale
numele gazdă R1
serviciu integrat-vtysh-config
!
router bgp 1
vecin 192.168.1.2 remote-as 2
vecin 192.168.4.1 remote-as 4
!
adresa-familie ipv4 unicast
rețeaua 10.1.0.0/16
ieșire-adresă-familie
!
linia vty
!
Sfârşit
Prima problemă este că nu văd toate căile pe toate routerele. Două routere au câte 7 căi fiecare, în timp ce celelalte două au câte 5 căi. Cele două cu 7 căi sunt cele care au fost configurate prima și ultima dacă asta are vreo semnificație.
R1:
R1# arată ip bgp
Versiunea tabelului BGP este 5, ID-ul routerului local este 192.168.4.2, ID-ul vrf 0
Pref. local implicit 100, AS local 1
Coduri de stare: s suprimat, d amortizat, h istoric, * valid, > cel mai bun, = cale multiplă,
i intern, r RIB-failure, S Stale, R Removed
Codurile Nexthop: @NNN ID-ul vrf al nexthop-ului, < announce-nh-self
Coduri de origine: i - IGP, e - EGP, ? - incomplet
Network Next Hop Metric LocPrf Weight Path
*> 10.1.0.0/16 0.0.0.0 0 32768 i
* 10.2.0.0/16 192.168.4.1 0 4 3 2 i
*> 192.168.1.2 0 0 2 i
* 10.3.0.0/16 192.168.4.1 0 4 3 i
*> 192.168.1.2 0 2 3 i
*> 10.4.0.0/16 192.168.4.1 0 0 4 i
* 192.168.1.2 0 2 3 4 i
Afișate 4 rute și 7 trasee în total
R2:
R2# arată ip bgp
Versiunea tabelului BGP este 4, ID-ul routerului local este 192.168.2.1, ID-ul vrf 0
Pref. local implicit 100, AS local 2
Coduri de stare: s suprimat, d amortizat, h istoric, * valid, > cel mai bun, = cale multiplă,
i intern, r RIB-failure, S Stale, R Removed
Codurile Nexthop: @NNN ID-ul vrf al nexthop-ului, < announce-nh-self
Coduri de origine: i - IGP, e - EGP, ? - incomplet
Network Next Hop Metric LocPrf Weight Path
*> 10.1.0.0/16 192.168.1.1 0 0 1 i
*> 10.2.0.0/16 0.0.0.0 0 32768 i
*> 10.3.0.0/16 192.168.2.2 0 0 3 i
* 10.4.0.0/16 192.168.1.1 0 1 4 i
*> 192.168.2.2 0 3 4 i
Afișate 4 rute și 5 trasee în total
R3:
R3# arată ip bgp
Versiunea tabelului BGP este 4, ID-ul routerului local este 192.168.3.1, ID-ul vrf 0
Pref. local implicit 100, AS local 3
Coduri de stare: s suprimat, d amortizat, h istoric, * valid, > cel mai bun, = cale multiplă,
i intern, r RIB-failure, S Stale, R Removed
Codurile Nexthop: @NNN ID-ul vrf al nexthop-ului, < announce-nh-self
Coduri de origine: i - IGP, e - EGP, ? - incomplet
Network Next Hop Metric LocPrf Weight Path
* 10.1.0.0/16 192.168.3.2 0 4 1 i
*> 192.168.2.1 0 2 1 i
*> 10.2.0.0/16 192.168.2.1 0 0 2 i
*> 10.3.0.0/16 0.0.0.0 0 32768 i
*> 10.4.0.0/16 192.168.3.2 0 0 4 i
Afișate 4 rute și 5 trasee în total
R4:
R4# arată ip bgp
Versiunea tabelului BGP este 5, ID-ul routerului local este 192.168.4.1, vrf id 0
Pref. local implicit 100, AS local 4
Coduri de stare: s suprimat, d amortizat, h istoric, * valid, > cel mai bun, = cale multiplă,
i intern, r RIB-failure, S Stale, R Removed
Codurile Nexthop: @NNN ID-ul vrf al nexthop-ului, < announce-nh-self
Coduri de origine: i - IGP, e - EGP, ? - incomplet
Network Next Hop Metric LocPrf Weight Path
*> 10.1.0.0/16 192.168.4.2 0 0 1 i
* 192.168.3.1 0 3 2 1 i
* 10.2.0.0/16 192.168.4.2 0 1 2 i
*> 192.168.3.1 0 3 2 i
* 10.3.0.0/16 192.168.4.2 0 1 2 3 i
*> 192.168.3.1 0 0 3 i
*> 10.4.0.0/16 0.0.0.0 0 32768 i
Afișate 4 rute și 7 trasee în total
În afară de diferența dintre listele de căi BGP, totul pare OK. Pot ping fiecare router unul de la celălalt și traceroute este așa cum era de așteptat.
R1:~# traceroute -s 10.1.0.1 10.2.0.1
traceroute la 10.2.0.1 (10.2.0.1) de la 10.1.0.1, 30 hopuri max, pachete de 46 de octeți
1 10.2.0.1 (10.2.0.1) 1,473 ms 1,430 ms 1,328 ms
R1:~# traceroute -s 10.1.0.1 10.3.0.1
traceroute la 10.3.0.1 (10.3.0.1) de la 10.1.0.1, 30 hopuri max, pachete de 46 de octeți
1 192.168.1.2 (192.168.1.2) 1,377 ms 1,466 ms 1,356 ms
2 10.3.0.1 (10.3.0.1) 3,149 ms 1,462 ms 1,033 ms
R1:~# traceroute -s 10.1.0.1 10.4.0.1
traceroute la 10.4.0.1 (10.4.0.1) de la 10.1.0.1, 30 hopuri max, pachete de 46 de octeți
1 10.4.0.1 (10.4.0.1) 0,556 ms 1,243 ms 1,271 ms
R3:~# traceroute -s 10.3.0.1 10.1.0.1
traceroute la 10.1.0.1 (10.1.0.1) de la 10.3.0.1, 30 hopuri max, pachete de 46 de octeți
1 192.168.2.1 (192.168.2.1) 0,468 ms 1,461 ms 1,135 ms
2 10.1.0.1 (10.1.0.1) 3,038 ms 3,332 ms 3,734 ms
Setarea preferințelor:
Vreau ca traficul meu de ieșire de la R1 să treacă prin R4 și nu prin R2, așa că stabilesc o preferință locală de 300 pe R1 la căile învățate de la R4.
R1:
frr(config)# ip prefix-list allow_all_pref seq 10 permit any
frr(config)# route-map rmap permis 10
frr(config-route-map)# potriviți adresa IP prefix-list allow_all_pref
frr(config-route-map)# set local-preference 300
fr(config-route-map)# ieșire
fr(config)# router bgp 1
frr(config-router)# adresa-familie ipv4 unicast
frr(config-router-af)# vecin 192.168.4.1 ruta-hartă rmap în
frr(config-router-af)# afișează ip bgp
Versiunea tabelului BGP este 8, ID-ul routerului local este 192.168.4.2, vrf id 0
Pref. local implicit 100, AS local 1
Coduri de stare: s suprimat, d amortizat, h istoric, * valid, > cel mai bun, = cale multiplă,
i intern, r RIB-failure, S Stale, R Removed
Codurile Nexthop: @NNN ID-ul vrf al nexthop-ului, < announce-nh-self
Coduri de origine: i - IGP, e - EGP, ? - incomplet
Network Next Hop Metric LocPrf Weight Path
*> 10.1.0.0/16 0.0.0.0 0 32768 i
*> 10.2.0.0/16 192.168.4.1 300 0 4 3 2 i
* 192.168.1.2 0 0 2 i
*> 10.3.0.0/16 192.168.4.1 300 0 4 3 i
* 192.168.1.2 0 2 3 i
*> 10.4.0.0/16 192.168.4.1 0 300 0 4 i
* 192.168.1.2 0 2 3 4 i
Afișate 4 rute și 7 trasee în total
Dar acum totul se sparge. Nu mai pot da ping la R2 și R3. Când dau ping la R2 de la R1, pot vedea prin wireshark că cererea de ecou trece de la R4 la R3, dar traficul nu este afișat între R3 și R2.
traceroute la 10.2.0.1 (10.2.0.1) de la 10.1.0.1, 30 hopuri max, pachete de 46 de octeți
1 192.168.4.1 (192.168.4.1) 1.480 ms 1.514 ms 1.499 ms
2 * * *
3 * * *
4 * * *
show ip bgp output de la alte routere sunt după cum urmează.
R2:
R2# arată ip bgp
Versiunea tabelului BGP este 4, ID-ul routerului local este 192.168.2.1, ID-ul vrf 0
Pref. local implicit 100, AS local 2
Coduri de stare: s suprimat, d amortizat, h istoric, * valid, > cel mai bun, = cale multiplă,
i intern, r RIB-failure, S Stale, R Removed
Codurile Nexthop: @NNN ID-ul vrf al nexthop-ului, < announce-nh-self
Coduri de origine: i - IGP, e - EGP, ? - incomplet
Network Next Hop Metric LocPrf Weight Path
*> 10.1.0.0/16 192.168.1.1 0 0 1 i
*> 10.2.0.0/16 0.0.0.0 0 32768 i
* 10.3.0.0/16 192.168.1.1 0 1 4 3 i
*> 192.168.2.2 0 0 3 i
* 10.4.0.0/16 192.168.1.1 0 1 4 i
*> 192.168.2.2 0 3 4 i
Afișate 4 rute și 6 trasee în total
R3:
R3# arată ip bgp
Versiunea tabelului BGP este 4, ID-ul routerului local este 192.168.3.1, ID-ul vrf 0
Pref. local implicit 100, AS local 3
Coduri de stare: s suprimat, d amortizat, h istoric, * valid, > cel mai bun, = cale multiplă,
i intern, r RIB-failure, S Stale, R Removed
Codurile Nexthop: @NNN ID-ul vrf al nexthop-ului, < announce-nh-self
Coduri de origine: i - IGP, e - EGP, ? - incomplet
Network Next Hop Metric LocPrf Weight Path
* 10.1.0.0/16 192.168.3.2 0 4 1 i
*> 192.168.2.1 0 2 1 i
*> 10.2.0.0/16 192.168.2.1 0 0 2 i
*> 10.3.0.0/16 0.0.0.0 0 32768 i
*> 10.4.0.0/16 192.168.3.2 0 0 4 i
Afișate 4 rute și 5 trasee în total
R4:
R4# arată ip bgp
Versiunea tabelului BGP este 5, ID-ul routerului local este 192.168.4.1, vrf id 0
Pref. local implicit 100, AS local 4
Coduri de stare: s suprimat, d amortizat, h istoric, * valid, > cel mai bun, = cale multiplă,
i intern, r RIB-failure, S Stale, R Removed
Codurile Nexthop: @NNN ID-ul vrf al nexthop-ului, < announce-nh-self
Coduri de origine: i - IGP, e - EGP, ? - incomplet
Network Next Hop Metric LocPrf Weight Path
*> 10.1.0.0/16 192.168.4.2 0 0 1 i
* 192.168.3.1 0 3 2 1 i
*> 10.2.0.0/16 192.168.3.1 0 3 2 i
*> 10.3.0.0/16 192.168.3.1 0 0 3 i
*> 10.4.0.0/16 0.0.0.0 0 32768 i
Afișate 4 rute și 5 trasee în total
Când dau ping la R2 de la R4, pachetele se mută așa cum era de așteptat de la R3 la R2.
Orice ajutor ar fi foarte apreciat. Sunt un novice în rețele și înțelegerea mea despre BGP poate fi greșită. Vă rog să subliniați dacă fac ceva greșit.