BGP update-source y next-hop-self

eBGP-multihop next-hop-self cuando es necesario y como se usa

Para ello ponemos el siguiente ejemplo, dos sistemas autónomos, uno corre un IGP que es OSPF en el area 0 y el otro no usa protocolo de enrutamiento.



Primero estableceremos la relacion eBGP entre R1 y R2, para usar los dos caminos redundantes. Si la configuracion fuera tal que así
R1
router bgp 65000
 neighbor 1.1.1.1 remote-as 65001

R2
router bgp 65001
 neighbor 2.2.2.2 remot-as 65000

Nunca tendriamos relación puesto que R1 no tiene ruta a la loopback de R2 ni R2 tiene ruta a la loopback de R1 así que creamos rutas estáticas
R2#sh ip bgp summary
BGP router identifier 2.2.2.2, local AS number 65001
BGP table version is 1, main routing table version 1

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
1.1.1.1         4 65000      25      25        0    0    0 00:00:00 Active
en ambos sentidos (muestro solo R2)
ip route 1.1.1.1 255.255.255.255 10.0.0.1
ip route 1.1.1.1 255.255.255.255 10.0.0.5

aún así la sesión bgp no levanta ¿porque?, pues porque el TTL de bgp es 1, aunque sea un sólo salto si usas loopbacks el salto es 2, tenemos que usar el comando ebgp-multihp
router bgp 65001
 neighbor 1.1.1.1 remote-as 65000
 neighbor 1.1.1.1 ebgp-multihop 2
 neighbor 1.1.1.1 update-source Loopback0
 no auto-summary

router bgp 65000
 neighbor 2.2.2.2 remote-as 65001
 neighbor 2.2.2.2 ebgp-multihop 2
 neighbor 2.2.2.2 update-source Loopback0

ahora ya son vecinos bgp, nos podemos centrar en la relacion IGP e IBGP entre R1 y R3


Para que la regla de la sincronización sea válidación las rutas de iBGP tenemos que usar una IGP

R4
router ospf 1
 log-adjacency-changes
 network 1.1.1.2 0.0.0.0 area 0
 network 192.168.0.0 0.0.0.255 area 0
 network 192.168.4.0 0.0.0.255 area 0

R1
router ospf 1
 log-adjacency-changes
 passive-interface default (para que no publique por los serial)
 no passive-interface FastEthernet1/0
 network 1.1.1.1 0.0.0.0 area 0
 network 192.168.0.0 0.0.0.255 area 0
 network 192.168.1.0 0.0.0.255 area 0

Ahora configuramos los peers iBGP

R4
router bgp 65000
 no synchronization
 bgp log-neighbor-changes
 neighbor 1.1.1.1 remote-as 65000
 neighbor 1.1.1.1 update-source Loopback0
 no auto-summary

R1
router bgp 65000
 no synchronization
 bgp log-neighbor-changes
 network 192.168.0.0
 network 192.168.1.0
 neighbor 1.1.1.2 remote-as 65000
 neighbor 1.1.1.2 update-source Loopback0
 neighbor 2.2.2.2 remote-as 65001
 neighbor 2.2.2.2 ebgp-multihop 2
 neighbor 2.2.2.2 update-source Loopback0
 no auto-summary

Vemos que si se ven pero las rutas no llegan a R4 vamos a hacer un debug ip bgp updates a ver porque no llegan las rutas de R2 hacia R4
Algunas llegan
*Mar  1 00:34:27.819: BGP(0): 1.1.1.1 rcvd UPDATE w/ attr: nexthop 1.1.1.1, origin i, localpref 100, metric 0
*Mar  1 00:34:27.823: BGP(0): 1.1.1.1 rcvd 192.168.1.0/24
*Mar  1 00:34:27.831: BGP(0): 1.1.1.1 rcvd 192.168.0.0/24
*Mar  1 00:34:27.835: BGP(0): Revise route installing 1 of 1 routes for 192.168.0.0/24 -> 1.1.1.1(main) to main IP table
*Mar  1 00:34:27.843: BGP(0): Revise route installing 1 of 1 routes for 192.168.1.0/24 -> 1.1.1.1(main) to main IP table
*Mar  1 00:34:27.947: BGP(0): Revise route installing 1 of 1 routes for 192.168.0.0/24 -> 1.1.1.1(main) to main IP table
*Mar  1 00:34:27.951: BGP(0): Revise route installing 1 of 1 routes for 192.168.1.0/24 -> 1.1.1.1(main) to main IP table

Pero otras no
*Mar  1 00:35:26.795: BGP(0): no valid path for 192.168.2.0/24
*Mar  1 00:35:26.799: BGP(0): no valid path for 192.168.3.0/24

¿porque?, veamos, esas rutas las publica R2, R4 no tiene forma de saber como llegar a R2 pero si a R1 por lo que haremos es qeu R2 reanuncie las rutas de R4 usando el comando next-hop-self
router bgp 65000
 neighbor 1.1.1.2 next-hop-self

ahora si llegan y se insertan en la tabla de rutas, podemos proceder a quitar el debug con undebug all
*Mar  1 00:37:24.915: BGP(0): Revise route installing 1 of 1 routes for 192.168.2.0/24 -> 1.1.1.1(main) to main IP table
*Mar  1 00:37:24.923: BGP(0): Revise route installing 1 of 1 routes for 192.168.3.0/24 -> 1.1.1.1(main) to main IP table.

Las configuraciones así como el archivo .NET os lo dejo en un enlace de megaupload por si quereis usarlo con el gns3, no os olveis de cambiar el IOS si no coincide, el idle PC y revisar el hipervisor ya que yo he usado dos para que uno solo no ralentizara la máquina. configs y archivo

No hay comentarios:

Publicar un comentario