WifiguyMX

Wireless, Networking, and more…

Hace algunos días alguien preguntó como unir la conexión de Internet de dos proveedores diferentes en un solo router, la respuesta de todos fue que este no era posible pero también muchas personas respondieron que podia utilizar un PBR para dividir su tráfico y tener dos enlaces activos y así, poder hacer que ciertos segmentos de red salieran un por un enlace de internet y otros segmentos por el otro. Hoy veremos ese ejemplo.

Comenzaremos con la configuración de nuestro equipos que hará la función de CPE (Equipo del Cliente)

interface Ethernet0/0
 description CONEXION CON ISP PRINCIPAL
 ip address 202.202.202.1 255.255.255.0
!
interface Ethernet0/1
 description CONEXION CON ISP SECUNDARIO
 ip address 203.203.203.1 255.255.255.0
!
interface Ethernet0/2
 description CONEXION CON RED LAN
 no ip address
!
interface Ethernet0/2.10
 encapsulation dot1Q 10
 ip address 192.168.10.254 255.255.255.0
!
interface Ethernet0/2.20
 description VOZ
 encapsulation dot1Q 20
 ip address 192.168.20.254 255.255.255.0
!
interface Ethernet0/2.30
 description SERVIDORES
 encapsulation dot1Q 30
 ip address 192.168.30.254 255.255.255.0
!
interface Ethernet0/2.40
 description CRITICOS
 encapsulation dot1Q 40
 ip address 192.168.40.254 255.255.255.0
!
interface Ethernet0/2.50
 description DIRECTORES
 encapsulation dot1Q 50
 ip address 192.168.50.254 255.255.255.0
!

Como podemos observar nuestro CPE tiene un par de conexiones:
interface Ethernet0/0 CONEXION CON ISP PRINCIPAL
interface Ethernet0/1 CONEXION CON ISP RESPALDO

El CPE tiene diferentes segmentos de red. Supongamos que nuestros directores necesitan un servicio de internet dedicado, para ello, utilizaremos a nuestro proveedor de Respaldo para que solo el segmento de red de nuestros directores salga a la red.

Configuremos los parámetros necesarios para establecer la sesión de BGP y el anuncio de redes.

router bgp 65001
 bgp log-neighbor-changes
 network 192.168.10.0
 network 192.168.20.0
 network 192.168.30.0
 network 192.168.40.0
 network 192.168.50.0
 neighbor 202.202.202.2 remote-as 65101
 neighbor 203.203.203.2 remote-as 65102

Una vez que nuestra sesión de BGP se ha establecido lo primero que vamos a configurar será una lista de acceso la cual permitirá el segmento de red de los Directores.

access-list 10 permit 192.168.50.0 0.0.0.255

Después vamos a crear un route-map el cual llamaremos “DIRECTORES”

route-map DIRECTORES permit 10
match ip address 10
set ip next-hop 203.203.203.2

El route map que utilizamos consta de 3 partes:
1. En la primer linea creamos nuestro route map y le asignamos un nombre.
2. En la segunda linea le indicamos que al route map que deberá hacer match con la lista de acceso 10.
3. En la tercera linea indicamos que el siguiente salto para el segmento de red que esta dentro de nuestra lista de acceso será la IP de nuestro ISP secundario, es decir, 203.203.203.2

Una vez que hemos creado nuestro route-map es necesario aplicarlo y para ello lo haremos en la sub-interface que le corresponde al segmento de DIRECTORES, es decir, en la Ethernet0/2.50

interface Ethernet0/2.50
description DIRECTOR
encapsulation dot1Q 50
ip address 192.168.50.254 255.255.255.0
ip policy route-map DIRECTORES

Ahora bien, para poder probar nuestro route-map he creado en cada ISP un loopback 100 y ambos anuncian la misma dirección IP 100.100.100.100 Veamos la tabla de ruteo del CPE:

 CPE#show ip route 100.100.100.100
Routing entry for 100.100.100.0/24
  Known via "bgp 65001", distance 20, metric 0
  Tag 65101, type external
  Last update from 202.202.202.2 00:04:10 ago
  Routing Descriptor Blocks:
  * 202.202.202.2, from 202.202.202.2, 00:04:10 ago
      Route metric is 0, traffic share count is 1
      AS Hops 1
      Route tag 65101
      MPLS label: none

Como podemos observar la ip 100.100.100.100 es conocida por nuestro ISP Principal 202.202.202.2
Ahora, realizaremos una traza y verificaremos que el segmento de Directores salga por nuestro enlace de respaldo

CPE#traceroute 100.100.100.100 source ethernet 0/2.50 numeric 
Type escape sequence to abort.
Tracing the route to 100.100.100.100
VRF info: (vrf in name/id, vrf out name/id)
  1 202.202.202.2 [AS 65101] 1 msec *  0 msec
CPE#

Cómo podemos percatarnos nuestro segmento de Directores sigue saliendo por el enlace principal. ¿No funciona nuestro PBR? ¿Esta mal configurado o aplicado el route-map? ¿Es la lista de acceso el problema?

La razón por la cual el PBR áun no funciona es por qué necesitamos agregar un comando: “ip local policy route-map DIRECTORES”

Este comando nos permite utilizar nuestro route-map para tráfico que es generado por el propio CPE, es decir, el tráfico se genera desde las sub-interfaces del router. Si por ejemplo, el tráfico proviniera de un Switch CORE entonces bastará con lo ya configurado previamente.
Bien, apliquemos el comando en el contexto de configuración global.

CPE(config)#ip local policy route-map DIRECTORES

Ahora, probaremos si es que ya funciona.

CPE#traceroute 100.100.100.100 source ethernet 0/2.50 numeric 
Type escape sequence to abort.
Tracing the route to 100.100.100.100
VRF info: (vrf in name/id, vrf out name/id)
  1 203.203.203.2 [AS 65101] 2 msec *  1 msec
CPE#

Ahora podemos verificar que la red de Directores se encuentra saliendo por el enlace de Respaldo.

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.

Escenario

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.

  • Hacia R2 tendrá el direccionamiento 192.168.1.0/24. Router 1 ocupará la dirección 192.168.1.1/24 mientras que R2 utilizará la dirección IP 192.168.1.2
  • Hacia R3 tendrá el direccionameinto 192.168.2./24. Router 1 ocupará la dirección 192.168.2.1/24 mientras que R3 utilizará la dirección IP 192.168.2.2
  • Los equipos del cliente (R2 & R3) utilizarán el sistema autónomo 21692.

Configuración Inicial.

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.

History of Wireless Local Area Networks.

Este es el resumen del primer capítulo del libro CWNA 107, en el encontrarás lo que a mi parecer son las ideas claves del mismo y con ellas podrás responder las preguntas de revisión que encontrarás al final del post.

Continuar leyendo

Categorías: CWNA

La verdad es que ha sido bastante complejo estudiar para esta nueva versión del examen, la última versión disponible del libro que puedes adquirir en CiscoPress es la versión 3,0 y está se encuentra desactualizada.