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.

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.0En R3:
interface FastEthernet0/0
ip address 10.1.1.1 255.255.255.252interface Loopback0
ip address 192.168.1.10 255.255.255.0La 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 shutAhora 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.252Y 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.10Que 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:

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:2Traducció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.252Con 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 setHey, 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 msEn 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 msHell 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 :)