MPLS - Configuración

MPLS (Multiprotocol Label Switching) reenvía paquetes por etiquetas (labels) en lugar de hacer un lookup IP en cada salto, dentro del backbone de un proveedor. Su uso estrella es MPLS L3 VPN: un ISP transporta las rutas de muchos clientes de forma aislada usando VRFs en los routers de borde (PE) y MP-BGP entre ellos, mientras LDP distribuye las etiquetas en el core. La validación está en MPLS - Verificación y el diagnóstico en MPLS - Troubleshooting. Se apoya directamente en VRF-Lite - Configuración (los VRF) y en BGP.


Prerrequisitos

  • Un IGP funcionando en el core del proveedor (OSPF/IS-IS) con loopbacks alcanzables entre PEs (para el peering MP-BGP).
  • CEF habilitado (ip cef) — MPLS lo requiere.
  • Para L3 VPN: BGP entre los PE.

Nota: en este cuaderno los protocolos de enrutamiento (OSPF/EIGRP/BGP) están en pausa. La capa de core MPLS/LDP de abajo se puede configurar y entender por sí sola; la capa L3 VPN usa MP-BGP y redistribución, que se muestran para cuando reactives esos protocolos.


Conceptos previos (mínimos)

Roles de los routers:

  • CE (Customer Edge): router del cliente; habla IP normal, no sabe de MPLS.
  • PE (Provider Edge): router de borde del proveedor; tiene los VRF de los clientes y corre MP-BGP. Es donde ocurre la magia.
  • P (Provider core): routers internos del proveedor; solo conmutan etiquetas (label switching), no conocen las rutas de los clientes.

Dos capas independientes:

  1. Core MPLS (transporte): LDP distribuye etiquetas entre los routers del proveedor para llegar de un PE a otro.
  2. L3 VPN (overlay): cada cliente vive en su VRF en el PE; las rutas de los clientes viajan entre PEs por MP-BGP (VPNv4), etiquetadas para no mezclarse.

Piezas clave del VRF (ver VRF-Lite - Configuración):

  • RD (Route Distinguisher): hace únicas las rutas de cada cliente (evita solapamientos de IP entre clientes).
  • RT (Route Target): controla qué rutas se importan/exportan entre VRFs (define la topología de la VPN).

Comandos de configuración

Capa 1 — Core MPLS con LDP

! (Opcional) fijar LDP como protocolo de etiquetas
Router(config)# mpls label protocol ldp

! Router-id de LDP anclado a un loopback estable
Router(config)# mpls ldp router-id loopback 0 force

! Habilitar MPLS en cada interfaz del core
Router(config)# interface gigabitEthernet 0/0
Router(config-if)# mpls ip
  • mpls ip (por interfaz): activa MPLS y LDP en ese enlace del core.
  • mpls ldp router-id loopback 0 force: usa la loopback como identidad LDP (estable).
  • mpls label protocol ldp: fija LDP (por defecto en IOS moderno).

Capa 2 — MPLS L3 VPN en el PE

! 1) VRF del cliente (definición moderna)
PE1(config)# vrf definition CLIENTE_A
PE1(config-vrf)# rd 65000:1
PE1(config-vrf)# address-family ipv4
PE1(config-vrf-af)# route-target export 65000:1
PE1(config-vrf-af)# route-target import 65000:1
PE1(config-vrf-af)# exit-address-family
PE1(config-vrf)# exit

! 2) Interfaz hacia el CE, dentro del VRF
PE1(config)# interface gigabitEthernet 0/1
PE1(config-if)# vrf forwarding CLIENTE_A
PE1(config-if)# ip address 10.1.1.1 255.255.255.0
PE1(config-if)# exit

! 3) MP-BGP entre PEs (transporta las rutas VPN)
PE1(config)# router bgp 65000
PE1(config-router)# neighbor 10.0.0.2 remote-as 65000
PE1(config-router)# neighbor 10.0.0.2 update-source loopback 0

! 3a) Familia VPNv4 (peering entre PEs)
PE1(config-router)# address-family vpnv4
PE1(config-router-af)# neighbor 10.0.0.2 activate
PE1(config-router-af)# neighbor 10.0.0.2 send-community extended
PE1(config-router-af)# exit-address-family

! 3b) Familia IPv4 por VRF (rutas del cliente hacia BGP)
PE1(config-router)# address-family ipv4 vrf CLIENTE_A
PE1(config-router-af)# redistribute connected
PE1(config-router-af)# exit-address-family
  • vrf definition + rd + route-target import/export: definen el VRF y su pertenencia a la VPN.
  • vrf forwarding <vrf> en la interfaz: coloca la interfaz del CE dentro del VRF.
  • address-family vpnv4 + neighbor ... activate + send-community extended: el peering MP-BGP que lleva las rutas VPN (el send-community extended es imprescindible para que viajen los RT).
  • address-family ipv4 vrf <vrf> + redistribute ...: mete las rutas del cliente (conectadas, estáticas o el protocolo PE-CE) en BGP.

Añadido pro: si el CE corre un protocolo (OSPF/EIGRP) con el PE, en vez de redistribute connected se redistribuye ese protocolo del VRF a BGP y viceversa. El send-community extended es el error clásico que falta y deja la VPN sin rutas.


Dos ejemplos completos de configuración

Ejemplo 1 — Router P (core), solo conmutación de etiquetas

P1# configure terminal
P1(config)# ip cef
P1(config)# mpls ldp router-id loopback 0 force

! MPLS en todas las interfaces del core
P1(config)# interface gigabitEthernet 0/0
P1(config-if)# mpls ip
P1(config-if)# exit
P1(config)# interface gigabitEthernet 0/1
P1(config-if)# mpls ip
P1(config-if)# end
P1# copy running-config startup-config

Ejemplo 2 — Router PE con un cliente (VRF + MP-BGP)

PE1# configure terminal
PE1(config)# ip cef

! Core MPLS hacia el proveedor
PE1(config)# mpls ldp router-id loopback 0 force
PE1(config)# interface gigabitEthernet 0/0
PE1(config-if)# mpls ip
PE1(config-if)# exit

! VRF del cliente
PE1(config)# vrf definition CLIENTE_A
PE1(config-vrf)# rd 65000:1
PE1(config-vrf)# address-family ipv4
PE1(config-vrf-af)# route-target both 65000:1
PE1(config-vrf-af)# exit-address-family
PE1(config-vrf)# exit

! Interfaz hacia el CE en el VRF
PE1(config)# interface gigabitEthernet 0/1
PE1(config-if)# vrf forwarding CLIENTE_A
PE1(config-if)# ip address 10.1.1.1 255.255.255.0
PE1(config-if)# no shutdown
PE1(config-if)# exit

! MP-BGP hacia el otro PE
PE1(config)# router bgp 65000
PE1(config-router)# neighbor 10.0.0.2 remote-as 65000
PE1(config-router)# neighbor 10.0.0.2 update-source loopback 0
PE1(config-router)# address-family vpnv4
PE1(config-router-af)# neighbor 10.0.0.2 activate
PE1(config-router-af)# neighbor 10.0.0.2 send-community extended
PE1(config-router-af)# exit-address-family
PE1(config-router)# address-family ipv4 vrf CLIENTE_A
PE1(config-router-af)# redistribute connected
PE1(config-router-af)# exit-address-family
PE1(config-router)# end
PE1# write memory

(route-target both 65000:1 es el atajo de import + export con el mismo valor.)


Verificación rápida (comprobar que quedó bien)

La validación detallada está en MPLS - Verificación.

! Core MPLS/LDP
PE1# show mpls interfaces
PE1# show mpls ldp neighbor
PE1# show mpls forwarding-table

! L3 VPN
PE1# show vrf
PE1# show ip route vrf CLIENTE_A
PE1# show bgp vpnv4 unicast all summary

Qué deberías ver:

  • Vecinos LDP formados en el core (show mpls ldp neighbor).
  • La tabla de reenvío con etiquetas (show mpls forwarding-table).
  • La sesión MP-BGP VPNv4 arriba y las rutas del cliente en el VRF remoto.

Nota de origen: este tema se construyó desde el estándar de Cisco. En tus carpetas no había una diapositiva de comandos de MPLS. La capa de core (LDP) es utilizable ya; la capa L3 VPN usa MP-BGP y redistribución, que esperan a que reactives BGP.