Decoupling state from control in software-defined networking

Las redes definidas por software (SDN) aparecen como solucion a las limitaciones de las redes tradicionales. En SDN el control se extrae de los dispositivos del plano de datos y se centraliza a un nuevo dispositivo llamado controlador. La centralizacion del control permite tener una vision y gestion global de la red, sin embargo el controlador se ha de disenar con cuidado para que sea escalable. Normalmente, un controlador centralizado logicamente se despliega sobre una infraestructura distribuida fisicamente, en parte haciendo uso de una base de datos que almacena el estado de la red. Las aplicaciones de control que se ejecutan sobre el controlador modifican este estado conforme a sus politicas de control o como reaccion a eventos en la red. En respuesta, el controlador programa el plano de datos para reflejar estos cambios en el estado. Las propuestas SDN existentes consideran arquitecturalmente el estado como parte del controlador. Esta tesis, sin embargo, defiende que el estado de la red puede ser un elemento por si mismo, separado del controlador. De la misma manera que originalmente SDN separo el plano de control del plano de datos, esta tesis abre el camino para explorar la separacion de estado y control. Esta separacion conceptual hace posible escalar estado y control por separado y permite centrarse de manera individual en las funcionalidades y requerimientos de cada uno. Esto sirve de ayuda cuando el control tiene que ser asincrono y/o cuando el control tiene que ser descentralizado. Para esos dos escenarios, esta tesis describe dos arquitecturas motivadas por casos de uso concretos. Por un lado, cuando los dispositivos del plano de datos no estan siempre disponibles, necesitan comunicarse con el controlador de manera asincrona. Este escenario se da con dispositivos de red finales (moviles, routers domesticos, etc) que se conectan transitoriamente a la red y/o cambian de conexion con frecuencia. Este escenario dificulta que el controlador programe de manera pro-activa el estado en estos dispositivos. Asi pues, para integrar estos dispositivos en despliegues SDN, esta tesis aboga porque el controlador almacene el estado en una base de datos independiente, separada del controlador, a la que los dispositivos acceden directamente para obtener el estado que necesiten cuando lo necesiten. Siguiendo esta idea, proponemos una arquitectura SDN para dispositivos finales basada en un controlador distribuido con una interfaz declarativa hacia las aplicaciones de control y en una base de datos con una interfaz sin conexion y bajo demanda hacia el plano de datos. Por otro lado, la centralizacion de SDN presenta varios desafios mas alla de la escalabilidad del controlador. En concreto, la senalizacion de control requerida introduce una latencia adicional y la agregacion de la informacion oculta los detalles locales. Esta centralizacion resulta inadecuada cuando se necesita un control local preciso con minima latencia. Este es el caso de la virtualizacion de funciones de red (NFV) en redes de operadores. Para ese escenario esta tesis describe una arquitectura donde el estado permanece centralizado pero el control se descentraliza y mueve cerca del plano de datos. Se busca equilibrar la descentralizacion de las redes tradicionales y la centralizacion de SDN. En contraste con los despliegues SDN existentes, el control esta distribuido por la red pero federado y coordinado gracias a la base de datos central. En las dos arquitecturas descritas usamos el Protocolo de Separacion de Localizacion e Identidad (LISP) para el intercambio de estado, por tanto otra contribucion de esta tesis es analizar LISP como protocolo SDN. En la segunda parte de esta tesis profundizamos en las implicaciones de desplegar SDN para nodos finales. Particularmente, analizamos LISP en entornos de movilidad junto con su problematica en terminos de privacidad y presentamos OpenOverlayRouter, un software para despliegues SDN basados en LISP.