M P L S
MPLS (del inglés Multiprotocol Label Switching) es un mecanismo de transporte de datos estándar. Funciona entre la capa de enlace de datos y la capa de red del modelo OSI. Fue diseñado para unificar el servicio de transporte de datos para las redes basadas en circuitos y las basadas en paquetes. Puede ser utilizado para transportar diferentes tipos de tráfico, incluyendo tráfico de voz y de paquetes IP.
MPLS reemplazó a Frame Relay y ATM como la tecnología preferida para llevar datos de alta velocidad y voz digital en una sola conexión. MPLS no solo proporciona una mayor fiabilidad y un mayor rendimiento, sino que a menudo puede reducir los costes de transporte mediante una mayor eficiencia de la red. Su capacidad para dar prioridad a los paquetes que transportan tráfico de voz hace que sea la solución perfecta para llevar las llamadas de voz sobre IP o VoIP.
Características básicas.
Estas son las principales características del protocolo MPLS.
-
Introduce una estructura orientada a la conexión en redes que originariamente no estaban orientadas a la conexión (redes IP).
-
Integra sin discontinuidades los niveles 2 (enlace de datos) y 3 (red) del modelo OSI, combinando las funciones de control de enrutamiento con efectividad en la conmutación.
-
Optimiza el enrutamiento, reduciendo notablemente la complejidad de los algoritmos.
-
Mantiene un de la comunicación entre dos nodos.
-
Permite introducir QoS en redes IP.
-
Optimiza el establecimiento de túneles en las VPN.
Los siguientes son elementos básicos de la arquitectura MPLS
-
LER (Label Edge Router o enrutador frontera de etiquetado): elemento que inicia o termina el túnel (extrae e introduce cabeceras). Es decir, el elemento de entrada/salida a la red MPLS. Existen tanto enrutadores de entrada como de salida de la red. Ambos suelen denominarse router frontera ya que se encuentran en los extremos de la red MPLS.
-
LSR (Label Switching Router o enrutador de conmutación de etiquetas)
-
LSP (Label Switched Path o intercambio de rutas por etiqueta) nombre genérico de un camino MPLS (para cierto tráfico o FEC), es decir, del túnel MPLS establecido entre los extremos. A tener en cuenta que un LSP es unidireccional.
-
LDP (Label Distribution Protocol o protocolo de distribución de etiquetas): un protocolo para la distribución de etiquetas MPLS entre los equipos de la red.
-
FEC (Forwarding Equivalence Class o clase de equivalencia de reenvío): nombre que se le da al tráfico que se encamina bajo una etiqueta. Subconjunto de paquetes tratados del mismo modo por el conmutador.

Los siguientes son elementos básicos de la arquitectura MPLS
-
LER (Label Edge Router o enrutador frontera de etiquetado): elemento que inicia o termina el túnel (extrae e introduce cabeceras). Es decir, el elemento de entrada/salida a la red MPLS. Existen tanto enrutadores de entrada como de salida de la red. Ambos suelen denominarse router frontera ya que se encuentran en los extremos de la red MPLS.
-
LSR (Label Switching Router o enrutador de conmutación de etiquetas)
-
LSP (Label Switched Path o intercambio de rutas por etiqueta) nombre genérico de un camino MPLS (para cierto tráfico o FEC), es decir, del túnel MPLS establecido entre los extremos. A tener en cuenta que un LSP es unidireccional.
-
LDP (Label Distribution Protocol o protocolo de distribución de etiquetas): un protocolo para la distribución de etiquetas MPLS entre los equipos de la red.
-
FEC (Forwarding Equivalence Class o clase de equivalencia de reenvío): nombre que se le da al tráfico que se encamina bajo una etiqueta. Subconjunto de paquetes tratados del mismo modo por el conmutador.
MPLS funciona anexando un encabezado a cada paquete. Dicho encabezado contiene una o más "etiquetas", y al conjunto de etiquetas se le llama pila o "stack". Cada etiqueta consiste en cuatro campos:
-
Valor de la etiqueta de 20 bits.
-
Prioridad de Calidad de Servicio (QoS) de 3 bits. También llamados bits experimentales.
-
Bandera de "fondo" de la pila de 1 bit.
-
Tiempo de Vida (TTL) de 8 bits.
Estos paquetes MPLS son enviados después de una búsqueda por etiquetas en vez de una búsqueda dentro de una tabla IP. De esta manera, cuando MPLS fue concebido, la búsqueda de etiquetas y el envío por etiquetas eran más rápido que una búsqueda en una base de información de enrutamiento, porque las búsquedas eran realizadas en el switch fabric y no en la CPU.
FUNCIONAMIENTO
Cuando un router corre MPLS, asigna un número único a cada prefijo en su tabla de enrutamiento. Ese número será un factor clave para hacer mas rápida la comunicación, ya que identifica cada prefijo individualmente. Una vez que los números son asignados, los mismos son comunicados a sus vecinos. El mensaje sería algo como:
“El prefijo X.X.X.X está en la línea Y en mi tabla de enrutamiento, asi que si quieres usarme a mí como tu siguiente salto hacia X.X.X.X, coloca una etiqueta (label) con el número Y encima del paquete para que pueda saltar a esa línea Y inmediatamente y reenvíe el paquete más rápido”.
El resultado es que los routers vecinos sabrán que solo necesitan usar ese número Y para ese prefijo, y los paquetes etiquetados con Y serán enrutados apropiadamente cuando sean enviados a través de ese router. El reenvío puede darse gracias a la acción de pasar un número entero (llamado label) entre dos routers. En otras palabras: cada router anuncia a sus vecinos el número de label local asignado a cada prefijo en su tabla de enrutamiento.

En la siguiente imagen se muestra otras de las etapas que están implicadas en el procesamiento de datos a través de los routers usando MPLS:

Ahora que tenemos labels, tablas, estructuras y reenvío claros, las siguientes serán las operaciones que se deben realizar para el envío de los datos.
MPLS trabaja dependiendo de 3 procesos para manejar paquetes. Esto se logra usando labels.
Las operaciones requeridas son:
-
Label Push o Imposition
-
Label Swap
-
Label Pop
Cuando esas operaciones son llevadas a cabo por un router, el mismo es llamado LSR (Label Switching Router - por sus siglas en inglés).
-
Label Push: Sucede cuando un paquete llega a un LSR y el mismo impone un label encima del paquete IP u otro label, en caso de que ya tenga un label encima. Una de las situaciones donde esto ocurre, se da cuando un paquete llega a una red MPLS y será transportado a través de la misma.
-
Label Swap: Se realiza si un LSR recibe un paquete etiquetado y el mismo será reenviado a su siguiente salto de la misma manera (etiquetado). Como cada LSR asigna un número de label localmente significativo para cada red destino o prefijo, reenviarlos significa reemplazar el label entrante con el label saliente anunciado por el siguiente salto en el binding remoto.
-
Label Pop: La operación de pop es implementada al remover el label del paquete, o en caso de que el paquete posea más de un label, remover el label superior de la pila de labels (un conjunto de labels apiladas es llamado label stack)
Si un PUSH sucede cuando un router recibe un paquete que va a atravesar la red MPLS, y un SWAP ocurre en cada salto intermediario para proveer el label del router siguiente, se requieren pasos adicionales cuando se requiere realizar POP en los paquetes. Existe un mecanismo llamado Penultimate Hop Popping, y es implementado para remover el label del paquete un salto antes de su destino. El LSR que tiene la red de destino conectada directamente o sumarizada, anuncia un label binding específico para ese prefijo haciendo uso del rango reservado de labels.
Entre los números usados para labels, el rango desde 0 hasta 15 está reservado, y algunos de esos números son usados por el protocolo mismo para llevar a cabo operaciones. Los siguientes son los labels más usados:
-
Label Número 3 or Implicit NULL: Este número de label es anunciado por el router final (el que está justo antes de la red destino) para que el vecino anterior realice el POP del label del paquete antes de enviarlo. El propósito es prevenir dobles búsquedas (lookups) en el LSR final. Si un paquete etiquetado llega, el LSR tendría que realizar una búsqueda en la LFIB para darse cuenta de que el label debe ser removido, y luego, otra búsqueda, pero esta vez en el FIB (IP lookup) para encontrar la información del siguiente salto y la interfaz de salida. Si el label es removido por elpenultimate hop LSR, se evita la primera (e innecesaria) búsqueda en el LSR final.

2. Labels Número 0 y 2 (IPv4 e IPv6) o Explicit NULL: retirar el label un salto antes ayuda a evitar una segunda búsqueda, también tiene sus desventajas. La información de QoS (Quality of Service por sus siglas en inglés) puede ser vaciada en el encabezado MPLS haciendo uso de los bits de TC (Traffic Class por sus siglas en inglés), pero, si el label es removido un salto antes, la información de QoS también se pierde. Este label se usa para evitar que ocurra el PHP (Penultimate Hop Popping). El label de explicit NULL sería anunciado por el LSR final (dependiendo de la versión de IP - 0 para IPv4 y 2 para IPv6) y el vecino anterior enviaría el paquete usando ese número. Una vez es recibido, el LSR final removerá el label implicit NULL y revisará la información de QoS para reenviar el paquete de acuerdo a la misma.

3. Label Número 1 o Router Alert: Este label es empleado para realizar troubleshooting en MPLS, ya que el mismo asegura que los paquetes sean enviados en modo “seguro” para garantizar su llegada al destino correspondiente.Cuando un LSR recibe un paquete con el label número 1, evitará el reenvío en hardware y será procesado por el CPU (process switched). El label número 1 no se muestra en la LFIB ya que el mismo es reenviado por software. El reenvío es un poco distinto del resto de los labels, porque el label 1 no es removido en cada salto que atraviesa. El LSR va a intercambiar los labels como usualmente se hace (haciendo uso del contenido de la LFIB) y luego el label 1 se colocara encima de los otros labels existentes antes de reenviarlo, para garantizar que será procesado por el CPU en el próximo LSR.
