Track. Diferentes escenarios con tracking

En el siguiente escenario se estará implementando diferentes tracking, comprender su funcionamiento y su gran utilidad a la hora de implementar redundancia en la red de una manera muy peculiar.

Tracking se utiliza para colocar ciertas situaciones actuales de la red en un "threshold" y deseas que se interprete bajo ciertos comandos utilizando este trigger. Esto es útil ya que no depende exactamente sobre el estado del router, sino tambien del entorno que lo rodea.

A continuación se muestra el siguiente diagrama:

Tracking-diagram1.PNG

El diagrama lo puede encontrar aquí. Tracking-examples.zip

Se colocaron varios escenarios en un solo diagrama dividido en 4 Test:
Test1: Cambio de interfaz por HSRP usando track por interfaz por IP hacia R3.
Test2: Cambio de ruta estática usando track.
Test3: Decisión de un route policy dependiendo de la disponibilidad de los vecinos por medio de track.
Test4: Diferentes condiciones track en uno solo llamado.

Test1:

A continuación se muestra como debe cambiar el tráfico bajo ciertas condiciones hacia el IP 3.3.3.3 como prueba:

Tracking-test1.PNG

Los Router R1 y R2 están hablando HSRP en las interfaces LAN con IP Virtual 192.168.0.1. A ambos router se le activa el standby 1 preempt para que cambien bajo el entorno de la red. Asi se encuentra la configuración en R1:

interface FastEthernet0/0
ip address 192.168.0.2 255.255.255.0
duplex auto
speed auto
standby 1 ip 192.168.0.1
standby 1 priority 105
standby 1 preempt
standby 1 track FastEthernet0/1
standby 1 track 2 decrement 10

En el Router R1 se coloca track bajo la interfaz de la WAN que si falla, decremente la prioridad para que el enlace de backup. En este caso como la prioridad está en 105, bajará a 95 y como R2 está con la prioridad por defecto de 100, será el principal. Veamos el estado antes de tumbar la interfaz WAN:

R1#show standby
FastEthernet0/0 - Group 1
State is Active
2 state changes, last state change 00:20:14
Virtual IP address is 192.168.0.1
Active virtual MAC address is 0000.0c07.ac01
Local virtual MAC address is 0000.0c07.ac01 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.892 secs
Preemption enabled
Active router is local
Standby router is 192.168.0.3, priority 100 (expires in 9.436 sec)
Priority 105 (configured 105)
Track interface FastEthernet0/1 state Up decrement 10
Track object 2 state Up decrement 10
Group name is "hsrp-Fa0/0-1" (default)
R1#

Se da de baja la fa 0/1 WAN, donde ahora se observa de la siguiente manera:

R1#show standby
FastEthernet0/0 - Group 1
State is Standby
4 state changes, last state change 00:03:34
Virtual IP address is 192.168.0.1
Active virtual MAC address is 0000.0c07.ac01
Local virtual MAC address is 0000.0c07.ac01 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 1.976 secs
Preemption enabled
Active router is 192.168.0.3, priority 100 (expires in 8.816 sec)
Standby router is local
Priority 85 (configured 105)
Track interface FastEthernet0/1 state Down decrement 10
Track object 2 state Down decrement 10
Group name is "hsrp-Fa0/0-1" (default)
R1#

Observe que muestra que el priority está en 85 y esto es debido a que tiene 2 track. Uno es el que vigila la interfaz y el otro es realizado bajo un ping icmp echo a traves de la interfaz WAN. Este track fue diseñado ya que como se podrá observar hay un switch en el medio. Si la interfaz de R3 falla, no se verá reflejado por el simple vigilancia de la interfaz. A continuación la configuración para este track especial:

track 2 rtr 103 reachability
interface FastEthernet0/0
standby 1 track 2 decrement 10
ip sla 103
icmp-echo 10.10.10.2 source-interface FastEthernet0/1
timeout 1000
threshold 2
frequency 10
ip sla schedule 103 life forever start-time now

Esto genera un ping de por vida, activado desde el momento que se coloca el comando cada 10 segundos y con una espera de 1 segundo.

Test2:

Tracking-test2.PNG

En la segunda prueba se desea llegar desde el R2 hacia el IP 4.4.4.4 y que pueda realizar track, pero esta vez será con rutas estáticas:

ip route 4.4.4.4 255.255.255.255 10.10.10.6 name Lo4 track 1
ip route 4.4.4.4 255.255.255.255 192.168.0.2 150 name Lo4_Backup

En este caso ambas rutas estáticas muestra uno con un adm distance de 1 y el otro a 150. Actualmente el track monitorea el enlace hacia R4 a traves de un mensaje ICMP. A continuación la configuración:

track 1 rtr 204 reachability
!
ip sla 204
icmp-echo 10.
10.10.6 source-interface FastEthernet0/1
ip sla schedule 204 life forever start-time now
!

En este caso igual que el anterior realiza una prueba de ping. Este método es conocido como IP SLA. Se utiliza sus propiedades para tomar decisones, en este caso de ruta.
Debe poder realizar ping al 4.4.4.4 ya sea por R4 o a través de R1.

En este caso observemos la tabla de ruta de R2:

R2#show ip route
Codes: 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

Gateway of last resort is not set

3.0.0.0/32 is subnetted, 1 subnets
S 3.3.3.3 [1/0] via 10.10.10.6
4.0.0.0/32 is subnetted, 1 subnets
S 4.4.4.4 [150/0] via 192.168.0.2
10.0.0.0/30 is subnetted, 1 subnets
C 10.10.10.4 is directly connected, FastEthernet0/1
C 192.168.0.0/24 is directly connected, FastEthernet0/0
R2#

Si la interfaz hacia el R4 se cae de cualquiera de los dos lados (ambos están conectados en un estilo back to back), entonces realiza el cambio de ruta. Veamos como queda luego que no es accesible directamente:

R2#show ip route
Codes: 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

Gateway of last resort is not set

4.0.0.0/32 is subnetted, 1 subnets
S 4.4.4.4 [150/0] via 192.168.0.2
C 192.168.0.0/24 is directly connected, FastEthernet0/0
R2#

Tambien es útil verificar el estado de una ruta dependiendo del track con el comando show ip route track-table

R2#show ip route track-table
ip route 4.4.4.4 255.255.255.255 10.10.10.6 name Lo4 track 1 state is [down]
R2#

Test3

En la siguiente prueba comienza desde R3 deseando llegar a la red 192.168.0.0/24. En este caso tiene dos posibles rutas: Por R1 o por R4. Por defecto forzaremos que debe tener prioridad la ruta a través de R1, sino se tomaría por R4. En este ejemplo utilizamos la habilidad de Policy Routing que es una caracteristica especial que tiene los router para redirigir los paquetes hacia ciertos siguientes saltos sin tomar en cuenta el proceso normal de la tabla de ruteo.

Tracking-test3.PNG

He aquí algunos comandos para utilizar Policy Routing:

Command Comment
set ip next-hop ip-address [… ip-address] Next-hop addresses must be in a connected subnet; forwards to the first address in the list for which the associated interface is up.
set ip default next-hop ip-address [… ip- address] Same logic as previous command, except policy routing first attempts to route based on the routing table.

Nota: Un buen resumen puede ser encontrado en el libro CCIE Routing and Switching Exam Certification Guide 4th Edition en la página 201-205

Se debe colocar el ip policy route-map en la interfaz donde los paquetes entrantes deben saber cual será su siguiente salto. A continuación la configuración:

track 301 rtr 1 reachability
!
track 304 rtr 2 reachability

interface Loopback3
ip address 3.3.3.3 255.255.255.255
ip policy route-map TEST_PC1

ip sla 1
icmp-echo 10.10.10.1 source-interface FastEthernet0/0
ip sla schedule 1 life forever start-time now
ip sla 2
icmp-echo 172.16.0.2 source-interface FastEthernet0/1
ip sla schedule 2 life forever start-time now

route-map TEST_PC1 permit 10
set ip next-hop verify-availability 10.10.10.1 10 track 301
set ip next-hop verify-availability 172.16.0.2 20 track 304
!
ip route 192.168.0.0 255.255.255.0 Loopback3 name TEST_TRACK_POLICY

Debe tenerse en cuenta que los paquetes no toman el proceso normal del routing, sino que es modificado antes de la capa 3. Puede utilizarse el comando debug ip policy para poder observar el comportamiento en el router.

Test4

Este último test utiliza las mismas herramientas que los implementados por los demás test. La diferencia radica en las diferentes formas de utilización del comando track. Es una herramienta poderosa que permite colocar sentencias y condiciones lógicas en escenarios, para que realice ciertas acciones. Veamos primero el diagrama y el flujo que debe tener el paquete:

Tracking-test4.PNG

En este ejemplo se basa en implementar y preguntar dentro del track la disponibilidad de una red. Adicional hay un track adicional que utiliza los valores de los track anteriores y compara bajo condiciones booleanas:

!
track 1 ip route 10.10.10.4 255.255.255.252 reachability
!
track 2 ip route 172.16.0.0 255.255.255.252 reachability
!
track 10 list boolean and
object 1 not
object 2
!
ip route 192.168.0.0 255.255.255.0 10.10.10.5 20 name TEST4_PC track 1
ip route 192.168.0.0 255.255.255.0 172.16.0.1 name TEST4_PC track 10

Para verificar como los track se están comportando o si están activados o no, realizar el siguiente show:

R4#show track
Track 1
IP route 10.10.10.4 255.255.255.252 reachability
Reachability is Down (no route)
1 change, last change 00:01:59
First-hop interface is unknown
Tracked by:
Track-list 10
STATIC-IP-ROUTING 0
Track 2
IP route 172.16.0.0 255.255.255.252 reachability
Reachability is Up (connected)
2 changes, last change 00:01:23
First-hop interface is FastEthernet0/1
Tracked by:
Track-list 10
Track 10
List boolean and
Boolean AND is Up
2 changes, last change 00:01:22
object 1 not Down
object 2 Up
Tracked by:
STATIC-IP-ROUTING 0
R4#

Hay que tener mucho cuidado con las condiciones colocadas, porque es muy facil crear un loop. Por lo que se debe tener mucho cuidado al implementar condiciones. (durante el proceso de la creación de este diagrama, creé muchas condiciones que cayeron en loop :p )

Recuerden que como en este caso se está implementando rutas estáticas bajo condiciones track, es posible realizar el comando show ip route track-table y ver el estado actual.

Referencias:

Cisco:
http://www.cisco.com/en/US/docs/ios/12_2sb/feature/guide/sbaiptrk.html
http://www.cisco.com/en/US/docs/ios/12_3/ipaddr/command/reference/ip1_t1g.html#wp1078764

Cisco IOS Cookbook 2nd Edition:
http://fengnet.com/book/Cisco.IOS.Cookbook.2nd/main.html
http://fengnet.com/book/Cisco.IOS.Cookbook.2nd/I_0596527225_CHP_5_SECT_12.html

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License