Tengo BGP multihoming con dos enrutadores Cisco. Cada enrutador tiene su propio ISP y anuncia nuestro AS con nuestra red / 24 a Internet.
Mi problema es entre esos dos enrutadores:
Router A, la tabla de enrutamiento se ve así:
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
Router B, la tabla de enrutamiento se ve así:
router # 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
Router 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
Router 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
Mi problema es que el Router B solo tiene un Next Hop para el 1.0.0.0/24 (este es un ejemplo). Espero que el enrutador B tenga otro salto siguiente al enrutador A.
El enrutador A muestra el siguiente salto como se esperaba.
Este problema tiene un grave impacto. Si perdemos el enrutador B como enrutador preferido, perdemos Internet, ya que no puede enrutar el tráfico a través del enrutador A.
sho ip bgp 1.0.0.0
? Me pregunto si RouterA está viendo la ruta de RouterB mejor que su ruta externa (debido a la preferencia local) y no está anunciando su otra ruta conocida a RouterB. Si esto es correcto, el RouterA anunciará su ruta automáticamente si la ruta del RouterB desaparece.Respuestas:
En su caso, B no debería tener una ruta desde A porque B está declarando su ruta aprendida como la mejor ruta y está diseminando esta información a través de iBGP.
El enrutador A no puede anunciar su eBGP aprendido 1.0.0.0/8 a B porque no es la mejor ruta. La mejor ruta para A es la que aprendió a través de iBGP de B y las rutas de iBGP no pueden volver a anunciarse.
Ambos enrutadores eBGP son redes de aprendizaje de ambos ISP. Cuando el ISP para B falla, las rutas A eBGP serán elegibles para enviarse a B.
HTH.
fuente
Por defecto, cada enrutador BGP anuncia solo sus mejores rutas. Como A prefiere la ruta desde B sobre la ruta externa (debido a una mayor preferencia local), no anuncia la ruta externa a B.
La conmutación por error funcionará, pero puede llevar un tiempo porque: * B tiene que revocar sus rutas externas * A tiene que seleccionar nuevas mejores rutas * A tiene que anunciar nuevas mejores rutas a B * B tiene que seleccionar nuevas mejores rutas
Si desea una conmutación por error más rápida, use "BGP best-external" (o algo parecido): busque best-external en cisco.com) en A.
fuente
El enrutador A no anuncia esa ruta al enrutador B.
El enrutador B está anunciando esa ruta al enrutador A.
Configure A para anunciar 1.0.0.0 a B a través de ibgp.
fuente
Este es un comportamiento normal de BGP de 'ocultación de ruta', una de las características heredadas para solucionar el problema de escalado. La conmutación por error debería funcionar según lo previsto. Si necesita que el enrutadorA La ruta aprendida eBGP siga apareciendo en B, utilice el comando BGP 'best-external' en el enrutadorA (así como en B).
fuente