lunes, 19 de enero de 2009

Multiprotocol Label Switching (MPLS)

Qué es

Wikipedia define MPLS como:
MPLS (siglas de Multiprotocol Label Switching) es un mecanismo de transporte de datos estándar creado por la IETF y definido en el RFC 3031. Opera 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 fue originalmente propuesto por un grupo de ingenieros de Cisco, con el nombre de "Tag switching", fue entregado a la IETF y luego del proceso de estandarización cambió de nombre.


Cómo funciona

Es de notar que la conmutación IP es realizada en la capa 3 y está basada en la dirección ip destino (en algunos casos también en la ip de origen); si miramos una tabla de enrutamiento sólo vemos la asociación "red destino" - "próximo salto".
Por ejemplo:
192.168.0.0/24 via 10.10.2.1
192.168.1.0/24 via 10.10.2.2
192.168.2.0/24 via 10.10.2.3
0.0.0.0/0 via 10.10.2.254

El enrutamiento en sí, impone restricciones y ciertos cuidados en nuestras redes, como por ejemplo que en la asignación de direcciones ip no haya colisiones (dos segmentos de red no pueden tener las mismas direcciones).
Lo interesante de MPLS es que la conmutación de paquetes está basada en etiquetas y se realiza entre la capa 2 y la capa 3 (no depende del encabezado ip), estas etiquetas son agregadas antes del ingreso a la red MPLS y son removidas cuando los paquetes salen de ella.
MPLS funciona adicionando a los paquetes un header MPLS, que contiene una o más etiquetas, esto es llamado "label stack".

Cada etiqueta contiene 4 campos:
* 20 bits - Valor de la etiqueta.
* 3 bits - Campo experimental reservado para usos futuros.
* 1 bit - Final de la pila. Si tiene el valor 1 entonces es la última etiqueta de la pila.
* 8 bits - Campo TTL (time to live)

Arquitectura de una red MPLS

Nota: esta imagen fue generada con el simulador "Open SimMpls".

  • LER (Label Edge Router): elemento que inicia o termina el túnel (agrega y quita las etiquetas). Es el punto de entrada/salida a la red MPLS. Un router de entrada se conoce como Ingress Router y uno de salida como Egress Router. Ambos se suelen denominar Edge Label Switch Router, ya que se encuentran en los extremos de la red MPLS.
  • LSR (Label Switching Router): elemento que conmuta etiquetas.
  • LSP (Label Switched Path): nombre genérico de un camino MPLS (para cierto tráfico o FEC), es decir, del túnel MPLS establecido entre los extremos. Se debe tener en cuenta que un LSP es unidireccional.
  • LDP (Label Distribution Protocol): un protocolo para la distribución de etiquetas MPLS.
  • FEC (Forwarding Equivalence Class): nombre que se le da al tráfico que se encamina bajo una etiqueta. Subconjunto de paquetes tratados del mismo modo por el conmutador.
Posibles usos

Los sectores que más provecho pueden sacar de MPLS, son los proveedores de servicio (carriers), las grandes empresas e instituciones gubernamentales (o sea, las grandes redes). Algunas empresas medianas pueden contratar un servicio de VPNs, basado en MPLS de algún proveedor de servicio, aunque la parte divertida la realiza el proveedor.
Los usos más importantes son:

MPLS-VPN
Con MPLS pueden realizarse robustas VPNs, más escalables y menos costosas que otras alternativas como IPSec, ATM o frame relay; y además agrega QoS.

Ingeniería de tráfico / QoS / Congestión
El enrutamiento IP tradicional suele llevar a sobrecargar los caminos más cortos (a veces caminos más largos pueden tener menor congestión y menor delay).
Respecto a este problema MPLS puede ser utilizado para:
- Maximizar la utilización de los enlaces y los nodos
- Garantizar el nivel de delay (respetar los SLAs)
- Minimizar el impacto de las fallasLos principales protocolos para realizar ingeniería de trafico con MPLS son CR-LDP y RSVP-TE.

Integración de redes diversas: ATM, Frame relay, IP, Ethernet y ópticas
Mantener una red, es más barato que mantener muchas. Con MPLS podemos armar una red de transporte universal.

Algunas consideraciones
  • Cuando se pensó la conmutación basada en etiquetas, se creía que podía ser mucho más rápida que la basada en los encabezados IP, ya que requiere menos procesamiento y es posible implementarla en hardware; pero el desarrollo de algunas tecnologías como los circuitos ASIC, o la conmutación basada en TCAM y CAM, han hecho posible que la conmutación basada en IP pueda ser tan rápida como la basada en etiquetas.
  • Las VPN basadas en MPLS suelen quedar confinadas a un único proveedor de servicio.
  • Una alternativa a MPLS es L2TPv3, aunque todavía está en borradores.
Referencias
  • RFC - http://www.ietf.org/rfc/rfc3031.txt
  • Simulador de redes MPLS, escrito en java y en Español - http://gitaca.unex.es/opensimmpls
  • Un tutorial interactivo bastante instructivo de Nortel - http://www.nortel.com/products/announcements/mpls/tooldemo.html
  • BGP/MPLS VPNs - http://www.ietf.org/rfc/rfc2547.txt - http://www.netcraftsmen.net/welcher/papers/mplsvpn.html
  • Varios artículos acerca de MPLS - http://www.convergedigest.com/tutorials/#MPLS
  • Wikipedia - http://en.wikipedia.org/wiki/Multiprotocol_Label_Switching
  • MPLS en Linux - http://mpls-linux.sourceforge.net/
Autor: Sebastian Serrano