Un L3VPN (Layer 3 Virtual Private Network) es un servicio proporcionado por los proveedores de servicios de telecomunicaciones, también conocidos como ISP, que utiliza la tecnología MPLS (Multiprotocol Label Switching) para ofrecer conectividad de red privada a nivel de capa 3 (red) sobre una infraestructura compartida.
Los L3VPN permiten a los clientes interconectar múltiples sitios a través del ISP, manteniendo el tráfico separado y seguro de otros clientes.
¿Cuándo utilizamos servicios L3VPN?
- Interconexión de Sucursales: Para conectar varias sucursales de una empresa con su sede central.
- Conectividad de Data Centers: Para interconectar múltiples centros de datos, facilitando la replicación y sincronización de datos.
Beneficios de los L3VPN:
- Seguridad: Los L3VPN mantienen el tráfico de diferentes clientes separado, asegurando la privacidad y la integridad de los datos.
- Escalabilidad: Facilita la adición de nuevos sitios sin grandes cambios en la infraestructura.
- Gestión Sencilla: Centraliza la gestión del enrutamiento en la red del proveedor, simplificando la configuración y el mantenimiento.
- Eficiencia: Optimiza el uso de los recursos de la red a través de la conmutación de etiquetas MPLS, mejorando el rendimiento.
Implementación de L3VPN:
Los servicios L3VPN se construyen utilizando sesiones BGP entre los routers de borde del proveedor (PE). Las vecindades BGP deben crearse usando la familia de direccionamiento llamada VPNv4, lo que significa que intercambiarán prefijos IPv4 que pertenecen a una VRF.
Cada PE debe crear una VRF para cada cliente, con un identificador local llamado Router Distinguisher (RD), usando el formato ASN:nn o IP-Address:nn.
Cada VRF es responsable de colocar la comunidad extendida llamada Route Target (RT) a los prefijos anunciados por la sesión BGP VPNv4 entre los PE, para poder identificar a qué VRF pertenece cada prefijo cuando es enviado por BGP hacia otros PE. El formato de los RT es el mismo que los RD: ASN:nn o IP-Address:nn.
Si el PE de origen envía prefijos con el RT 1:1 el PE de destino debe recibir prefijos con la comunidad extendida RT 1:1 para poder tener comunicación entre PE para la misma VRF.
En nuestro primer laboratorio vamos a comunicar los sitios del cliente usando las redes directamente conectados a cada PE.
Para este laboratorio usaremos la siguiente topología:
Los Router dentro del ISP son CSR1000v IOSv17.3.4a (csr1000v-universalk9.17.03.04a-serial.qcow2).
Los Router PE1, P y PE2 utilizan IS-IS como protocolo IGP para anunciar sus loopbacks, a continuación, la configuración básica de PE1, P y PE2:
PE1
|
P
|
PE2
|
!
hostname PE1
!
interface loopback 0
ip address 1.1.1.1 255.255.255.255
!
interface gigabitethernet 2
no shutdown
ip address 10.1.1.1 255.255.255.0
!
router isis IT4ME
net 49.0010.0010.0100.1001.00 metric-style wide
is-type level-2-only
!
interface gigabitethernet 2
ip router isis IT4ME
isis network point-to-point
!
interface loopback 0
ip router isis IT4ME
!
|
!
hostname P
!
interface loopback 0
ip address 1.0.0.1 255.255.255.255
!
interface gigabitethernet 1
no shutdown
ip address 10.1.1.2 255.255.255.0
!
interface gigabitethernet 2
no shutdown
ip address 10.2.2.1 255.255.255.0
!
router isis IT4ME
net 49.0010.0010.0000.0001.00 metric-style wide
is-type level-2-only
!
interface range gigabitethernet 1-2
ip router isis IT4ME
isis network point-to-point
!
interface loopback 0
ip router isis IT4ME
!
|
!
hostname PE2
!
interface loopback 0
ip address 2.2.2.2 255.255.255.255
!
interface gigabitethernet 2
no shutdown
ip address 10.2.2.2 255.255.255.0
!
router isis IT4ME
net 49.0010.0020.0200.2002.00
metric-style wide
is-type level-2-only
!
interface gigabitethernet 2
ip router isis IT4ME
isis network point-to-point
!
interface loopback 0
ip router isis IT4ME
!
|
Pruebas de conectividad desde Router P:
Las PC representadas en la topología son Router IOSv15 (vios-adventerprisek9-m.vmdk.SPA.156-2.T.qcow2)
A continuación, la configuración de los equipos PC1 y PC2:
PC1
|
PC2
|
configure terminal
!
hostname PC1
!
interface gigabitethernet 0/0
no shutdown
ip add 192.168.1.11 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 192.168.1.1
|
configure terminal
!
hostname PC2
!
interface gigabitethernet 0/0
no shutdown
ip add 192.168.2.12 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 192.168.2.1
|
PE1 y PE tienen creada la VRF A para cliente L3VPN y las interfaces conectadas a los equipos del cliente estarán asociadas a esta VRF
A continuación, las configuración y asignación de VRF para el cliente
PE1
|
PE2
|
vrf definition A
rd 10:1
address-family ipv4 unicast
route-target import 10:1
route-target export 10:1
!
interface gigabitethernet 1
no shutdown
vrf forwarding A
ip address 192.168.1.1 255.255.255.0
!
|
vrf definition A
rd 10:1
address-family ipv4 unicast
route-target import 10:1
route-target export 10:1
!
interface gigabitethernet 1
no shutdown
vrf forwarding A
ip address 192.168.2.1 255.255.255.0
!
|
Pruebas de conectividad desde cada PE hacia la PC del cliente:
Antes de crear el servicio L3VPN se requieres que los Router dentro del ISP hagan uso de conmutación por etiquetas, para este escenario utilizaremos el protocolo LDP para asignarle etiquetas a los IP de las loopback de cada PE las cuales se utilizaran como siguiente salto para los serivicos L3VPN
A continuación, la configuración de LDP en PE1, P y PE2:
PE1
|
P
|
PE2
|
mpls ldp router-id loopback 0
!
mpls ldp label
allocate global host-routes
!
interface gigabitethernet 1
mpls ip
!
|
mpls ldp router-id loopback 0
!
mpls ldp label
allocate global host-routes
!
interface range gigabitethernet 1-2
mpls ip
!
|
mpls ldp router-id loopback 0
!
mpls ldp label
allocate global host-routes
!
interface gigabitethernet 1
mpls ip
!
|
Verificación de las vecindades LDP
Router PE1 y PE2 establecerán una vecindad BGP VPNv4 para el intercambio de prefijos dentro de VRF, adicionalmente tendrán que definir la VRF dentro de BGP y definir que prefijos serán intercambiados sobre la vecindad VPNv4. Para nuestro escenario los PE pueden redistribuir las redes directamente conectadas o simplemente definir la red directamente conectada con el comando Network.
A continuación, la configuración de la sesión BGP VPNv4 entre los PE para intercambiar los prefijos de la VRF del cliente
PE1
|
PE2
|
router bgp 10
no bgp default ipv4-unicast
bgp router-id 1.1.1.1
!
neighbor 2.2.2.2 remote-as 10
neighbor 2.2.2.2 update-source loopback 0
neighbor 2.2.2.2 password ITaingin4me
!
address-family vpnv4 unicast
neighbor 2.2.2.2 activate
neighbor 2.2.2.2 send-community both
!
address-family ipv4 vrf A
network 192.168.1.0 mask 255.255.255.0
|
router bgp 10
no bgp default ipv4-unicast
bgp router-id 2.2.2.2
!
neighbor 1.1.1.1 remote-as 10
neighbor 1.1.1.1 update-source loopback 0
neighbor 1.1.1.1 password ITaingin4me
!
address-family vpnv4 unicast
neighbor 1.1.1.1 activate
neighbor 1.1.1.1 send-community both
!
address-family ipv4 vrf A
redistribute connected
|
Debemos verificar que la sesión VPNv4 este establecida y que se estén recibiendo prefijos de la VRF A en la sesión BGP para garantizar la conectividad de los sitios.
A continuación, la verificación de BGP VPNVv4
- Vecinos VPNv4
- Estado de la sesión VPNv4 con el PE remoto
- Rutas recibidas para la VRF A
- Atributos del prefijo recibido
En la salida de los comandos de verificación en PE1 observamos que tenemos vecindad VPNv4 con PE2, estamos recibiendo el prefijo 192.168.2.0 con el atributo RT 10:1, PE1 tiene configurado en su VRF A el import RT10:1 por lo tanto instalara en la tabla de enrutamiento de la VRF el prefijo 192.168.2.0 RT10:1 permitiendo así la comunicación de PE a PE.
Lo mismo pasaría con el PE2
A este punto las dos PC deberían tener comunicación entre ellas
Como observamos en la salida del comando traceroute en la PC1, para el envió de trafico se utilizan las etiquetas de MPLS, la primera etiqueta 17 es la asignada al PE2 como siguiente salto de la VRF A, y la segunda etiqueta 18 es la asignada a la VRF A en el destino.
Tenemos un servicio L3VPN básico operando perfectamente. En el siguiente blog vamos agregar Router de borde clientes (CE) para incluir enrutamiento estático dentro de la VRF