Configuración básica de VRF

      6 Comments on Configuración básica de VRF

Antes de comenzar a comprender conceptos avanzados de gestión de ISPs como MPLS VPNs es necesario conocer las VRFs. Lo que Cisco llama VRF (Virtual Routing and Forwarding), Juniper lo llama “routing instances” (instancias de enrutamiento), en Linux se conoce como “network namespaces” y otros fabricantes como HP y Huawei denominan “VPN Routing” al mismo concepto.

VRF es una forma de virtualizar la tabla de enrutamiento de un router para separar a los clientes y poder asignar una única instancia a cada uno de ellos. Esta virtualización permite lograr cosas tan extrañas en otros escenarios como que dos clientes tengan el mismo direccionamiento IP y estén totalmente aislados uno del otro.

Gracias a las VRF, los ISPs pueden virtualizar sus routers internos (PE o Provider Edge) para utilizar el mismo dispositivo físico y asignar múltiples clientes, cada cual usando sus propios métodos de enrutamiento independientes ofreciendo extraordinaria flexibilidad y ahorro de costos de implementación.


En la imagen superior vemos a un router tradicional con 3 interfaces donde cada una de ellas tiene una red IP diferente. En este caso si quisiéramos configurar la interfaz Gi0/1 con la IP 192.168.0.1/24 (o cualquiera de ese bloque) el router no nos dejaría por que nos indicaría que la IP ya está siendo utilizada en otra interfaz.

R1(config)#interface Gi0/1
R1(config-if)#ip address 192.168.0.1 255.255.255.0
% 192.168.0.0 overlaps with GigabitEthernet0/0

Con VRF podríamos asignar exactamente la misma dirección IP a ambas interfaces. ¿Cómo es esto posible? La respuesta es: virtualizando las tablas de enrutamiento. Al aplicar VRF el router construye una tabla de enrutamiento separada para cada una de las VRFs (asociadas a un cliente en particular) las cuales difieren totalmente de la tabla de enrutamiento global del mismo router.

Cuando activamos VRFs, asociamos cada interfaz (física o subinterfaz virtual) del router a una tabla de enrutamiento propia que se distingue con un identificador asignado por el propio administrador (ej: VRF1, Cliente1, etc.). De esta manera el router podría tener incluso todas sus interfaces con el mismo direccionamiento IP y no se generaría ningún error de tipo “overlap” con el caso anterior.

Configuración
La configuración de VRFs locales en el router es extremadamente simple.

R1(config)#ip vrf VRF1
R1(config-vrf)#rd 100:1
R1(config-vrf)#exit
R1(config)#ip vrf VRF2
R1(config-vrf)#rd 100:2
R1(config-vrf)#exit
R1(config)#ip vrf VRF3
R1(config-vrf)#rd 100:3
R1(config-vrf)#exit
R1(config)#

Utilizamos el comando ip vrf NOMBRE para definir cada VRF y asignamos un valor rd (Route Distinguisher) que realmente le indica al router cómo debe separar las rutas internamente. Esta opción le permite al dispositivo distinguir (de aquí su nombre) qué interfaz y que ruta pertenece a qué dominio de enrutamiento interno. El formato del comando “rd” es meramente identificatorio pero debe ser consistente con el resto de la topología y se escribe como X:Y donde X normalmente identificaría al sistema autónomo (ej: EIGRP 100) y donde Y es un identificador propio de la misma VRF aunque finalmente la numeración es absolutamente “cosmética” y no influye mayormente.

Luego asociamos las interfaces a cada VRF de la siguiente manera

R1(config)#interface Gi0/0
R1(config-if)#ip vrf forwarding VRF1
R1(config-if)#ip address 192.168.0.1 255.255.255.0
R1(config-if)#no shutdown

R1(config)#interface Gi0/1
R1(config-if)#ip vrf forwarding VRF2
R1(config-if)#ip address 192.168.0.1 255.255.255.0
R1(config-if)#no shutdown

R1(config)#interface Gi0/2
R1(config-if)#ip vrf forwarding VRF3
R1(config-if)#ip address 192.168.0.1 255.255.255.0
R1(config-if)#no shutdown

Con esta configuración hemos creado las VRFs locales. Un error común es revisar las tablas de enrutamiento con el comando “show ip route” a secas, ya que esta tabla de enrutamiento corresponde al contexto global del router e incluye rutas que no están asociadas a una VRF en particular.

R1#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

R1#

En cambio, debemos utilizar el comando show ip route vrf NOMBRE_DE_LA_VRF

R1#show ip route vrf VRF1

Routing Table: VRF1
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

C 192.168.0.0/24 is directly connected, GigabitEthernet0/0
R1#

R1#show ip route vrf VRF2

Routing Table: VRF2
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

C 192.168.0.0/24 is directly connected, GigabitEthernet0/1
R1#
R1#show ip route vrf VRF3

Routing Table: VRF3
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

C 192.168.0.0/24 is directly connected, GigabitEthernet0/2
R1#

Toda esta configuración después nos será útil para levantar topologías como MPLS VPNs (Con BGP) o VRF-Lite (Sin BGP).

  • Juan Peres

    Muy buena explicación!

  • Una maravilla de explicación. Se ha dado a entender muy fácilmente.

  • Miguel Angel Manzano

    Excelente articulo, completo y facil de entender, gracias y saludos!

  • Lucas Lopez

    Buenisimo gracias por la info!

  • Expl0it

    excelente información,super simple y técnica, gracias paulo!!!

  • Marcos Andrés Pozas

    Se agradece leer información clara y contundente.

    Saludos.!