VRF - Introduccion

Share
VRF - Introduccion

Alguna vez te ha sucedido que te preguntas algo que parece tonto pero resulta siendo algo increíble que existe en la vida real? Este el caso de una pregunta que tuve sobre enrutamiento en mis primeros días de entrenamiento, veamos en la siguiente topología de que se trata.

Screen Shot 2016-06-27 at 9.56.59 PM

En este caso estamos viendo las cosas desde el punto de vista de un ISP. Los routers R2 y R3 están en el lado del cliente y R1 representa el lado del proveedor. Como los routers clientes son mutuamente independientes, pueden usar exactamente la misma IP privada para sus interfaces, sin embargo, vemos que esto puede resultar en un posible error de IP duplicada. Basados en el direccionamiento mostrado mi pregunta en ese entonces fue, cómo se puede asegurar de que nuestros routers R2 y R3 no vean las subredes como duplicadas y sepan exactamente a donde ir?

Exacto! Usando VRFs :)

Preliminares

Mostraremos la configuración inicial en ambos routers, R2 y R3:

En R2:

interface FastEthernet0/0
 ip address 10.1.1.1 255.255.255.252interface Loopback0
 ip address 192.168.1.10 255.255.255.0

En R3:

interface FastEthernet0/0
 ip address 10.1.1.1 255.255.255.252interface Loopback0
 ip address 192.168.1.10 255.255.255.0

La interface f0/0 del router R1 vamos a subdividirla en dos subinterfaces y por supuesto, usaremos dot1q.

Recuerdas cómo se hace? Esto es un concepto que está presentado en el artículo VLANs - Parte 1, no olvides de darte una vuelta si algún concepto no quedó claro :)

Veamos como configurarlo:

Como ambas sub-interfaces son dependientes de f0/0, hay que asegurarnos que esté activa:

R1(config)#int f0/0
R1(config-if)#no shut

Ahora procederemos a configurar la IP en f0/0.10:

R1(config)#int f0/0.10
R1(config-subif)#encapsulation dot1Q 10
R1(config-subif)#ip add 10.1.1.2 255.255.255.252

Y ahora vamos con f0/0.20:

R1(config)#int f0/0.20
R1(config-subif)#encapsulation dot1Q 20
R1(config-subif)#ip add 10.1.1.2 255.255.255.252
% 10.1.1.0 overlaps with FastEthernet0/0.10

Que sucedió? De pronto nos salió un mensaje de IP overlaps (IP solapada), esto se debe a que f0/0.10 tiene la misma dirección que queremos asignarle a f0/0.20

No te preocupes! Lo arreglaremos con VRFs :)

Configurando VRFs

Pondremos unos detalles adicionales a la topología para que sepas a qué se quiere llegar:

Screen Shot 2016-06-27 at 9.56.19 PM

La idea de esto es dividir la tabla de enrutamiento en dos partes que sean independientes, de modo que las IPs no se solapen.

Veamos ahora cómo se configuran las VRFs:

R1(config)#ip vrf VRF01
R1(config-vrf)#description VRF01
R1(config-vrf)#rd 1:1R1(config)#ip vrf VRF02
R1(config-vrf)#description VRF02
R1(config-vrf)#rd 1:2

Traducción!

ip vrf VRF01 - Entramos al modo de configuración de la VRF

description VRF01 - Le pondremos una descripción

rd 1:1 - Route Distinguisher o Distintivo del Router, esto le otorgará una etiqueta única para cada router, no es muy necesario profundizarlo ahora mismo pues esto se usa más en implementaciones de MPLS, conceptos que veremos en una próxima publicación :)

Apliquemos ahora las VRF a las interfaces

IMPORTANTE: Cuando se asignan las VRF las direcciones IPs se pierden y se tienen q volver a reconfigurar, por eso es recomendable no tener IPs configuradas antes de asignarle la VRF.

R1(config)#int f0/0.10
R1(config-subif)#ip vrf forwarding VRF01
% Interface FastEthernet0/0.10 IPv4 disabled and address(es) removed due to disabling VRF VRF01
R1(config-subif)#ip add 10.1.1.2 255.255.255.252R1(config-subif)#int f0/0.20
R1(config-subif)#ip vrf forwarding VRF02
R1(config-subif)#ip add 10.1.1.2 255.255.255.252

Con esto terminamos la primera parte de la pelea.

Ahora, hay que configurar los routers R2 y R3 con EIGRP, a este punto de la batalla debe ser sencillo, pero por si aún no conoces el protocolo recuerda visitar la serie EIGRP - Parte 1 :)

En el caso de R1, EIGRP tendrá una configuración un tanto diferente. Haremos un show run | se eigrp para mostrarte como esta configurado en R1:

R1#show run | se eigrp
router eigrp 1
 !
 address-family ipv4 vrf VRF01 autonomous-system 1
  network 10.1.1.2 0.0.0.0
  network 172.16.1.10 0.0.0.0
 exit-address-family
 !
 address-family ipv4 vrf VRF02 autonomous-system 1
  network 10.1.1.2 0.0.0.0
  network 172.16.1.10 0.0.0.0
 exit-address-family 

A explicar los comandos!

address-family ipv4 vrf VRF01 autonomous-system 1 - Aquí definimos la VRF para la sesión de EIGRP, como ya hemos asignado la VRF a la interface entonces solo nos queda declarar la IP con el comando network, de la misma manera como se hace normalmente. Luego, la parte de autonomous-system nos dira a que sistema autonomo pertenece.

network 10.1.1.2 0.0.0.0 - Declaramos la subred usada por EIGRP.

exit-address-family - Fin de la seccion del VRF.

Ahora, veamos si hay neighbors:

R1#sh ip route eigrp 1 | be Gateway
Gateway of last resort is not set

Hey, no hay nada! Espera... esto estaba con VRF!, asi que debemos usar la clausula de VRF para visualizarlo :)

Para VRF01:

R1#sh ip route vrf VRF01 eigrp 1 | be Gateway
Gateway of last resort is not set

D     192.168.1.0/24 [90/156160] via 10.1.1.1, 00:01:27, FastEthernet0/0.10
R1#

Para VRF02:

R1#sh ip route vrf VRF02 eigrp 1 | be Gateway
Gateway of last resort is not set

D     192.168.1.0/24 [90/156160] via 10.1.1.1, 00:01:30, FastEthernet0/0.20
R1#

Excelente! Ya tenemos configurados los VRFs. Trataremos de alcanzar las loopbacks:

R1#ping 192.168.1.10

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.10, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5) 

No funciono?... Espera, que dices? Que me olvide de poner la clausula de VRF?

Muy bien! Veamos ahora qué pasa si usamos VRF01 y VRF02:

En VRF01:

R1#ping vrf VRF01 192.168.1.10

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.10, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 52/55/60 ms

En VRF02

R2#ping 172.16.1.10

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.1.10, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 40/72/88 ms

Hell yeah! Ahora nuestros routers están separados independientemente.

Alguien dijo cerveza para celebrar? :D

Conclusiones

VRF es una tecnología que nos ayudará a dividir tablas de enrutamiento de modo que un router sea independiente del otro aunque estén conectados en el mismo switch o espacio físico.

Como siempre, gracias a ti por leer este artículo, si tienes dudas, preguntas, trolleadas, opiniones, insultos y demás, por favor escribir en la sección de comentarios :)