Eu tenho multihoming BGP com dois roteadores Cisco. Cada roteador tem seu próprio ISP e anuncia nosso AS com nossa rede / 24 à Internet.
Meu problema é entre esses dois roteadores:
No roteador A, a tabela de roteamento se parece com:
BGP table version is 9622808, local router ID is 10.100.100.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*>i 1.0.0.0/24 10.100.100.3 10041 150 0 175 15169 i
* 192.168.200.1 0 0 800 15169 i
Roteador B, a tabela de roteamento se parece com:
roteador # sh ip bgp
BGP table version is 10261936, local router ID is 192.168.1.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*> 1.0.0.0/24 192.168.1.1 10041 150 0 175 15169 i
Roteador A
#sh ip bgp 1.0.0.0
BGP routing table entry for 1.0.0.0/24, version 9124223
Paths: (2 available, best #1, table default)
Multipath: eBGP
Not advertised to any peer
Refresh Epoch 1
175 15169
10.100.100.3 from 10.100.100.3 (192.168.1.1 )
Origin IGP, metric 10041, localpref 150, valid, internal, best
rx pathid: 0, tx pathid: 0x0
Refresh Epoch 1
8220 15169
192.168.200.1 from 192.168.200.1 (212.74.90.252)
Origin IGP, metric 0, localpref 100, valid, external
Community: 538770940 538771322
rx pathid: 0, tx pathid: 0
Roteador B
#sh ip bgp 1.0.0.0
BGP routing table entry for 1.0.0.0/24, version 9772009
Paths: (1 available, best #1, table default)
Multipath: eBGP
Advertised to update-groups:
15
Refresh Epoch 1
175 15169
192.168.1.1 from 192.168.1.1 (38.28.4.10)
Origin IGP, metric 10041, localpref 150, valid, external, best
Community: 11424364 11425276
rx pathid: 0, tx pathid: 0x0
Router B
#sh ip bgp summary
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.100.100.2 4 48020 748914 2167278 10705132 0 0 2w4d 3350
192.168.1.1 4 175 2591251 29738 10705000 0 0 2w4d 509418
Meu problema é que o roteador B tem apenas um Next Hop para o 1.0.0.0/24 (este é um exemplo). Espero que o roteador B tenha outro Next Hop para o roteador A.
O roteador A está mostrando o salto seguinte, conforme o esperado.
Esse problema tem um sério impacto: se perdermos o roteador B como o roteador preferido, perdemos a Internet, pois não é possível rotear o tráfego pelo roteador A.
sho ip bgp 1.0.0.0
? Gostaria de saber se o RouterA está vendo o caminho do RouterB melhor do que o caminho externo (devido ao pref local) e não anunciando seu outro caminho conhecido para o RouterB. Se isso estiver correto, o roteador A anunciará seu caminho automaticamente se o caminho do roteador B desaparecer.Respostas:
No seu caso, B não deve ter a rota de A porque o próprio B está declarando sua rota aprendida como a melhor rota e divulgando essas informações via iBGP.
O roteador A não pode anunciar seu eBGP aprendido 1.0.0.0/8 para B porque não é o melhor caminho. A melhor rota para A é a que aprendeu via iBGP das rotas B e iBGP não pode ser anunciada novamente.
Ambos os roteadores eBGP estão aprendendo redes com os dois ISPs. Quando o ISP for B falhar, as rotas A eBGP se tornarão elegíveis para serem enviadas para B.
HTH.
fonte
Por padrão, todo roteador BGP anuncia apenas suas melhores rotas. Como A prefere a rota de B à rota externa (devido a uma preferência local maior), ele não anuncia a rota externa para B.
O failover funcionará, mas pode demorar um pouco porque: * B precisa revogar suas rotas externas * A precisa selecionar novas melhores rotas * A precisa anunciar novas melhores rotas para B * B precisa selecionar novas melhores rotas
Se você deseja um failover mais rápido, use o "BGP best-external" (ou algo parecido com isso - pesquise best-external em cisco.com) em A.
fonte
O roteador A não está anunciando essa rota para o roteador B.
O roteador B está anunciando esse roteamento para o roteador A.
Configure A para anunciar 1.0.0.0 para B via ibgp.
fonte
Esse é um comportamento normal do BGP de 'ocultação de caminho', um dos recursos herdados para aliviar o problema de dimensionamento. O failover deve funcionar como planejado. Se você precisar que a rota aprendida do roteador A eBGP ainda seja exibida em B, use o comando BGP 'melhor externo' no rourterA (assim como em B).
fonte