Blog del grupo de investigación GRITS. Redes de próxima generación para el Internet del futuro, Fog Computing e Internet de las cosas para implementar nuestros diseños personalizados en nubes híbridas ciberseguras, en sistemas de almacenamiento a gran escala y comunicaciones de larga distancia.

26 Abril 2013 | Publicado por Editorial Team GRITS

Redes orientadas a servicios

protocol stack

Algunos padres de Internet como David D. Clark, Robert Braden, Scott Shenker o John Day llevan años haciendo hincapié en el funcionamiento poco óptimo de las redes actuales, argumentando que es demasiado inamovible, estático, poco configurable. Es difícil tanto la inclusión de nuevos protocolos que se adapten a los nuevos requerimientos de red y de usuario, como la adaptación de los ya existentes. De ahí que protocolos que no plantean cambios completamente incrementales en la red estén teniendo dificultades de implantación (como por ejemplo IPv6, pese a la necesidad por escasez de direcciones, o el uso global de otros protocolos de transporte que no sean TCP/UDP) .

Dentro de esta tendencia de añadir mayor capacidad de configuración de la red, conocida como Software-Defined Networking (SDN), han surgido diferentes aproximaciones, pero todas ellas tienen como objetivo una mayor separación de la capa de control respecto a la capa de datos. OpenFlow, por ejemplo, pretende la estandardización de un protocolo de control que permita configurar dinámicamente y de forma centralizada el reenvío de datos en los bridges y/o routers. Otros van más allá, y creen que la configurabilidad de la red no debe limitarse a un control de los flujos y que esta tendencia SDN nos lleva directamente a la completa virtualización de la red (Network as a Service / NaaS). Es importante no confundir con el concepto de virtualización de computadoras. NaaS pretende un paso más allá, disponiendo de toda una red física, con elementos distribuidos que son vistos como un todo, un conjunto de recursos de computación y de red, disponibles para su configuración bajo demanda del usuario. Ésta es la visión de compañías como por ejemplo VMWare (gracias a la adquisición de Nicira el verano pasado) o Arista, y están apostando fuerte por ello.

Pero en este artículo quería centrarme en las redes orientadas a servicio (y dejando el tema de la virtualización de la red para siguientes entradas). Las redes orientadas a servicio es una línea de SDN surgida antes que las comentadas anteriormente, aunque complementaria, pues sienta las bases de posibles métodos de virtualización de las redes, y podría hacer uso de OpenFlow para la coordinación de los elementos de red.

En esencia, la arquitectura orientada a servicios (Service Oriented Architecture), es un paradigma que define la arquitectura de software a partir de la modularización de funcionalidades en servicios y la combinación de ellos para dar soaun servicio final, más complejo.  Cierto es que la computación orientada a servicios no es algo especialmente novedoso, y está basada en los mismos conceptos que la computación orientada a componentes (CBC). Ambas parten de la división de un servicio complejo en funcionalidades más pequeñas (Atomic Services), las cuales deben tener unas interfaces de interacción bien definidas, realizar acciones concretas y bien acotadas, y un comportamiento auto-contenido, es decir, que la acción definida por un servicio atómico no dependa de otro (al menos no más allá de los datos que haya podido proporcionar previamente a través de la interfaz de entrada). Estos servicios pueden ser distribuidos en diferentes lugares, para después ser coordinados e invocados en un orden específico, dando lugar a un flujo de trabajo (workflow) determinado para ofrecer el servicio complejo. Este funcionamiento está ampliamente extendido en el ámbito de los Web-Services, los cuales se ayudan de lenguajes de definición de procesos guiados por reglas y requisitos de negocio para realizar el proceso de composición de los servicios.

¿Por qué no se puede aplicar los mismos conceptos de modularización en funcionalidades de red, y activar o desactivar características de forma dinámica (on Demand)?

¿Por qué siempre tenemos que realizar las conexiones utilizando los mismos protocolos si la red está formada por diferentes segmentos con características de canal muy diferentes?

¿Por qué estamos forzados a utilizar siempre (e incluso a veces por duplicado o triplicado) unas funcionalidades (seguridad, fiabilidad, sincronización, etc.) cuando a veces no las necesitamos ?

La idea de aplicar las arquitecturas orientadas a servicio a las redes tiene como objetivo separar funcionalidades básicas (p.ej. integridad de datos y control de errores, control de flujo, reenvío de paquetes, sincronización, mecanismos de seguridad), que están proveídas por diferentes elementos de red (o los extremos de la comunicación), y ubicarlas de forma dinámica en los diferentes dispositivos. Con esto conseguiríamos mejorar la eficiencia y reducir el consumo de los recursos red y reducir la redundancia de datos, seleccionando las funcionalidades sólo en caso de ser necesarias, bajo demanda. De esta forma, transformaríamos estas funcionalidades en servicios, independientes, fáciles de organizar y distribuir, y invocables remotamente mediante interfaces de control previamente definidas.

Algunos proyectos como SONATE (dentro del proyecto alemán G-LAB), ChoiceNet (liderado por Tilman Wolf, de la Universidad de Massachussets y con fondos de la NSF) o TARIFA (proyecto liderado por i2cat y con participación de La Salle R&D) han seguido esta línea.

Red demostraciónEn el caso de TARIFA, The Atomic Redesign of Internet Future Architecture, el cual hemos podido tener en La Salle participación directa, se definió una arquitectura basada en servicios y un conjunto básico de 21 servicios atómicos (Encoding and Signaling, Sequencing, Data Forwarding, Fragmentation and Reassembly, Access Control, Congestion Control, etc.). De éstos, en el proyecto finalmente sólo se implementaron algunos, haciendo una demostración sobre un escenario de 13 máquinas Linux (algunas actuando como routers otras como servidores o usuarios finales). Todas las máquinas constaban de una API de socket modificada, para configurar cuales de las funcionalidades/servicio atómicos se podrían activar en cada nodo.

colocacion serviciosUno de los principales retos fue la orquestación de estos servicios, es decir el proceso de decisión de donde serán ubicados estos servicios. Este proceso estuvo basado en una serie de reglas estáticas, que funcionaron correctamente colocando mecanismos de encriptación de datos y diferentes controles de error sólo en algunos segmentos de red, en función de la fiabilidad de los enlaces. A pesar de ello, hay que tener en cuenta que la prueba se realizó en un entorno limitado (en cuanto a número de servicios) y controlado (topología y características de red conocidas), y todavía queda mucho trabajo por hacer en el campo de la composición de servicios a nivel de red.

ETSI logoPor suerte, hay muy buenas iniciativas alineadas con esta mentalidad, como el recién creado grupo en Network Functions Virtualisation (NFV) de European Telecommunication Standardisation Institute (ETSI), que pretende la virtualización de las funcionalidades de red como pequeños componentes SW, orquestables sobre una infrastructura de red virtualizada. Extenderemos la visión y el trabajo inicial de este grupo en siguientes entradas.

 

Share

Comentarios

La verdad es que si en el post de IPv6 no quedaba claro el PARA CUÁNDO todo en IPv6, aquí se me antoja que es incluso una pregunta un tanto irrisoria...

Es un tema a seguir dentro del topic Future Internet, pero de ahí a etiquetar de legacy a la arquitectura TCP/IP es algo osado, no os parece?

Lo es. Es por eso que ninguna de estas nuevas tendencias en arquitecturas de red tiene sentido sin un plan de migración adecuado. En la misma entrada se comenta las dificultades de adopción de IPv6. SDN en general pretende ofrecer herramientas para hacer más sencilla la introducción de nuevos protocolos y nuevas formas de trabajar con la red. La cuestión es, que es necesario para llevar a cabo despliegues masivos del concepto SDN? Y en mi humilde opinión creo que la clave puede estar en las tecnologías de virtualización de red, que pueden cambiar en los próximos años la manera como administramos las redes.

Es interesante el cambio de paradigma que se propone para las redes en el futuro. El hecho de utilizar la misma arquitectura basada en capas de la torre OSI de los inicios de la red, hace que arrastremos una herencia que, a veces, parece que es perjudicial. Espero que con todos estos cambios de paradigma en el diseño de redes se deje un poco atrás esta herencia y se puedan crear redes más óptimas.

Muchas gracias por el artículo y por explicar tan bien este nuevo concepto que es un poco difícil de entender. Personalmente también creo que la virtualización y la implementación en redes privadas será el que impulsará este nuevo paradigma. Sin embargo, me pregunto si la gran flexibilidad que puede ofrecer el SDN, es la causa de una disminución de la eficiencia de la red, ya que, si lo he entendido bien, todo se debería procesar mediante software.

Como se denota a lo largo del artículo que ha escrito Ramón, lo que está claro es que la situación actual de muchos de los protocolos que se utilizan en las comunicaciones no están situados en una capa de la torre OSI concreta, sino que se sitúan entre medio como ahora MPLS (capa 2,5). Por lo tanto, este cambio de mentalidad y ver que se han empezado a desarrollar conceptos con esta "nueva" visión de despliegue de redes y forma de dar servicio a los usuarios es esperanzador. La composición de servicios es algo que, tarde o temprano, debería acabar implantándose aunque el proceso pueda ser largo.

A veces parece que avanzar en las redes es solo megas y megas y más megas y al final resulta que los cimientos de dichas redes se están quedando todos obsoletos de golpe.

En las últimas entradas se ha hablado de que IPv4 está obsoleto, Spanning Tree está obsoleto y ahora las redes estáticas y la torre OSI están obsoletas en cierto modo. Tengo curiosidad en ver cómo acaba todo esto y, sobretodo, ver cómo se consigue hacer una migración sin tirar todas las redes.

Parece bastante lógico el tener una arquitectura tan dinámica y en cierto modo abstracta y, por otro lado, definir funcionalidades como servicios del mismo modo que se está haciendo con otras "cosas" (tipo X as a Service).

Veremos en qué queda todo.

Gracias Ramón por este gran post. Necesitaba empezar a situar este concepto tan abstracto para mi de SDN y redes orientadas a servicios. Me ha servido para entrar un poco en la materia y poder empezar a trabajar con este concepto que trataré en mi Proyecto de Final de Carrera.

Añadir nuevo comentario

CAPTCHA
Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.
6 + 2 =
Resuelva este simple problema matemático y escriba la solución; por ejemplo: Para 1+3, escriba 4.