29 de mayo de 2015

Elementos básicos de VRF

Una tecnología sobre la que no se habla habitualmente es la implementación de VRFs (Virtual Routing and Forwarding). Se la suele vincular a la implementación de VPNs MPLS, donde es un recurso necesario, pero también es un recurso útil cuando debemos intercambiar rutas de múltiples redes diferentes sobre una misma infraestructura de enrutamiento, manteniendo las rutas de cada red totalmente independientes.
Por ese motivo me pareció adecuado dedicar un post al menos a los rudimentos de las VRFs.

Como se desprende de lo que dije antes, podemos utilizar VRFs para mantener múltiples instancias de enrutamiento de modo simultáneo en un único router. En este caso, cada instancia de enrutamiento es totalmente independiente, con su propia tabla de enrutamiento, sin interacción con el enrutamiento de otra instancias, lo que permite incluso que haya superposición de redes IP en una misma infraestructura sin que haya conflictos de direccionamiento.

Una VRF está definida por un conjunto de elementos específicos:
  • Un Nombre que la identifica localmente en el dispositivo y permite ingresar al modo de configuración de esa VRF específica.
  • Un Route Distinguisher que identifica dentro de una red las VRFs que componen la misma red virtual y que intercambian información de enrutamiento entre sí.
  • Un Exported Route Target que identifica a qué otra VRF dentro de la misma red se envía información de enrutamiento de esa VRF.
  • Un Imported Route Target que idendifica de qué otra VRF dentro de la misma red se aprende información de enrutamiento para esa VRF.
  • Un conjunto de interfaces asociadas a la VRF.
Elementos de configuración básica

Router(config)#ip vrf Prueba1
Router(config-vrf)#rd 1:10
Router(config-vrf)#route-target export 1:10
Router(config-vrf)#route-target import 1:10
Router(config-vrf)#exit
Router(config)#interface GigabitEthernet2
Router(config-if)#ip vrf forwarding Prueba1

Hay que tener presente que al incorporar o retirar una interfaz de una VRF se remueve automáticamente la configuración IP existente en la interfaz y se deberá configurar nuevamente según corresponda.

La tabla de enrutamiento
Al crear VRFs se habilitan diferentes instancias de enrutamiento en un mismo dispositivo, separadas lógicamente. Cada instancia de enrutamiento es completamente independiente y se mantiene una tabla de enrutamiento para cada instancia.
De esta manera, en un router que implementa VRFs se encuentran varias tablas de enrutamiento:
  • La tabla de enrutamiento global o de la infraestructura, en la que se mantienen las rutas propias de la infraestructura física.
    Se consulta utilizando el comando:
    Router#show ip route
  • Una tabla de enrutamiento independiente por cada VRF, en la que se encuentran exclusivamente las rutas de la red virtual a la que pertenece esa VRF.
    Su estructura es resultado del intercambio de información de enrutamiento con otras VRFs de la misma red virtual definido utilizando los comandos route-target.
    Se consulta utilizando el comando:
    Router#show ip route vrf Prueba1
El enrutamiento de cada VRF es completamente independiente, del mismo modo que el direccionamiento IP asociado a las interfaces y al enrutamiento. Por lo tanto cada VRF puede tener sus propias rutas estáticas o instancia de un protocolo de enrutamiento. La metodología de configuración del protocolo de enrutamiento en cada VRF cambia ligeramente según el protocolo del que se trate.
Adicionalmente, a nivel de la infraestructura se utiliza una instancia de MP-BGP para transportar la información de enrutamiento entre VRFs de diferentes routers que deben intercambiar información de enrutamiento.


Recursos:

4 comentarios:

  1. Gracias por este Blog Estimado Oscar,
    Tengo mucha confusión entre VRF, MPLS, MPLS-VPN, MP-BGP,
    pues lo poco que entiendo es que MPLS necesita de VRF y de BGP para enrutamiento, por favor si me dieras una explicación de la relacion entre VRF y MPLS y MPLS-VPN te lo agradecería infinito.
    Si conoces de algún texto, libro, PDF o documento en español que explique esto de manera clara y puntual te lo agradecería.

    Quedo pendiente

    ResponderEliminar
    Respuestas
    1. Estimado, MPLS no requiere de por sí ni VRF ni BGP.
      MPLS si depende del enrutamiento IP, pero no es necesario utilizar VRFs para desplegar MPLS. Al respecto hay algún post publicado aquí en el blog.
      Ahora bien, una manera de implementar MPLS es el uso de VPN-MPLS.
      Cuando se implementa VPN-MPLS es necesario mantener separado el enrutamiento de múltiples redes sobre una única estructura común MPLS. Para separar este enrutamiento se utilizan VRFs, y para transportar las rutas de estasa VRFs de un extremo a otro de la red de modo independiente se utiliza MP-BGP.
      Pero VRF y MP-BGP son mecanismos de enrutamiento IP independientes de MPLS.

      Eliminar
  2. Hola, estoy comenzando a leer un poco sobre VRF para tratar de entenderlo y no me queda claro como el router sabe que ruta de VRF escoger.
    Si yo tengo:
    ip route vrf prueba1 0.0.0.0 0.0.0.0 192.168.2.1
    ip route vrf prueba2 0.0.0.0 0.0.0.0 192.168.3.1
    Si llega un paquete al router, cómo sabe por donde rutearlo?

    ResponderEliminar
    Respuestas
    1. Carlos
      Como muestra el video que está más arriba, la VRF en su composición no sólo considera los IDs y las rutas definidas, sino también las interfaces que están asociadas a la VRF.
      De esta manera, en función del puerto a través del cuál ingresa el paquete se puede saber qué tabla de enrutamiento se debe aplicar para el reenvío, si la de la VRF pureba1 o la de la prueba2.

      Eliminar

Gracias por tu comentario.
En este blog los comentarios están moderados, por lo que su publicación está pendiente hasta la revisión del mismo.