Con este artículo se pretende dar al lector una idea de una tecnología, hoy día emergente, de conmutación de paquetes. La llamada Multi Protocol Label Switching
(MPLS).
En Este protocolo es independiente del usado a nivel de red, con lo que funcionará adecuadamente tanto si la red usa IP, IPX o algún otro protocolo.
Lo que más interesa cuando aparece una nueva tecnología, como en en este caso, es conocer las respuestas a las siguientes preguntas:
¿Qué beneficios aporta?,
¿Rentabilizaré la inversión?
¿Me causa algún perjuicio el no implantarlo en mi red?
Unas respuestas rápidas a estas preguntas podrían ser las siguientes:
• ¿Qué beneficios aporta? La tecnología MPLS es capaz de integrar muchos servicios y funcionalidades sobre una única plataforma, permitiendo un uso óptimo de los recursos, una provisión de servicios más rápida y un mantenimiento más simple. Sus principales funcionalidades son la ingeniería de tráfico, la calidad de servicio y las redes privadas virtuales (VPN).
• ¿Rentabilizaré la inversión? Esta pregunta no tiene una respuesta única, ya que cada empresa tendrá su casuística particular. Cada caso debe ser analizado de forma singular para poder responder a esta cuestión.
• ¿Me causa algún perjuicio no implantarlo en mi red? Perjuicios no causa ninguno, pero con esta tecnología el escalado de las redes es más simple y barato y se podrán suministrar mejores calidades de servicio. Sin estas ventajas se será menos competitivo y el rendimiento de los recursos será inferior. Como añadidura, se podría plantear la obsolescencia de mi propia red en la natural evolución de las mismas.
Figura 1. Encapsulado MPLS
Introducción a MPLS
Este protocolo intenta simular la forma que tiene ATM de conmutar paquetes en función de unl identificador como en este caso es el par VPI/VCI.
Esta forma de conmutación se basa en crear una pequeña tabla formada por dos campos de entrada y dos campos de salida (VPI/VCI e interfaz). Esta forma de conmutar células se caracterizaba por tener unos retardos muy reducidos.
En el mundo IP, se vio que cada vez que llegaba un paquete IP a un router o encaminador, se procesaba toda su cabecera, a pesar de que, realmente, lo único que había que hacer con ese paquete era ver cual sería su siguiente salto, ya que para calcular el mismo no se necesita conocer toda la información que lleva la cabecera IP. Por ello, al final se optó por usar un método de conmutación similar al usado en ATM.
Conmutar en MPLS es mejor que conmutar en IP ya que conmutar por etiquetas es más eficiente que hacerlo por direcciones jerárquicas. La búsqueda en una tabla de un prefijo más o menos largo de coincidencia máxima es siempre más lento que la búsqueda de una coincidencia total de un patrón de bits corto.
Figura 2. Cabecera MPLS
IETF
Actualmente el IETF tiene siete RFCs relacionadas con MPLS y unos veintisiete drafts relacionados con MPLS. Para los lectores interesados se aconseja la RFC 3031: “Multiprotocol Label Switching Architecture”, que presenta los conceptos y bases de este protocolo. (Ver www.ietf.org)
Terminología de MPLS
Un breve muestrario de la terminología más importante sobre MPLS.
• Label o Etiqueta: Identificador lógico de significado local al router.. En la cabecera MPLS viene determinado por un campo de longitud fija.
• Label swap: Las etiquetas tienen significado local, con lo que si un paquete tiene que atravesar dos enlaces físicos usando MPLS, en el primer enlace usará una etiqueta y en el segundo enlace, usará una segunda etiqueta. A ese cambio de etiqueta se le llama ìlabel swapî.
• Label Switched Path (LSP): Camino entre dos routers usando etiquetas MPLS.
• Label Switching Router (LSR): Router con capacidad para MPLS.
• Label Stack: Capacidad de las etiquetas MPLS de apilarse. Con esto se consiguen jerarquías de etiquetas.
• Ingress Router: Router que introduce la cabecera MPLS.
• Egress Router: Router que elimina la cabecera MPLS.
• Transit Router: Router por el que atraviesa un paquete MPLS; no quita la cabecera pero hace label swapping en caso de ser necesario.
Figura 3. Ejemplo de red MPLS que atraviesa una red externa
Nociones de MPLS
MPLS es un protocolo que se sitúa entre el nivel de enlace y el nivel de red.
Como ejemplo vamos a ver como queda encapsulada una trama con Ethernet como protocolo de nivel de enlace e IP como protocolo para el nivel de red. Este ejemplo se muestra en la Figura 1.
Este protocolo está formado por una cabecera de treinta y dos bits. No tiene cola, sino solamente cabecera. Esta cabecera está formada por cuatro campos, gráficamente representados en la Figura 2.:
• Label: El valor de la etiqueta. Campo fijo de veinte bits.
• CoS: Tres bits que indican la calidad de servicio del paquete.
• Stack: Bit que indica si hay varias cabeceras MPLS.
• TTL: Time to Live. Campo de ocho bits.
El campo TTL tiene la misma función que en un paquete IP. Su utilidad reside en que cuando un paquete IP entra en un entorno MPLS, el campo TTL que en ese momento lleva el paquete IP se copia en esta parte de la cabecera MPLS. A partir de ese momento se usa de la misma forma que si fuese un paquete IP (se decrementa una unidad por cada salto). Al llegar al ìegress routerî, el valor que en ese momento está activo en la cabecera MPLS es el que se copia en el paquete IP. A partir de este momento la red se comportaría como IP pura.
Los bits de CoS (Class of Service), sirven para poder diferenciar distintos tipos de tráficos y favorecer un tipo de tráfico con respecto otro. Con tres bits tenemos ocho posibles valores para el tipo de servicio. Este campo se usa cuando la red entra en congestión, en cuyo caso los paquetes sufren retardos. La idea es minimizar el retardo en ciertos paquetes que son muy sensibles a él, como por ejemplo los de voz sobre IP, y penalizar con un poco de retardo el tráfico menos sensible como el WebHTTP, que realmente no tiene especificaciones importantes en este sentido.
El bit de Stack, indica si hay más cabeceras MPLS, o si la que se está usando en ese momento es la única. Las cabeceras MPLS se comportan como si estuvieran apiladas una sobre otra. El router siempre va a ver la que esté en lo alto de la pila y si se inserta una nueva cabecera, esta se pondrá encima de las anteriores.
Como se puede ver, ni los valores del CoS ni los de Stack ni los de TTL son útiles a la hora de determinar el próximo salto del paquete, pero sí son importantes a la hora de tratar el paquete en un nodo intermedio. Por ello fueron introducidos en la cabecera MPLS.
Por último está el campo de Label. Este campo tiene una longitud de veinte bits, con lo que puede haber hasta 220 = 1.048.576 valores. Realmente hay dieciséis valores menos, ya que desde el valor cero hasta el quince están reservados.
Merece la pena recordar el significado local de las etiquetas. Una etiqueta sólo tiene significado en un router. Por eso, el mismo paquete va cambiando esta etiqueta en cada salto que da (a no ser que ocurra una coincidencia y sean iguales en algunos saltos).
Figura 4. Tabla de etiquetas del Router D
Ejemplo
Se puede observar en la Figura 3, cómo el Router C envía un paquete con la etiqueta “32” al Router D. El Router D mira su tabla de equivalencias y decide que ese paquete se debe enviar con la etiqueta “372” hacia el Router E. Así, al Router E, le llega un paquete con la etiqueta “372”.
El proceso que se lleva a cabo en el Router D, se muestra reflejado en la Figura 4, donde aparece un campo de entrada, otro de salida y la operación a realizar.
Supongamos que el enlace entre el Router C y el D está conectado al puerto “1” de este último y que el enlace entre el Router D y el E está conectado al puerto “3” del Router D. Se puede ver que en la entrada, en puerto “1”, está la etiqueta “32” y como salida está el puerto “3” con la etiqueta “372”. Si se mira la tabla del Router D la operación a realizar es “swap” o cambio de etiqueta.
Puede ocurrir que el campo de salida esté vacío y que la operación sea “POP”. En este caso lo que se hace es retirar la cabecera MPLS.
Como se explicó anteriormente, MPLS nació para incrementar la velocidad de conmutación de los paquetes IP. El último router de un camino no conmuta el paquete, con lo que una forma de reducir cabeceras innecesarias es quitar la cabecera MPLS en el penúltimo Router. A esta operación se le denomina “penultimate pop-hoping”.
El efecto que produce esta operación es que el último salto que se produce en una red MPLS (si se sigue con el ejemplo), es que el Router E elimina la cabecera MPLS. Por lo tanto el enlace entre E y F no hablaría MPLS sino IP (en caso de ser este el protocolo del nivel de red).
Este efecto se marca poniendo como etiqueta de emisión la etiqueta reservada “3”. Si no se hiciese ìpenultimate pop-hopingî, la última etiqueta debería ser la “0”. Con estos datos, se puede observar que el valor “3” nunca irá como etiqueta en un paquete MPLS, ya que cuando el siguiente salto se marca con esta etiqueta, lo que se hace es eliminar la cabecera MPLS. Debemos tener en cuenta quecomo se ha dicho antes las etiquetas del cero al quince son de uso reservado.
El bit de “stack” sirve para ver si la etiqueta MPLS actual es la última de la pila o si hay más por encima. Gracias al uso de este campo se encapsula un paquete MPLS dentro de otro paquete MPLS. Su uso tiene sentido si se supone que se tiene una red MPLS que tiene que atravesar otra red que también habla MPLS y que pertenece a un organismo externo, pero al terminar de atravesar esa red queremos seguir hablando MPLS como si la red externa no hubiese existido. Prácticamente se trata de convertir toda la red externa en un medio de transmisión.
Esto se va a observar más claramente en la Figura 3, en la que se puede ver cual sería el proceso. Los Routers A, E y F pertenecen a una jerarquía y esta jerarquía atraviesa la formada por los Routers B, C y D.
Tal y como se ve en la Figura 3, el Router A envía el paquete con la etiqueta “32”. Al llegar este paquete al Router B, éste le añade una nueva cabecera que se pone encima de la puesta por el Router A. Usando sólo la etiqueta puesta por el Router B, se encamina este paquete a través de esta jerarquía. Se puede ver como empieza con la etiqueta “25” en el Router B. Al hacer el swapping en el Router C, se hace penultimate pop-hoping, por lo que en el enlace entre el Router C y el D ha desaparecido la etiqueta de la jerarquía superior quedando sólo la etiqueta previa existente. Al llegar al Router D, este hace swapping y cambia la etiqueta “32” por la “372”. Por último, el Router E vuelve a hacer penultimate pop-hoping.
Cabe pensar que una red que sólo tiene dos routers no tiene sentido que tenga MPLS, ya que al hacerse penultimate pop-hoping, nunca se van a transmitir las cabeceras MPLS. En este momento es en el que se debe hacer notar que la cabecera MPLS no sólo se usa para acelerar la conmutación de los paquetes en una red, sino que se puede usar también, por ejemplo, para diferenciar distintas VPNs.
Conclusiones y futuro
Se espera que con este breve artículo se hayan expuesto unas nociones básicas de MPLS. Esta tecnología, que está entrando con fuerza en las redes actuales, ayudará a optimizar los actuales recursos, a abaratar los costes de operación y mantenimiento y hará que sean innecesarios ciertos equipos adicionales que actualmente hay en las redes y cuyas funcionalidades son soportadas por MPLS.
Como tecnología muy nueva, MPLS está en constante evolución. De hecho, para el mundo óptico hay una versión más avanzada de MPLS llamada
GMPLS. |