lunes, 9 de marzo de 2015

Configuración de MPLS parte 3, las VRF

Comenzaremos con una breve explicación de qué es una VRF, y como las identificamos.
Una VRF (virtual routing and forwarding) es una instancia virtual y separada de la instancia global de ruteo en el dispositivo; es decir, es casi como tener un segundo router corriendo sus propios procesos de ruteo, independientes de cualquier otro presente en el dispositivo.

El uso más común y que simularemos en el ejemplo, es el que los proveedores de servicio utilizan para conectar a sus clientes con MPLS, configurando redes privadas virtuales que separan el tráfico de los clientes en instancias separadas de los demás clientes por medio de las etiquetas de ruteo. los routers que tenemos dentro del ISP les llamaremos P (provider), a los del borde de la red del ISP les llamaremos PE (provider edge) a los del cliente CE (customer edge)

Esta separación se logra con la configuración de la VRF primero, declarando su nombre, y después utilizando etiquetas para poder separar esa información de los demás procesos. Dichas etiquetas son muy parecidas a las que utilizamos en LDP para MPLS, pero en este ejemplo utilizaremos el formato "extendido". Dichas etiquetas son utilizadas en el encabezado de las rutas, por lo que cualquier vecino de mBGP que reciba dichas rutas etiquetadas podrá instalarlas en sus propias VRF conforme a lo que se le indica en la configuración.

Entre otros beneficios, tener una VRF nos permite la duplicación de direcciones IP entre diferentes clientes, es decir, podríamos tener a dos clientes diferentes utilizando las redes 10.0.0.0/16 sin problemas, ya que las rutas se procesas basadas en las etiquetas.

Basados en estas etiquetas indicaremos cuál es la que identifica localmente a nuestra VRF y compartiremos dicha información con nuestro vecino de mBGP , comunicando así que por ejemplo, la VRF X está dentificada por el Route Distinguisher Y:Z, y que necesitamos que exporte esa información hacia mBGP y que desde ahí importe las etiquetas que necesitamos para comunicar dos sitios de un mismo cliente. También agregaremos una familia de direcciones a BGP que comunique el ruteo entre ambos PE para la VRF de cada cliente.

Cuando activamos una nueva instancia o VRF, el router puede ejecutar sus propios procesos de BGP, OSPF, RIP, ISIS, etc. y los utilizaremos para intercambiar rutas entre el cliente y el ISP, logrando que el cliente nos entregue la información de sus redes y nosotros la llevemos a los demás sitios del mismo cliente, estableciendo así una red privada con comunicación basada en MPLS. También indicaremos en cada interface a que VRF queremos que pertenezca.

IMPORTANTE: cuando asignas una interface a una VRF, se borra la configuración de la interface y deberemos volver a indicar la IP y demás características deseadas en dicho puerto.



Los routers P (2, 3 y 4) no requieren configuración adicional.

Ejemplo de los routers PE con dos clientes, las compañías blue y green que tienen un sitio cada una conectados ambos al PE 1, y dos sitios conectados al PE2:


router_1#sh runn | section vrf
ip vrf blue
 description Empresa Blue sitio 1
 rd 11:11
 route-target export 11:1
 route-target import 11:2
!
interface Ethernet1/0
 ip vrf forwarding blue

 ip address 10.11.0.1 255.255.255.248

router_1#sh runn | s bgp
router bgp 99
 bgp log-neighbor-changes
 neighbor 5.5.5.5 remote-as 99
 neighbor 5.5.5.5 update-source Loopback1
 !
 address-family vpnv4
  neighbor 5.5.5.5 activate
  neighbor 5.5.5.5 send-community extended
  neighbor 5.5.5.5 next-hop-self
 exit-address-family
 !
 address-family ipv4 vrf blue
  network 10.11.0.0 mask 255.255.255.248
  redistribute connected
 exit-address-family
ip bgp-community new-format

router_5#sh runn | s bgp
router bgp 99
 bgp log-neighbor-changes
 neighbor 1.1.1.1 remote-as 99
 neighbor 1.1.1.1 update-source Loopback1
 !
 address-family vpnv4
  neighbor 1.1.1.1 activate
  neighbor 1.1.1.1 send-community extended
 exit-address-family
 !
 address-family ipv4 vrf blue
  redistribute connected
  neighbor 10.12.0.2 remote-as 69000
  neighbor 10.12.0.2 activate
 exit-address-family
ip bgp-community new-format

router_1#sh bgp vpnv4 unicast vrf blue
BGP table version is 6, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 11:11 (default for vrf blue)
 *>i 10.10.10.2/32    5.5.5.5                  0    100      0 69000 i
 *>  10.11.0.0/29     0.0.0.0                  0         32768 i
 *>i 10.12.0.0/29     5.5.5.5                  0    100      0 ?

router_5(config-router-af)#do sh bgp vpnv4 unicast vrf blue
     Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 11:12 (default for vrf blue)
 *>  10.10.10.2/32    10.12.0.2                0             0 69000 i
 *>i 10.11.0.0/29     1.1.1.1                  0    100      0 i
 *>  10.12.0.0/29     0.0.0.0                  0         32768 ?

blue2#sh runn | s bgp (router cliente para probar)
router bgp 69000
 bgp log-neighbor-changes
 network 10.10.10.2 mask 255.255.255.255
 neighbor 10.12.0.1 remote-as 99

blue2#trace 10.11.0.1
Type escape sequence to abort.
Tracing the route to 10.11.0.1
VRF info: (vrf in name/id, vrf out name/id)
  1 10.12.0.1 [AS 99] 4 msec 5 msec 4 msec
  2 10.0.45.4 [MPLS: Labels 1406/1108 Exp 0] 4 msec 5 msec 4 msec
  3 10.0.34.3 [MPLS: Labels 1306/1108 Exp 0] 5 msec 5 msec 5 msec
  4 10.0.23.2 [MPLS: Labels 1202/1108 Exp 0] 5 msec 5 msec 4 msec
  5 10.11.0.1 [AS 99] 4 msec 5 msec 4 msec

router_5#sh ip route vrf blue

      10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
B        10.10.10.2/32 [20/0] via 10.12.0.2, 01:25:49
B        10.11.0.0/29 [200/0] via 1.1.1.1, 01:25:09
C        10.12.0.0/29 is directly connected, Ethernet1/0

L        10.12.0.1/32 is directly connected, Ethernet1/0

router_1#show ip route vrf blue

      10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
B        10.10.10.2/32 [200/0] via 5.5.5.5, 01:25:38
C        10.11.0.0/29 is directly connected, Ethernet1/0
L        10.11.0.1/32 is directly connected, Ethernet1/0
B        10.12.0.0/29 [200/0] via 5.5.5.5, 01:07:30

Es importante notar que las rutas internas al proceso de BGP tienen una distancia administrativa de 200, mientas que las externas (provenientes de otro AS, en este caso el cliente) tienen una distancia administrativa de 20.

La VRF green no está configurada, pero viendo el ejemplo no será difícil que lo intenten, y más adelante podremos ver la configuración completa y veremos también la manera de configurar protocolos de ruteo diferentes para cada cliente y redistribuirlos dentro del ISP en BGP para poder comunicar los diferentes sitios blue y green.
Descarga aquí las configuraciones completas de este laboratorio.

No hay comentarios. :

Publicar un comentario