Capitulo II

44
2. CAPITULO II: MARCO TEÓRICO 2.1 INTRODUCCIÓN En las redes de datos, los equipos de conectividad disponen de dos elementos principales: el plano de control que usa información de señalización para tomar decisiones de control y el plano de datos encargado de la transmisión de los datos de usuario [49]. Tradicionalmente, en el plano de datos se ha estructurado una abstracción de capas, se ha logrado alcanzar una entrega confiable y la gestión para transportar una cantidad cada vez mayor y diversa de datos. En el plano de control, los protocolos de enrutamiento como BGP 2 y OSPF 3 realizan una gran cantidad de tareas para determinar hacia dónde tienen que ir los paquetes para llegar a su destino; pero cada vez, se exigen más y más tareas a este plano como la movilidad, la calidad del servicio, entre otros.

description

capitulo II completo

Transcript of Capitulo II

2. CAPITULO II: MARCO TERICO2.1 INTRODUCCINEn las redes de datos, los equipos de conectividad disponen de dos elementos principales: el plano de control que usa informacin de sealizacin para tomar decisiones de control y el plano de datos encargado de la transmisin de los datos de usuario [49].

Tradicionalmente, en el plano de datos se ha estructurado una abstraccin de capas, se ha logrado alcanzar una entrega confiable y la gestin para transportar una cantidad cada vez mayor y diversa de datos.

En el plano de control, los protocolos de enrutamiento como BGP2 y OSPF3 realizan una gran cantidad de tareas para determinar hacia dnde tienen que ir los paquetes para llegar a su destino; pero cada vez, se exigen ms y ms tareas a este plano como la movilidad, la calidad del servicio, entre otros.

Software Defined Network es una arquitectura que aparece como respuesta a una necesidad real, es la solucin para las demandas del plano de control usando software [3].

2.2 REDES DEFINIDAS POR SOFTWARE (SDN)La Figura 1.1 presenta una vista lgica de la arquitectura SDN, donde la inteligencia de la red est lgicamente centralizada en los controladores, los cuales mantienen una visin global de la red. Como resultado, la red aparece ante las aplicaciones de control como un solo switch lgico, lo que reduce la complejidad operativa y mejorar la escalabilidad del controlador.

2.2.1 ARQUITECTURA SDN 2.2.1.1 INFRAESTRUCTURA FISICAConformada por los PC que pueden ser fsicos o virtuales, los medios de transmisin y dems elementos fsicos que permiten el transporte de la informacin, adems de los equipos de conectividad como los routers y los switches que ejecutan el protocolo OpenFlow2.2.1.2 PLANO DE DATOSEl plano de datos es el encargado de la transmisin de los datos de usuario; se ha definido mediante abstracciones de capas (fsica, enlace de datos, red, transporte, sesin, presentacin, aplicacin modelo ISO/OSI52.2.1.3 PLANO DE CONTROLEncargado de usar la informacin de sealizacin para tomar decisiones de control. En la arquitectura SDN se define la abstraccin de capas que incluye desde la capa fsica hasta la capa aplicacin; en contraste con las arquitecturas de redes tradicionales, en las cuales se definan solo las tres primeras capas (fsica, enlace de datos, red). Se analizarn dos elementos fundamentales de este plano: el servidor controlador y las aplicaciones de control.

2.2.1.3.1 SERVIDOR CONTROLADORUn controlador centraliza toda la comunicacin que pasa por cada uno de los elementos de la red. Las aplicaciones de control que se ejecutan en el controlador determinan cmo los flujos de trfico van a comportarse en la red. Adems de usar directivas del protocolo OpenFlow, tiene una librera de software dedicada para los programas de control2.2.1.3.2 APLICACIONES DE CONTROLPermiten manejar los flujos basados en ciertos patrones en cuanto a seguridad, control de acceso, enrutamiento, gestin de ancho de banda, entre otros Se ampliar la informacin de las aplicaciones de control en la seccin 2.2.1.4 PROTOCOLO OPEN FLOWOpenFlow es la interfaz estndar definida para la estructuracin de la comunicacin entre los planos de control y de datos de los dispositivos de red compatibles en una arquitectura SDN. OpenFlow permite el acceso directo y la manipulacin del plano de control en los dispositivos de red, tanto fsicos como virtuales [6]. Se ampliar la informacin del protocolo OpenFlow en la seccin 2.3.2.3 PROTOCOLO OPEN FLOW2.3.1 INTRODUCCIN OpenFlow se ha convertido en la solucin ante la inexistencia de una interfaz abierta y libre para el plano de control, motivo por el cual los dispositivos de red ahora son considerados como cerrados y propietarios. El protocolo OpenFlow es necesario para mover el control de la red fuera de los switches, es decir, hacia un software de control lgicamente centralizado. OpenFlow se puede comparar con el conjunto de instrucciones de una CPU. Como se muestra en la Figura 1.2, el protocolo especifica las primitivas bsicas que pueden ser utilizadas para programar el plano de control de dispositivos de red, al igual que el conjunto de instrucciones de una CPU permite programar un sistema informtico.FIGURA 2 Tabla de flujo OpenFlow comparable con un set de instruccionesEl protocolo OpenFlow se implementa en los dispositivos de la infraestructura de red y en el controlador SDN. Utiliza el concepto de flujos para identificar el trfico de red basado en reglas predefinidas que pueden ser estticamente o dinmicamente programadas en el controlador. Adems, permite definir cmo el trfico debe fluir a travs de los dispositivos de red, basados en ciertos parmetros tales como los patrones de uso, aplicaciones y recursos.

Haciendo una comparacin con el enrutamiento actual basado en el protocolo IP que no proporciona un nivel de control, debido a que los flujos entre dos puntos finales deben seguir caminos a travs de la red independientemente de sus diferentes requerimientos; con OpenFlow se puede conseguir que la red sea programada en base a flujos, proporcionando un control extremadamente granular, permitiendo a la red responder ante cambios en tiempo real a nivel de aplicacin, usuario y sesin.

Las SDN basadas en OpenFlow pueden implementarse junto con las redes existentes, tanto fsicas como virtuales. Los dispositivos de red pueden soportar el reenvo de trfico basado en OpenFlow, as como el reenvo tradicional, lo que hace que sea muy fcil para los usuarios, que de manera progresiva introduzcan tecnologas SDN basadas en OpenFlow, incluso en ambientes de red de mltiplesproveedores. OpenFlow est siendo ampliamente adoptado mediante la implementacin de un firmware simple o algn software de actualizacin, que proporciona una ruta de migracin para aquellos segmentos de la red que necesiten la funcionalidad SDN

2.3.2 VERSIONES OPEN FLOW2.3.2.1 OPEN FLOW 1.1 Agrega el uso de mltiples tablas: La versin 1.0 solamente tena 1 tabla lo que restringa las capacidades del hardware. Ahora con la implementacin de mltiples tablas, se tiene la posibilidad de organizar cada tabla para una caracterstica aumentando el rendimiento y la escalabilidad. Grupos: Se pueden adicionar grupos de puertos con los que se pueden hacer acciones como redundancia.Soporte de etiquetas MPLS y VLAN: Estas capacidades adicionan flexibilidad en la programacin del plano de forwarding, ya que los paquetes proveen de ms informacin al controlador.Puertos Virtuales: Estos permite que OpenFlow pueda implementar virtualizacin de la red para mltiples clientes a escala.Fallo en la conexin del controlador : OpenFlow 1.0 ofrece un flujo de emergencia que en la prctica era difcil de implementar .La versin 1.1 se aade 2 modos en caso de desconexin del elemento de red :oEl modo seguro en el cual el switch sigue trabajando con los flujos que ya tiene establecidos.oEl modo de falla en el cual el switch desactiva el modo OpenFlow .

2.3.2.2 OPEN FLOW 1.2Extensin de soporte Match1: Elimina el tamao fijo que tenan los matchs y agrega nuevos campos. Soporte bsico IPV6: Con los campos adicionados en el match se empieza a generar soporte para IPV6.Cambia mecanismo de conexin al controlador: Los Switches se podrn conectara ms de 1 controlador.

2.3.2.3 OPEN FLOW Expande el Soporte sobre IPV6: Adiciona ms campos en el match.Estadsticas de los flujos: Al establecer un flujo, se puede agregar la opcin demedir y controlar la tasa de los paquetes.Tunnel-ID meta data: Agrega este campo en el match el cual expone el procesoPipeline 2de meta data a un puerto lgico.

2.3.3 SWITCH OPEN FLOWUn switch OpenFlow se fundamenta en una idea simple para su funcionamiento, la cual consiste en aprovechar el hecho de que la mayora de los switches y routers contienen tablas de flujo mediante las cuales implementan firewalls, NAT7, QoS, y para recopilar estadsticas. Mientras que cada tabla de flujo de los diversos proveedores presenta diferencias una de otra, se ha logrado identificar un conjunto comn de funciones que se ejecutan en muchos switches y routers de las cuales OpenFlow hace uso. La ruta de los datos en un switch OpenFlow consiste en una tabla de flujo, y una accin asociada con cada entrada de flujo.2.3.3.1 COMPONENTES La Figura 1.3 muestra los componentes de un switch OpenFlow.

Un switch OpenFlow consta de una o ms tablas de flujo, con las cuales se realiza las bsquedas de paquetes (matching) y su reenvo; y un canal OpenFlow con un controlador externo, el cual gestiona el switch a travs del protocolo OpenFlow, pudiendo agregar, actualizar y eliminar las entradas en las tablas de flujo.

El emparejamiento o match comienza en la primera tabla de flujo y puede continuar con las tablas de flujo adicionales. Las entradas de flujo comparan los paquetes en orden de prioridad con la primera coincidencia en una entrada en cada tabla que ha sido usada. Si se encuentra una entrada coincidente, las instrucciones asociadas con

Figura 1. 5. . Encabezado utilizado en los switches OpenFlow "Tipo

esta entrada especfica se ejecutan. Si una coincidencia no es identificada en una tabla de flujo, la salida depende de la configuracin del switch: el paquete puede ser enviado al controlador sobre el canal OpenFlow, el paquete puede descartarse o podra continuar a la siguiente tabla de flujo.2.3.3.1.1 TABLA DE FLUJO

Una tabla de flujo tiene asociada una accin con cada entrada de flujo, para indicarle al switch cmo procesar el flujo. Los componentes de las tablas de flujo OpenFlow son las entradas de flujo, las mismas que contienen los campos que indica la Figura

FIGURA 4

Cada entrada de la tabla de flujo contiene:

-Una regla, que define el flujo mediante el establecimiento de los valores en los diferentes campos de un encabezado a nivel de Ethernet, IP y TCP-Una accin, que define cmo los paquetes se deben procesar.-Estadsticas, que mantienen un registro del nmero de paquetes y bytes para cada flujo, y el tiempo transcurrido desde que a un paquete se le aplic la regla, con el fin de ayudar con la eliminacin de los flujos inactivos y a mantener las actualizaciones.En la primera generacin de switches OpenFlow, los switches "Tipo 0", que se mencionan posteriormente en la seccin 1.3.2.2, disponen de un encabezado como se muestra en la Figura 1.5. Un flujo TCP podra ser especificado por los diez campos, mientras que un flujo IP puede no incluir los puertos de transporte en su definicin.Cada switch OpenFlow contiene mltiples tablas de flujo y cada tabla de flujo contiene mltiples entradas de flujo. El procesamiento del pipeline8 de OpenFlow define cmo los paquetes interactan (se comparan) en las tablas de flujo (ver Figura 1.6); el paquete entrante se compara en la primera tabla de flujo, sino existen coincidencias, se actualiza el nmero de la tabla de flujo y se comparan con la n-sima tabla del pipeline, hasta encontrar una coincidencia, despus de la cual se ejecutar un conjunto de acciones sobre el paquete y se enviar al correspondiente destino; caso contrario se tienen dos opciones que dependen de la configuracin del switch, se enviar de vuelta al controlador o se descartar el paquete. Un ejemplo del procesamiento que recibe cada paquete a travs de un pipeline en una tabla en particular se muestra en la Figura Figura 1. 6. . Encabezado utilizado en los switches OpenFlow "Tipo

Los pasos realizados en el pipeline son: 1. El encabezado del paquete entrante se compara con la informacin contenidaen la tabla de flujo y se elige la coincidencia con la mayor prioridad.2. Cuando el paquete ha sido detectado (matched) se aplican distintas instrucciones:-Modificacin del paquete y actualizacin de los campos coincidentes.-Actualizacin del conjunto de acciones.-Actualizacin del metadato, que determina la coincidencia en el flujo.3. Envo del dato coincidente y su correspondiente conjunto de acciones a la siguiente tabla de flujo.

2.3.3.1.2 SECURE CHANNELEl canal OpenFlow permite la conexin del switch con un proceso de control remoto (servidor controlador). A travs de esta interfaz, el controlador configura y gestiona el switch, permitiendo que los paquetes y las reglas puedan ser enviados entre un controlador y el switch utilizando el protocolo OpenFlow. El canal OpenFlow se llama seguro ya que maneja el protocolo SSL9, necesario para que la comunicacin tenga mayor seguridad al momento de enviar los paquetes 2.3.3.2 CLASIFICACION DE LOS SWITCHES OPEN FLOWEs til clasificar a los switches OpenFlow en tres grupos:-Switches dedicados, que solo soportan OpenFlow y no son compatibles con el procesamiento normal de las capas 2 y 3.-Switches habilitados para OpenFlow, para propsitos generales de uso comercial, en los cuales el protocolo OpenFlow y las interfaces se han aadido como una nueva caracterstica a los switches tradicionales.-Switches Tipo 0, los cuales presentan los requerimientos mnimos para ajustarse a las funcionalidades de un switch OpenFlow.

2.3.3.3 SWITCHES OPEN FLOW DEDICADOSUn switch OpenFlow dedicado soporta nicamente los formatos de encabezados y acciones definidas en la especificacin del switch OpenFlow [42]. El switch contiene las rutas de datos para reenviar los paquetes entre los puertos, tal como se define en el servidor controlador. La Figura 1.8 muestra un ejemplo de un switch OpenFlow dedicado.

En la Figura 1.8, la tabla de flujo est controlada a distancia a travs de un canal seguro. Los flujos se definen ampliamente y se limitan solamente por las capacidades de la aplicacin en el controlador. Por ejemplo, un flujo puede ser una conexin TCP, con paquetes todos provenientes de una direccin MAC o IP en particular, o todos los paquetes con la misma etiqueta VLAN, o todos los paquetes desde el mismo puerto del switch, entre otros. Cada entrada de flujo tiene asociada una accin simple; las tres acciones bsicas que todos los switches OpenFlow dedicados deben soportar son:

-Reenviar el flujo de paquetes a un determinado puerto, para permitir que los paquetes se enven a travs de la red.-Encapsular y reenviar estos paquetes de flujo a un controlador. El paquete se entrega al secure channel, donde se encapsula para luego enviarlo alcontrolador, el cual decide si la entrada de flujo se debe aadir a la tabla de flujo para su procesamiento.-Descartar el flujo de paquetes. Puede ser utilizado para la seguridad en la red, frenar los ataques de denegacin de servicio, o para reducir el trfico debroadcast.2.3.3.4 SWITCHES HABILITADOS para open flowAlgunos switches, routers y puntos de acceso sern mejorados con la integracin de OpenFlow, aadiendo la tabla de flujo como lo especifica OpenFLow, el secure channel y el protocolo OpenFlow. Por lo general, la tabla de flujo volver a utilizar el hardware existente, mientras que el secure channel y el protocolo OpenFlow se adaptarn para poder ser ejecutados en el sistema operativo del switch. La Figura 1.9 muestra una red con un switch habilitado para OpenFlow y puntos de Acceso.Figura 7 . . Encabezado utilizado en los switches OpenFlow "TipoEn el ejemplo de la Figura 1.9, todas las tablas de flujo se gestionan usando el mismo controlador. El protocolo OpenFlow permite al switch ser controlado por dos o ms controladores para incrementar el rendimiento del sistema. Los switches habilitados para OpenFlow tienen la capacidad de aislar el trfico experimental (procesado por la tabla de flujo) del trfico de produccin que ser procesado por las capas 2 y 3 en sus pipelines. Hay dos maneras de conseguir esta separacin. La primera es aadir una cuarta accin:-Reenviar los paquetes pertenecientes a este flujo a travs del procesamiento normal del pipeline del switch.

La otra es definir una VLAN para separar el trfico de produccin del trfico Experimental2.3.3.5 SWITCHES TIPO 0Si un switch soporta los formatos de encabezado y las cuatro acciones bsicas mencionadas anteriormente, entonces se lo denomina un switch "Tipo 0".2.3.4 SERVIDOR CONTROLADOR SDNUn controlador centraliza el control de la comunicacin que pasa por cada uno de los elementos de la red. Se podra decir que funciona como un sistema operativo de red, ya que tiene una visin general de la misma al mantener la informacin de estado de cada elemento, adems las aplicaciones que se ejecutan en el controlador determinan cmo los flujos van a comportarse en la red. Cada elemento de la red se reporta o se comunica con el controlador siempre que sea necesario. El controlador maneja el protocolo OpenFlow y es mediante ste con el cual se comunica con los otros equipos. Una aplicacin de control le dice al controlador como procesar los flujos.2.3.5 Sofware servidor controlador En esta seccin se expondrn brevemente las herramientas de software existentes para el servidor controlador. Es importante mencionar que el anlisis en detalle de estas herramientas se realizar en el captulo dos, en donde se elegir el software idneo para la implementacin del prototipo. NOX es el controlador original de OpenFlow, inicialmente desarrollado por Redes Nicira; desde que fue liberado bajo la licencia GPL ha sido utilizado por decenas de grupos de investigacin. La versin ms reciente de NOX presenta un cambio de enfoque proporcionando un framework ms ligero y de alto rendimiento para el desarrollo del controlador usando C++ en Linux.Especficamente, se trata de una plataforma para la creacin de aplicaciones de control de red. Algunas de las caractersticas esenciales de NOX son:-Proporciona soporte y una API para OpenFlow 1.0.-Las reglas de definicin de trfico son escritas en C++.-Est dirigido a las recientes distribuciones de Linux (Ubuntu 11.10 y particularmente 12.04). -Incluye componentes que le permiten realizar algunas acciones como: descubrimiento de la topologa, aprendizaje de conmutacin y el anlisis de redes extendidas de conmutacin.-NOX proporciona una API de alto nivel para OpenFlow, as como a otras funciones de control de red. El ncleo o core de NOX proporciona aplicaciones con una vista abstracta de los recursos de la red, incluyendo la topologa de red y la ubicacin de todos los equipos detectados.

2.3.5.1 POXPOX es un controlador OpenFlow desarrollado para cubrir los requerimientos de las SDN usando Python en Windows, Mac OS o Linux. POX se desarroll a partir de NOX, y es uno de los frameworks de desarrollo constante y creciente, que permite escribir un controlador OpenFlow.

Adems de ser un framework para la interaccin con los switches de OpenFlow, est siendo usado para explorar nuevos prototipos de redes con distribucin, para la depuracin de las SDN y el diseo de controladores. Son Algunas de las caractersticas ms relevantes de POX son:-Interfaz OpenFlow basada en Python.-Los componentes muestran la seleccin de ruta de acceso, deteccin de la topologa, entre otras.-Est dirigido especficamente a Linux, Mac OS y Windows.-Interfaz grfica y herramientas de visualizacin similares a las de NOX.2.3.5.2 BeaconActualmente, los parmetros que se miden en un controlador OpenFlow son el rendimiento, la latencia, la variacin de los recursos de I/O y el bucle de procesamiento. Beacon ofrece una serie de paquetes (packages) que proveen funciones avanzadas, como la deteccin de la topologa, la determinacin de la ruta ms corta de capa 2, una interfaz web de usuario, entre otras, que estn habilitadas en la distribucin por defecto. Beacon es un controlador OpenFlow rpido, multiplataforma, modular, basado en Java, compatible con la programacin basada en threads10 y eventos. Algunas de las caractersticas ms relevantes son:

-Estable: Beacon (en su versin comercial), ha sido utilizado en muchos proyectos de investigacin y algunasimplementaciones de prueba.Actualmente es capaz de soportar 100 switches virtuales y 20 switches fsicos en redes de datos experimentales.Mltiple-plataforma: est escrito en Java y se ejecuta en muchas plataformas, desde servidores Linux multi-core hasta telfonos Android.-Cdigo abierto: est licenciado bajo una combinacin de la licencia GPL11 v.2 y la Licencia de la Universidad de Stanford.-Dinmico: los paquetes (packages) de cdigo en Beacon pueden ser inicializados, detenidos, actualizados e instalados en tiempo de ejecucin, sin interrumpir a otros paquetes (packages).-De rpido desarrollo: ya que es fcil de descargar y correr. Java y Eclipse simplifican el desarrollo y la depuracin de sus aplicaciones.-Rpido: debido a su caracterstica de multiproceso.-Interfaz web de usuario: opcionalmente incorpora al servidor web Jetty Enterprise12 y un marco de trabajo extensible con una interfaz de usuario personalizada.-Guas. La documentacin de Beacon incluye tutoriales y guas para ayudar a conseguir un funcionamiento productivo de inmediato, adems de un foro de usuarios activos.

La versin oficial de Beacon actualmente es la 1.0.0. En cuanto al sistema operativo, Beacon presenta un rendimiento dramticamente superior en una JVM (Java Virtual Machine) de 64 bits ejecutada sobre un sistema operativo de 64 bits. Para la implementacin de Beacon se recomienda utilizar la versin ms reciente de Java basada en Oracle JRE/JDK13; el uso de las versiones anteriores puede provocar una disminucin en su rendimiento.2.3.5.3 FloodlightEl controlador FloodLight es capaz de soportar y trabajar con switches fsicos y switches virtuales que manejen el protocolo OpenFlow. FloodLight ha sido desarrollado por una comunidad abierta de investigadores bajo licencia Apache yest basado en el lenguaje Java. El controlador FloodLight dispone de un conjunto de funcionalidades para controlar e investigar una red OpenFlow. La arquitectura del controlador consta de un mdulo principal, que es el responsable de escuchar los paquetes OpenFlow y realizar la distribucin de eventos; y, una serie de mdulos secundarios que se pueden registrar con el mdulo principal o de core para manejar esos eventos.

El controlador est previsto para manejar los paquetes y para instalar cualquier entrada en una tabla de flujo.

2.3.6 Aplicaciones de control en sdnEn la arquitectura SDN se pueden incluir varias aplicaciones para la gestin del plano de control, las cuales se ejecutan sobre el servidor controlador y corren en la capa aplicacin del plano de control. Estas aplicaciones permiten ofrecer soluciones completas de networking. Por ejemplo, para citar algunas de estas, se puede mencionar a aplicaciones para NAC (Network Access Control), para enrutamiento o para seguridad; a continuacin se realiza una breve descripcin de cada una.2.3.6.1 Control de acceso a la red (NAC)La cual permite controlar el acceso a la red, mediante el uso de reglas que permiten definir qu equipos tienen acceso a la misma.El control de acceso a la red (NAC) es un enfoque de la seguridad en redes de datos que intenta mediante restricciones de trfico reforzar la seguridad de la red de acceso.

El propsito de una solucin NAC es prevenir que equipos que no dispongan de antivirus, parches, o software de prevencin de intrusos accedan a la red poniendo en riesgo los datos. Adems de definir polticas, tales como tipos de trfico para permitir o denegar el acceso a ciertas reas de la red.

2.3.6.2 Enrutamiento Algunos proyectos de referencia ya desarrollados en cuanto a aplicaciones para realizar enrutamiento son:2.3.6.2.1 FlowscaleI Es un proyecto para dividir y distribuir el trfico a travs de mltiples puertos de un switch fsico. Mediante el uso de software permite el manejo de las especificaciones del plano de control y el hardware del switch para realizar el reenvo de paquetes. Algunas caractersticas principales de FlowScale:

Interfaz web para gestionar los switches conectados a FlowScale y administrar cmo el trfico se divide, adems ofrece una visin de las estadsticas y el estado del mismo.Polticas de configuracin para cuando el controlador OpenFlow enve las reglas, basadas en direccin IP, direccin MAC o el puerto TCP / UDP.Multiplataforma: FlowScale se basa en Java y puede ejecutarse en mltiples plataformas. Ha sido probado en diferentes distribuciones de Linux, as como Mac OS X.2.3.6.2.2 QUAGGAEs una suite de software de enrutamiento, que proporciona implementaciones de OSPF v2 y v3, RIP14 v1 y v2, y BGP-4 y hardware de los switches habilitados para OpenFlow. Quagga explora la posibilidad de mover por completo esta pila de protocolos hacia la lgica centralizada de los controladores utilizando el protocolo OpenFlow como canal nico de comunicacin con los sistemas de reenvo. Algunas caractersticas de Quagga son:Soporte de SNMP15 y de las MIB16.Quagga utiliza una arquitectura de software avanzada para ofrecer alto rendimiento y soporte multi-servidor.-Provee una interfaz de usuario interactiva para cada protocolo de enrutamiento.-Quagga se distribuye bajo la Licencia Pblica General de GNU.2.3.6.2.3 ROUTER FLOWEs un proyecto de cdigo abierto para proporcionar servicios de virtualizacin de hardware de enrutamiento IP en redes OpenFlow. RouteFlow permite determinar una ruta de migracin a travs del controlador SDN centrada en redes IP hbridas, adems de la innovacin del despliegue alrededor de enrutamiento IP y los diferentes niveles de la virtualizacin de la red.

RouteFlow est compuesto por una aplicacin para el controlador OpenFlow, un servidor RouteFlow independiente, y un entorno de red virtual que reproduce la conectividad de una infraestructura fsica.

2.3.6.3 SEGURIDADA continuacin se indican dos proyectos de referencia ya desarrollados en cuanto a aplicaciones para proveer seguridad en una red:2.3.6.3.1 FORTNOXFortnox permite comprobar los flujos y las contradicciones de las reglas en tiempo real, mediante la implementacin de un algoritmo de anlisis para el controlador NOX. Fortnox comprueba automticamente si las reglas de flujo violan las polticas de seguridad, pudiendo detectar contradicciones a las reglas, incluso en la presencia de flujo dinmico en un tnel utilizando reglas dentro de un determinado conjunto de acciones. Su objetivo es mejorar NOX, con una capacidad de hacer cumplir las restricciones de flujo de red (expresados como reglas de flujo) generados por las aplicaciones de seguridad de los switches OpenFlow en respuesta a la percepcin de las amenazas operacionales en tiempo de ejecucin.2.3.6.3.2 FRESCOFresco permiteacceder a la secuencia de comandos de flujo de red y a las estadsticas de toda la conexin, con el propsito de mitigar las amenazas detectadas por desarrollar nuevas reglas de restriccin de flujo en el controlador. Fresco, proporciona un framework de seguridad OpenFlow para el desarrollo de aplicaciones diseadas para facilitar el rpido diseo y composicin de mdulos de seguridad; pudiendo replicar una serie de funciones de seguridad esenciales, tales como cortafuegos, detectores de exploracin o detectores de intrusos2.3.7 VIRTUALIZACION DE LSO COMPONENTES DE Red2.3.7.1 IntroduccinLos modernos diseos de redes generalmente emplean la virtualizacin de sus componentes para mejorar la eficiencia de la red mediante la creacin de equipos basados en software ejecutados en un nico equipo fsico. La adopcin de un entorno virtualizado permite que los administradores tengan una mayor flexibilidad para cumplir con los objetivos operacionales de la red, separados de la infraestructura fsica subyacente. Desafortunadamente, mientras la informtica y el almacenamiento han aprovechado el paradigma de la virtualizacin, el campo del networking sigue siendo, en gran parte, desarrollado en el mundo fsico. Las redes se han convertido en un cuello de botella operacional significativo. Mientras que las tareas bsicas de enrutamiento se pueden implementar en topologas arbitrarias, la implementacin de casi todos los otros servicios de red (polticas de ruteo, ACL17, QoS) se basan en la topologa dependiente del estado de la configuracin. La gestin de la configuracin tiende a ser propensa a errores al aadir o sustituir equipos, al cambiar la topologa, al mover las ubicaciones fsicas o al manipular los fallos de hardware que generalmente requieren una configuracin manual. Las redes han soportado durante mucho tiempo implementaciones de virtualizacin muy primitivas como los enlaces virtuales (tneles), dominios de broadcast (VLAN), contextos de envo (VRF), y algunos componentes de recuperacin de fallos (VRRP). Sin embargo, estas implementaciones no han cambiado significativamente el modelo de funcionamiento de las redes.2.3.7.2 VirtualizacinLa virtualizacin de las funciones de red proporciona a los administradores de la misma un mecanismo para implementar y administrar los servicios de red. Tiene la capacidad de desacoplar las funciones de red, como por ejemplo, la traduccin de direcciones de red (NAT), las funciones de firewall, la deteccin de intrusos, el servicio de nombres de dominio (DNS), entre otras, de las aplicaciones de hardware; ya que ahora estas funciones sern ejecutadas nicamente en software.

Este concepto nace con el fin de acelerar los procesos de desarrollo de los servicios de red y permite a los administradores reducir la necesidad de comprar hardware especialmente diseado para funciones especficas, adems de reducir el espacio, energa de equipos y simplificar el despliegue y la gestin de los servicios de red.

Adicionalmente, permite reducir el tiempo de implementacin de los nuevos servicios que surgen debido a las cambiantes necesidades de los usuarios, tambin reduce los riesgos asociados con el despliegue de los mismos lo que permite una fcil evolucin y adaptacin.

El presente Proyecto pretende mostrar cmo se puede virtualizar el plano de controlde los switches; para que en lugar de interconectar directamente al hardware respectivo, el software de control disponga de uno o ms componentes lgicos para controlar el envo de paquetes.2.3.7.3 Componentes de una redLa red se puede considerar como si tuviera varias capas lgicas distintas:

-Plano de control: se refiere a los mecanismos bsicos utilizados para expresar la funcionalidad deseada de la red, ya sea a travs de la configuracin manual o el control programtico.-Plano de reenvo lgico: corresponde a la abstraccin lgica de la red.-Network Hypervisor: toma el plano de reenvo lgico y lo mapea en el hardware fsico subyacente.-Plano de reenvo fsico: se refiere al conjunto de elementos fsicos o lgicos de la red.

2.3.7.3.1 Plano de reenvi lgicoLa interfaz de este elemento lgico incluye:-Bsqueda de tablas: el elemento de reenvo lgico expone una o ms tablas de reenvo. Generalmente, esto incluir las tablas de capa 2, capa 3 y ACL. Las acciones de reenvo corresponden a las acciones disponibles en el plano de reenvo fsico, como la sobre-escritura de los encabezados, el encolamiento y filtrado de paquetes.-Puertos: este elemento lgico contiene un conjunto de puertos de reenvo lgicos. Estos puertos se pueden enlazar a puertos fsicos o a abstracciones de otro puerto que posea interfaces de la mquina virtual, VLAN o tneles.2.3.7.3.2 Network hypervisorEl network hypervisor se conecta con todos los switches en la red y mantiene una visin global de todos los recursos fsicos en la red y todos los planos de reenvo lgico configurados.El network hypervisor muestra dos enfoques (Figura 1.10): en la parte superior, dado por el plano de control, que presenta una vista de la red lgica con la funcionalidad deseada, y en la parte inferior, dado por un sistema centralizado de gestin de red que presenta una vista de la topologa de la red fsica.

2.3.7.3.3 Plano de reenvi fsicoLos elementos de reenvo son los switches basados en hardware o software. El network hypervisor es responsable de la configuracin de estos elementos de reenvo de modo que la red implemente el comportamiento deseado, como se especifica en el plano de reenvo lgico.

2.3.7.4 Virtualizacin del plano de controlEl plano de control se define tradicionalmente en el hardware, por lo que es una interfaz que ha evolucionado lentamente y sus abstracciones bsicas (tablas, puertos, contadores, paquetes de reenvo) no han cambiado significativamente con el tiempo.2.4 Sofware para la virtualizacinEn el presente Proyecto se instanciarn dos switches basados en software haciendo uso de mquinas virtuales, para lo cual se emplear Open vSwitch y Userspace OpenFlow Switch. Es conveniente indicar que la virtualizacin a nivel de capa enlace de datos y capa red se realizar a travs de este software.

2.4.1 Open vswitchOpen vSwitch es un software de cdigo abierto, diseado para ser utilizado como un switch virtual en entornos de servidores virtualizados. Es el encargado de reenviar el trfico entre diferentes mquinas virtuales en el mismo host fsico y tambin reenviar el trfico entre las mquinas virtuales y la red fsica.Open vSwitch es un software multicapa para switches, cuyo objetivo es la implementacin de una plataforma de calidad que soporta interfaces de gestin estndar y exponga las funciones de forwarding de forma programable.

Open vSwitch est bien adaptado para funcionar como un switch virtual en ambientes implementados con mquinas virtuales. Adems de exponer interfaces estndar de control y visibilidad con la capa de red virtual, fue diseado para soportar una distribucin a travs de mltiples servidores fsicos. Open vSwitch soporta mltiplestecnologas de virtualizacin basadas en Linux, incluyendoXen/XenServer20, KVM21 y VirtualBox22.

La mayor parte del cdigo est escrito sobre una plataforma independiente en C y es fcilmente portable a otros entornos. La versin actual de Open vSwitch es compatible con las siguientes caractersticas:

-Modelo estndar de VLAN 802.1Q con puertos troncales y de acceso.-NetFlow23, sFlow 24, y mirroring para una mayor visibilidad.-Configuracin de QoS (Quality of Service), GRE25, GRE sobre IPSec.-OpenFlow 1.0 o extensiones posteriores.

Algunas de las caractersticas de Open vSwitch se muestran en la Figura 1.112.4.1.1 Componentes open vswitchLos principales componentes son:

-Ovs-vswitchd, un demonio que implementa el switch, con un mdulo del kernel de Linux para conmutacin basada en flujos.-Ovsdb-server, un servidor de base de datos ligero que ovs-vswitchd consulta para obtener su configuracin.-Ovs-brcompatd, un demonio que permite a ovs-vswitchd actuar como un reemplazo momentneo del bridge de Linux.-Ovs-dpctl, una herramienta para configurar el mdulo del kernel del switch.-Ovs-vsctl, una utilidad para consultar y actualizar la configuracin de ovs- vswitchd.-Ovs-appctl, una utilidad que enva comandos para ejecutar los demonios de Open vSwitch.-Ovsdbmonitor, una herramienta GUI para la visualizacin remota de las bases de datos OVS y las tablas de flujo OpenFlow. Open vSwitch tambin proporciona algunas herramientas:

-Ovs-controller, un controlador OpenFlow bsico.-Ovs-ofctl, una utilidad para consultar y manejar switches y controladores OpenFlow.-Ovs-pki, una utilidad para crear y administrar la clave pblica de la infraestructura de switches OpenFlow.

Open vSwitch puede ser portado a diferentes sistemas operativos y plataformas de hardware. Adems se ejecuta en servidores fsicos y soporta la administracin remota de una manera que hace que sea ms fcil para los desarrolladores de las plataformas de virtualizacin. Open vSwitch proporciona dos protocolos abiertos que estn especialmente diseados para la gestin remota en ambientes de redes virtualizadas: OpenFlow, que expone estados de reenvo basado en flujos, y el protocolo de gestin de OVSDB26, que expone el estado del puerto del switch.

2.4.2 Userspace switch en vmwareUserSpace Switch en VMWare, permite experimentar la funcionalidad bsica del protocolo OpenFlow sin comprometer demasiados recursos de hardware, para ello se emplean mquinas virtuales que proporcionan una alternativa viable y el uso deL controlador de referencia OpenFlow.VMWare es una herramienta de virtualizacin, que permite crear una red de mquinas virtuales completas con switches y hubs virtuales con relativa facilidad.

Para la implementacin de redes SDN se pueden crear las mquinas virtuales correspondientes al controlador, al switch virtual y las PC clientes. Adems, permite la configuracin de diferentes topologas de red mediante la manipulacin de los modos de las interfaces de red en cada mquina virtual, siendo VMWare virtual switch y VMware virtual hub los usados para el desarrollo bsico de una red SDN.2.4.2.1 Controlador de referencia openflowEl controlador de referencia OpenFlow se denomina ovs-controller, es una implementacin simple que viene con la distribucin de referencia de Linux y puede gestionar a los equipos de conectividad a travs del protocolo OpenFlow, hacindolos funcionar como switches de capa 2 o inclusive como hubs. Utiliza el lenguaje de programacin C para definir las reglas de trfico 2.4.3