el 04-09-2020 04:53 PM
Resulta que toda la vida que algún cliente desea tener alta disponibilidad en su red, nosotros como ISP le ofrecemos realizar un Dual-Homed a nivel WAN, es decir, le proporcionamos un par de enlaces ya sea MPLS o Internet y a través de un atributo de BGP (Communities) enviamos los mismos segmentos de red por ambos enlaces, los routers que se encuentran en la nube, hacen su magia y convierten ese valor de comunidad en un valor de Local Preference de esta forma ambos enlaces se encuentran propagando las mismas redes pero nunca se genera un loop ya que la nube siempre preferirá el enlace con un mayor valor de Local Preference.
Hace poco, debido a una limitante en la tecnología de ultima milla en los enlaces que entregamos no fue posible realizar dicha configuración, por lo cual, fue necesario encontrar un workaround y simular la configuración del Dual-Homed, así fue como encontramos una opción llamada “as-path prepend”. Básicamente el comando te permite anteponer sistemas autónomos antes de llegar a un destino. Pero para que esto quede más claro veamos un ejemplo.
Nuestro cliente cuenta con un segmento de red público en donde tiene publicaciones de paginas de internet y acceso a algunos servidores. La empresa ha contratado un par de enlaces pero como he comentado no podemos utilizar el método tradicional de Alta disponibilidad. Tendremos dos routers uno de ellos para la función de equipo principal mientras que el otro será nuestro respaldo. El direccionamiento público que se respaldará es 200.200.31.0/24.
Veamos la distribución de funciones y el direccionamiento de los routers.
Router 1: Realizará la función de ISP, utilizará el sistema autónomo 8151 y tendrá dos enlaces hacia los equipos del cliente.
R1
'' interface Ethernet0/0
'' description CONEXIÓN CON R2
'' ip address 192.168.1.1 255.255.255.0
'' !
'' interface Ethernet0/1
'' description CONEXIÓN CON R3
'' ip address 192.168.2.1 255.255.255.0
'' !
'' router bgp 8151
'' bgp log-neighbor-changes
'' neighbor 192.168.1.2 remote-as 21692
'' neighbor 192.168.1.2 default-originate
'' neighbor 192.168.2.2 remote-as 21692
'' neighbor 192.168.2.2 default-originate
'' !
R2
interface Loopback2
description SEGMENTO PUBLICO
ip address 200.200.31.2 255.255.255.0
!
interface Ethernet0/0
ip address 192.168.1.2 255.255.255.0
!
router bgp 21692
bgp log-neighbor-changes
network 200.200.31.0
neighbor 192.168.1.1 remote-as 8151
R3
interface Loopback3
description SEGMENTO PUBLICO
ip address 200.200.31.3 255.255.255.0
!
interface Ethernet0/0
ip address 192.168.2.2 255.255.255.0
!
router bgp 21692
bgp log-neighbor-changes
network 200.200.31.0
neighbor 192.168.2.1 remote-as 8151
Si echaremos un vistazo al ISP este vería la red 200.200.31.0/24 en igualdad de circunstancias, sin embargo, debido a los parámetros que utiliza BGP para el desempate de redes le dará preferencia al enlace que mayor tiempo lleva arriba. Simulando una falla en enlace principal vemos que la red publica es conocido por el enlace de respaldo.
SP#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
a - application route
Gateway of last resort is not set
192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.1.0/24 is directly connected, Ethernet0/0
L 192.168.1.1/32 is directly connected, Ethernet0/0
192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.2.0/24 is directly connected, Ethernet0/1
L 192.168.2.1/32 is directly connected, Ethernet0/1
B 200.200.31.0/24 [20/0] via 192.168.2.2, 00:05:50
ISP#
Pero qué pasa cuando el enlace principal vuelve a estar operativo? ¿Cómo hacemos para que nuestro segmento de red vuelva a ser conocido por nuestro enlace principal sin tener que tirar nuestro enlace secundario? Hasta que no haya una caída del enlace secundario BGP seguirá prefiriendo en enlace de respaldo, aquí es dónde entra nuestro amigo “as-path prepend”.
Dentro de router 3 crearemos un route-map en el cual antepondremos el sistema autónomo un par de veces.
R3
route-map PREPEND permit 10
set as-path prepend 21692 21692
Después aplicaremos el route map dentro de nuestra configuración de BGP. Lo aplicaremos a la salida.
router bgp 21692
neighbor 192.168.2.1 route-map PREPEND out
Revisando el tiempo de ambos sesiones desde el router ISP veremos que en enlace de respaldo tiene mayor tiempo operando que el principal.
ISP#show ip bgp summary
BGP router identifier 192.168.2.1, local AS number 8151
BGP table version is 7, main routing table version 7
2 network entries using 280 bytes of memory
3 path entries using 240 bytes of memory
3/1 BGP path/bestpath attribute entries using 432 bytes of memory
2 BGP AS-PATH entries using 48 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1000 total bytes of memory
BGP activity 2/0 prefixes, 4/1 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
192.168.1.2 4 21692 35 40 7 0 0 00:28:36 1
192.168.2.2 4 21692 107 109 7 0 0 01:30:20 1
Ahora bien, si revisamos la ruta podremos ver que esta es conocido ya por el enlace principal.
ISP#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
a - application route
192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.1.0/24 is directly connected, Ethernet0/0
L 192.168.1.1/32 is directly connected, Ethernet0/0
192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.2.0/24 is directly connected, Ethernet0/1
L 192.168.2.1/32 is directly connected, Ethernet0/1
B 200.200.31.0/24 [20/0] via 192.168.1.2, 00:03:15
ISP#
¿Y cómo validamos que nuestro comando funciona? Vemos la salida del comando “show ip bgp”
ISP#show ip bgp
BGP table version is 7, local router ID is 192.168.2.1
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
0.0.0.0 0.0.0.0 0 i
*> 200.33.31.0 192.168.1.2 0 0 21692 i
* 192.168.2.2 0 0 21692 21692 21692 i
ISP#
Con esta configuración podremos manipular el anuncio de nuestra redes y hacer nuestro pequeño proceso de alta disponibilidad.
¡Conecte con otros expertos de Cisco y del mundo! Encuentre soluciones a sus problemas técnicos o comerciales, y aprenda compartiendo experiencias.
Queremos que su experiencia sea grata, le compartimos algunos links que le ayudarán a familiarizarse con la Comunidad de Cisco:
Navegue y encuentre contenido personalizado de la comunidad