ESTADO DEL ARTE
REDES DEFINIDAS POR SOFTWARE (SDN)
ANDRÉS FELIPE RUIZ
UNIVERSIDAD CATÓLICA DE PEREIRA FACULTAD DE CIENCIAS BÁSICAS E INGENIERIA PROF. INGENIERÍA DE SISTEMAS Y TELECOMUNICACIONES
PEREIRA, NOVIEMBRE 2014
ESTADO DEL ARTE
REDES DEFINIDAS POR SOFTWARE (SDN)
ANDRÉS FELIPE RUIZ
Documento presentado en la asignatura de Proyecto de Grado como nota final al Ingeniero Néstor Álzate
UNIVERSIDAD CATÓLICA DE PEREIRA FACULTAD DE CIENCIAS BÁSICAS E INGENIERA PROF. INGENIERÍA DE SISTEMAS Y TELECOMUNICACIONES
PEREIRA, NOVIEMBRE 2014
NOTA DE ACEPTACIÓN
_____________________
_____________________
_____________________
_____________________
_____________________
_____________________
_____________________
_____________________
__________________________
Firma del Presidente del Jurado
_________________________
Firma del Jurado
__________________________
Firma del Jurado
Pereira, noviembre de 2014
AGRADECIMIENTOS
En primera instancia, agradezco a Dios por darme la facultad e inteligencia para llegar a esta etapa de mi vida, y por brindarme la oportunidad de pertenecer a esta grandiosa Universidad.
A la Universidad Católica de Pereira que mediante sus docentes e infraestructura en general nos brinda su apoyo para fortalecer nuestros conocimientos como estudiantes y por hacer de nosotros cada día mejores, y permitieron que nos sintiéramos respaldados y adaptados a los principios que tiene la universidad como institución y su visión del ser humano. También por la oportunidad de poner en práctica los conocimientos adquiridos y evidenciar la coherencia entre teoría y práctica.
A mi familia por el acompañamiento constante con el único fin de llegar a esta meta propuesta y con la convicción de ser mejores personas y sentirse orgullosos de los objetivos logrados.
DEDICATORIA
A Dios y a mi familia, quienes me motivan a ser cada día mejor persona, también quiero agradecer al ingeniero, Néstor Álzate, que con su grupo de trabajo donde con dedicación se logró sacar el máximo provecho de toda la carrera aprendiendo cosas muy importantes que ayudaron a mi crecimiento como persona y profesional.
RESUMEN
La idea de las redes definidas por software (SDN), es proporcionar una configuración más eficiente de mejor rendimiento y mayor flexibilidad para dar la apertura a nuevos diseños innovadores de la redes, en este documento se examina el estado del arte de las SDN ofreciendo una perspectiva histórica de las redes programables desde las ideas iniciales a los acontecimientos actuales.
Luego presentamos la arquitectura SDN y el protocolo Openflow, se discuten alternativas actuales para implementación de pruebas SDN basadas en protocolos y servicios, examinando las aplicaciones actuales y futuras de las SDN, en la exploración de las diferentes líneas de investigación prometedoras de las SDN.
Descriptores
Redes, protocolos comunicación, ONF.
2
ABSTRACT
The idea of programmable networks (SDN) is positioned to provide more efficient configuration, better performance, and higher flexibility to accommodate innovative network designs, this document surveys the state-of-the-art in programmable networks with an emphasis on SDN. We provide a historic perspective of programmable networks from early ideas to recent developments. Then we present the SDN architecture and the OpenFlow standard in particular, discuss current alternatives for implementation and testing of SDN-based protocols and services, examine current and future SDN Applications, and explore promising research directions based on the SDN.
Descriptores
Network, Communications protocol, ONF.
1
TABLA DE CONTENIDO
RESUMEN ... 1
TABLA DE ILUSTRACIONES ... 3
CONTENIDO DE TABLAS ... 4
INTRODUCCIÓN ... 5
1. PROPUESTA ... 6
1.1 Situación problemática ... 6
1.2 OBJETIVOS ... 7
1.2.1 Objetivo general ... 7
1.2.2 Objetivos específicos ... 7
1.3 Problema ... 8
1.4 Aporte práctico ... 9
1.5 Aporte teórico ... 10
2. MARCO TEÓRICO ... 11
2.1 Antecedentes ... 11
2.3 Marco conceptual ... 20
2.4 Alcance ... 25
2.5 Marco contextual ... 26
3. METODOLOGÍA ... 27
3.1 Metodología ... 27
4. CONTEXTUALIZACIÓN SDN ... 28
4.1 Introducción SDN ... 28
2
4.2 Arquitectura SDN ... 30
4.2.1 Interfaces ... 31
4.2.2 Controladores (The New Norm for Networks, 2013) ... 39
4.3 Capas Arquitectura SDN ... 43
4.3.1 Capa de infraestructura ... 43
4.3.2 Capa de Control ... 52
4.3.4 Protocolo Openflow ... 64
4.4. Implementación SDN... 74
4.5 Futuras investigaciones ... 78
4.6 Investigaciones ... 80
4.7 Aplicaciones SDN ... 82
4.8 Problemas presentes en las SDN ... 87
4.9 Tendencias de las SDN ... 89
5. Herramienta simulación MININET WORKFLOW ... 93
6. CONCLUSIONES ... 102
7. BIBLIOGRAFIA ... 104
3
TABLA DE ILUSTRACIONES
FIGURA 1. Resumen De las Redes Programables. ... 16
FIGURA 2. Comparación de una red tradicional y una red SDN ... 28
FIGURA 3. Arquitectura SDN ... 30
FIGURA 4. Flujos identificación openflow L1-L4. ... 34
FIGURA 5. Capas arquitectura SDN ... 43
FIGURA 6. Conexión de una topología red con los medio de transmisión ... 44
FIGURA 7. Dispositivo Switch ... 44
FIGURA 8. Capa de control... 52
FIGURA 9. Muestra el diseño lógico para lenguajes de programación de alto nivel para aplicaciones SDN. ... 52
FIGURA 10. Capa de Aplicaciones ... 60
FIGURA 11. Modelo Openflow ... 64
FIGURA 12. Muestra los componentes principales de un switch basado tecnología openflow ... 66
FIGURA 13.Cabeceras de los flujos de datos ... 66
FIGURA 14.Envio de paquetes ... 67
FIGURA15. Proceso de los paquetes en un flujo ... 68
FIGURA 16. Entrada en la tabla de flujos ... 69
FIGURA 17. Cabecera de los mensajes ... 70
FIGURA 18. Encabezado de flujos en un switch. ... 70
FIGURA19. Ejemplo de una red dispositivos habilitado para OpenFlow. ... 71
FIGURA 20. Control centralizado y control distribuido ... 73
4
FIGURA 21. Comparación de una red tradicional y una red con SDN ... 75
FIGURA 22. Ejemplo procesamiento de paquetes router programable NetFPGA. 81 GRÁFICA 23. Link de datos para posición de vuelo aeronáutico ... 86
FIGURA24. Tecnologías SDN con IPV6 ... 91
FIGURA 25. Red creada en Mininet ... 97
FIGURA 26. Ejemplo escalabilidad de Mininet ... 99
FIGURA 27. Comparación de topologías ... 99
FIGURA 28. Funciones básicas mininet respecto al tiempo ... 100
FIGURA 29. Programas miniedit.py y consoles.py ... 101
CONTENIDO DE TABLAS TABLA 1. Software que soporta Openflow ... 32
TABLA 2. Lenguajes de programación SDN ... 37
TABLA 3. Lenguajes de Programación para SDN ... 41
TABLA 4. Resumen Futuras Investigaciones ... 78
TABLA 5. Resumen de las Diferentes Investigaciones (OpenFlow Enabling Innovation, 2011), ( k.a .thang murugan, 2013) ... 80
TABLA 6. Resumen de las aplicaciones SDN ... 82
5
INTRODUCCIÓN
Debido a los avances que hoy en día se tiene respecto a las comunicaciones, se evidencia un crecimiento muy significativo en las redes las cuales facilitan la interacción entre los usuarios, siendo este un elemento fundamental para enfrentar la saturación que se presentan en los medios de comunicación y luego adaptados a una necesidad específica.
El mercado actual muestra el aumento de compañías donde la tecnología es participe de este crecimiento global y se cuenta con excelentes recursos que a su vez no son suficientes para la optimización. De hecho en la actualidad se puede contar con el desarrollo de nuevas tecnologías tanto a nivel de hardware como de software aplicado a las redes, aunque sus conocimientos se centralizan en las mejoras físicas, dejando ciertos parámetros a nivel de software ya establecidos.
En el presente trabajo se busca mostrar de qué forma las redes definidas por software (SDN) pueden aportar en la mejora de la optimización para el control del flujo de datos, en un sistema de redes de comunicación.
6
1. PROPUESTA
1.1 Situación problemática
En la actualidad las redes se han convertido en un factor crítico en el crecimiento de las comunicaciones, de la misma manera la necesidad de poder optimizar la transmisión de información de una forma ágil y masiva, en donde se requiere contar con elementos cuya infraestructura sea lo suficientemente idónea para la administración de los datos de una forma eficiente. La posibilidad de implementar de forma alterna herramientas de software que se adapten como funcionalidad en los sistemas de redes de la actualidad, de esta forma se tornará más agradable y óptima para la administración de recursos que se encargan de controlar el flujo de datos. Las redes definidas por software facilita y mejora la transmisión de información en tiempo real, además la alternativa de usar aplicativos API en lugar de depender de los parámetros estándares de los fabricantes de dispositivos de comunicación.
7 1.2 OBJETIVOS
1.2.1 Objetivo general
Estado del arte de las redes definidas por software (SDN); analizando ventajas y desventajas de su implementación.
1.2.2 Objetivos específicos
Establecer el estado de las diferentes investigaciones existentes respecto a las SDN.
Establecer las referencias bibliográficas que condense los aspectos más relevantes relacionados con las redes definidas por software.
Determinar los requerimientos y características para la implementación de SDN.
Documentar toda la información obtenida durante el desarrollo del proyecto.
8 1.3 Problema
El desarrollo de dispositivos móviles, la virtualización de dispositivos de red y el auge de servicios en la nube (internet) son algunas de las tendencias que en la actualidad existen para la implementación de las SDN, además del crecimiento acelerado de la trasmisión de datos donde cada vez se hace más congestionado el flujo de información, y en ocasiones los dispositivos de hardware encargados de hacer el empalme de transmisión se saturan, causando así retrasos y sobre posición de los datos. No es extraño que la capacidad de los sistemas de comunicación no se vea optimizada en su totalidad, la idea es dar a conocer este concepto para que de esta forma se aproveche al máximo las ventajas que este sistema de administración ofrece para controlar los paquetes datos en las diferentes estructuras de redes de la actualidad.
9 1.4 Aporte práctico
Contar en la actualidad con dispositivos que permiten un buen desempeño en la distribución de las redes ha permitido mejorar notablemente el uso adecuado de la información. En la utilización de estos recursos tecnológicos se pueden prestar mejores servicios al usuario final, y en la posibilidad de que este desarrollo se pueda llevar a cabo de una manera íntegra se podrá usar como alternativa de las nuevas tendencias de administración de redes , que a la vez conllevan a conocer herramientas que permitan mejorar tecnológicamente la transmisión de información y poder ser presentada como propuesta en la mejora de la infraestructura lógica de las redes actualmente existentes. Si se observa el desempeño del tráfico de datos en esta infraestructura por medio de la aplicación de simuladores se puede ver el comportamiento de la red durante la transmisión de paquetes de las estaciones de trabajo al servidor principal, así se puede identificar si se presenta algún retraso en la transferencia y ofrecer mejores alternativas para el flujo eficiente de datos. Aunque los datos que viajan a través de la red en ocasiones son sobrecargados, y los servidores actuales poseen las capacidades necesarias para soportar las comunicaciones, se puede encontrar ocasiones donde se denotan colapsos de tiempo causadas por alguna actualización o cambio en aplicativos que se ve reflejado en tiempo real. De esta manera haciendo buen uso de los canales los cambios no serían notables para los funcionarios y por defecto tampoco para el usuario final. Es una conceptualización de que las nuevas tecnologías aplicables a redes pueden contribuir en gran parte al crecimiento empresarial de las compañías existentes.
10 1.5 Aporte teórico
Las compañías más importantes de redes y todos aquellos involucrados en el desarrollo de tecnologías que buscan como mejorar la velocidad , calidad y la cobertura de todos los servicios que actualmente se vienen presentando , se están ocupando en estrategias para soportar la gran capacidad masiva de datos que se tiene y evitar que se convierta en una situación fuera de control, y para resolver estos desafíos las organizaciones necesitan contar con una gran capacidad de automatización de las redes, aprovechando las SDN permiten incorporar inteligencia de software para un mayor rendimiento de la red , sin importar la marca del hardware o algunos protocolos que ya están definidos. El uso de estos protocolos de configuración que se realiza fuera del hardware están destinados a generar SDN y redistribuir tráfico, uno de esos protocolos es el OpenFlow que permite a los switches y routers de diferentes marcas poder ser programados por software y redirigir el trafico cuando el hardware falla haciendo diferentes acciones según sea necesario.
Es un desarrollo nuevo para la tendencia de redes actualmente a nivel del hardware ya que estos dispositivos vienen con una configuración estándar para cada marca en particular, varias compañías se están viendo beneficiadas con la viabilidad de poder implementar este sistema en el mercado tecnológico, ya que se beneficiará gran parte de la población, en donde se requiere ver las redes como una plataforma de aplicaciones inteligente ya que la información puede ser procesada más eficientemente.
11
2. MARCO TEÓRICO
2.1 Antecedentes
La historia de las SDN comenzó alrededor de dos décadas atrás en el momento en que el internet superaba las perspectivas del desarrollo y la evolución de las redes (Erickson, 2013). Donde los primeros pasos que se dieron como eran las transferencias de archivos y el correo electrónico fueron para los desarrolladores las aplicaciones más interesantes y que presentaban mayor uso del público en general, de esta situación se generaron ciertas curiosidades para probar e implementar nuevas ideas para mejorar el servicio. Estos investigadores diseñaron y probaron nuevos protocolos de red en áreas de laboratorios muy reducidos y simulaban el comportamiento de redes muchos más grandes, en respuesta a esto, varios investigadores perseguían un enfoque alternativo para el control de las redes que facilitaba abrir las redes convencionales no programables.
Por otra parte muchos de los switches comerciales soportan la interfaz de programación de aplicaciones (API), los proveedores apoyaban a OpenFlow incluidos en dispositivos como HP, NEC y Pronto (Floodlight OpenFlow Controller.2013) Desde entonces esta lista se ha ampliado creando muchas plataformas de diferentes controladores. De esta forma los programadores han utilizado plataformas para diversas aplicaciones, tales como control acceso dinámico, virtualizaciones de red, migración usuarios; en donde se obtuvieron los primeros éxitos comerciales, tales como el sistema de gestión del tráfico área ampliada de Google (S.Jain, Aug. 2013.) y plataforma de Nicira de virtualización de red, que han recibido atención significativa de la industria.
A continuación se hace referencia a los primeros esfuerzos de las redes definidas por software.
12 Open Signaling:
Comenzó en 1995 con una serie de trabajos en grupo dedicados a "making ATM, Internet y telefonía móvil de redes abiertas programables " (A.T. Campbell, 1999.),en donde se hacía una hipótesis que tenía involucrado los dispositivos de red y el software utilizado para el control que era necesario para la comunicación de red, pero a su vez difícil de realizar, esto es debido principalmente al diseño los switches y routers, cuya característica de configuración era limitada lo cual hacía imposible un rápido despliegue de nuevos servicios de redes y entornos.
Su propuesta era proporcionar acceso al hardware de red mediante las interfaces de redes abiertas, programables, esto permitiría el despliegue de nuevos servicios a través de un entorno de programación distribuida.
Motivado por estas ideas, fue creado el grupo de trabajo IETF (internet engineering task force), que condujo a la especificación general de gestión de protocolo (GSMP) (A. Doria, June 2002.), protocolo de control con propósitos generales de etiquetas de los switches. GSMP permite a un controlador establecer y liberar las conexiones a través del switch, agregar y eliminar las conexiones multicast, administrar puertos del switch, solicitar la información de configuración, eliminar la reserva de recursos del dispositivo y solicitar estadísticas. Este grupo de trabajo ha concluido oficialmente y la última propuesta de estándares, GSMPv3N, el cual fue publicado en junio de 2002.
Active networking:
A mediados de 1990, active networking (D.L. Tennenhouse, 1997)fue una iniciativa que propuso la idea de que la infraestructura de red fuera programable para servicios personalizados en donde hubo dos enfoques principales para este protocolo.
(1) Switches programables por el usuario, con transferencia de datos en banda ancha y canales de distribución; y (2) cápsulas, eran fragmentos de programa que
13
podían llevarse en los mensajes del usuario, entonces los fragmentos de los programas serían interpretados y ejecutados por routers.
Active networking no pudo reunir las características para controlar circunstancias críticas en redes masivas que era transferidas en la implementación industrial y el uso generalizado, esto debido principalmente a preocupaciones de seguridad y de rendimiento.
DCAN:
Otra iniciativa que tuvo lugar a mediados de los noventa, es el control de ATM redes (DCAN). (Devolved Control of ATMNetworks, 2000) El objetivo de este proyecto fue diseñar y desarrollar la infraestructura necesaria para el control escalable y gestión de redes de los cajeros automáticos. La hipótesis es el control y funciones de gestión de los muchos dispositivos (switches ATM en el caso de DCAN) debieron ser desvinculadas de los dispositivos de sí mismos y delegó a entidades externas dedicadas a ese propósito, que es básicamente el concepto detrás de SDN. DCAN asume un protocolo entre el administrador y la red en donde más sobre el proyecto DCAN puede encontrarse (Leslie, 1997)]. La propuesta de la separación del plano de control y de los datos sobre las redes de cajeros automáticos entre otros, es el trabajo propuesto en este apartado (J.E.
Van der Merwe, 1998) donde hace referencia al control múltiple de arquitecturas heterogéneas las cuales se pueden ejecutar simultáneamente sobre una sola red física ATM para repartir los recursos de ese switch entre esos controladores.
4D Project:
A partir de 2004, el proyecto 4D (J. Rexford, 2004) promovía un diseño nuevo que destacó la separación de la lógica en la toma de decisiones del enrutamiento y el de los protocolos que rigen la interacción entre elementos de la red. Propone dar una visión global en control del tráfico y el envío de datos. Estas ideas sirvieron de inspiración directa para obras posteriores como NOX N. Gude, 2008), que propone
14
un "sistema operativo para redes" en el contexto de una red habilitada para OpenFlow.
Netconf:
En 2006, el IETF grupo de trabajo para propósitos de configuración red propuso NETCONF (Enns, 2006) como protocolo de administración para modificar la configuración de dispositivos de red. El protocolo permite a los dispositivos de red presentar API a través de estos dispositivos, podrían ser enviados y recibidos los datos de configuración existentes.
Otro protocolo de gestión, ampliamente desplegado en el pasado y hasta hoy, es el SNMP (D Case, 1990). SNMP fue propuesto a finales de los 80 y demostró ser un protocolo muy popular de administración de red, que utiliza la interfaz de gestión estructurada (SMI) para buscar los datos contenidos en la base de MIB (Management Information). Utilizado para cambiar las variables en el MIB y para modificar las configuraciónes. Más tarde se hizo evidente que a pesar de lo que originalmente fue diseñado, SNMP no estaba siendo utilizado para configurar equipos de red, sino más bien como una herramienta de monitorización y rendimiento. Además se detectaron múltiples deficiencias en la adquisicion de SNMP, el más notable de las cuales era su falta de seguridad.
NETCONF, al tiempo fue propuesto por IETF, donde fue visto por muchos como un nuevo enfoque para la gestión de red que arreglaría las deficiencias mencionadas en SNMP. Aunque el protocolo NETCONF logra el objetivo de simplificar el dispositivo de configuración y actúa como un bloque de construcción para la gestión, no hay ninguna separación entre datos y el plano de control. Lo mismo puede afirmarse de SNMP.
Una red con NETCONF no debería considerarse como totalmente programable sino como una funcionalidad que tendría que aplicarse al adminsitrador del dispositivo de red para que cualquier nueva funcionalidad pueda ser proporcionada. Además está diseñado principalmente para configuración
15
automatizada y no para habilitar el control directo de los datos, ni permitir el despliegue rápido de aplicaciones y servicios innovadores, aunque ambos NETCONF y SNMP son herramientas de gestión útiles que se pueden utilizar en switches para apoyar otras soluciones que permiten las redes programables.
El grupo de trabajo NETCONF está actualmente activo y la última propuesta estándar se publicó en junio de 2011.
Ethane:
El antecesor inmediato de OpenFlow fue SANE / proyecto Ethane (M.Casado, 2007), en 2006, define una nueva arquitectura para las redes empresariales. El enfoque de Ethane fue sobre el uso de un controlador centralizado para gestionar las directivas y la seguridad en la red. Similar a la SDN Ethane empleó dos componentes: un comunicador y un controlador para verificar si un paquete coincidía en una tabla de flujos y tenía un canal seguro para el controlador.
En contexto se convertiría en un paradigma de hoy de las SDN. De otro lado para el control de acceso basado en la identidad del Ethane es probable que se adecuara como una aplicación sobre un controlador de SDN, tales como NOX, (Z.Cai, 2010) Maestro, Beacon (Beacon, 2013), SNAC (Simple Network Access Contro l (SNAC)., 2012), Helios (Helios by nec, 2011) y entre otros más.
Openflow:
El protocolo OpenFlow muy a menudo está relacionado con las SDN. Este último es un bloque de desarrollo para SDN que permite crear una visión global de la red y ofrecer de acuerdo a una interfaz de programación, poder centralizar los dispositivos de una red. OpenFlow es un protocolo abierto que nació de los laboratorios de la Universidad OpenFlow, fue propuesto por primera vez permitiendo a los investigadores ejecutar protocolos experimentales (R. Sherwood, 2010) en las redes de los campos de la universidad. Ahora bien Open Networking Foundation (ONF), es un consorcio industrial que está a cargo de apoyar
16
activamente a los avances de la SDN y la estandarización de OpenFlow, que se publica actualmente en versión el periodo 2008-2013.
En conclusión, la historia de las SDN se puede resumir en tres etapas, cada una con sus propias contribuciones, redes activas a partir de la década de 1990 para el 2000), que introdujo funciones programables en la red, llevando a una mayor innovación;(2) separación de plano de control y de datos (de alrededor de 2001 a 2007), que desarrolló interfaces abiertas entre planos de control y de datos; (3) los API OpenFlow y red de los sistemas operativos (alrededor de 2007 a 2010 ), que representó la primera adopción generalizada de una interfaz abierta y desarrollando maneras de hacer la separación de plano de control y de datos de forma escalable y práctica y la virtualización que desempeñó un papel importante a lo largo de la evolución histórica de la SDN
En la figura continuación se muestra en resumen los acontecimientos de las redes programables en los últimos 20 años.
Fuente: https://www.cs.princeton.edu/.../sdnhistory.pdf
Traído a la actualidad se evidencia un buen desarrollo en la fabricación de equipos capaces de controlar y soportar las necesidades del usuario, que podrían FIGURA1. Resumen De las Redes Programables.
17
aprovechar los recursos existentes para mejorar las aplicaciones, y en lo que respecta al tráfico de datos en la red se observa que se puede mejorar la distribución de los paquetes, haciendo más flexible y ágil la transmisión la cual puede ser aplicable a diferentes escenarios actualmente existentes, aunque es un concepto nuevo. En la actualidad hay empresas como HP y Cisco, que están apostando por esta tecnología, así mismo IBM y destaca la alianza NEC con Big Blue.
HP (Hp, 2012) es pionera en el uso de esta tecnología en los switches aptos para protocolos openflow, es fundador de la Open Networking Foundation, para reducir los costos operativos de las redes y compañías.
IBM está impulsando en la demanda del nuevo hardware en los datacenter con Switches basados en modelo openflow. Se tiene conocimiento de empresas como HBO o JPMorgan que lo están probando”. Además de estos dos proveedores, la consultora suma a IBM y VMware (de EMC) como las empresas más interesadas en crecer en SDN.
Durante los días 11 al 13 de junio se celebró o en el hotel Fira Palace de Barcelona el congreso SDN Word 2013 (mundo contacto, 2013) para debatir este nuevo paradigma de las telecomunicaciones. Allí se dio a conocer la oferta de los fabricantes y las experiencias que han estado teniendo, principalmente operadores de telecomunicaciones gracias a la adopción de las redes definidas por software.
Durante la feria de tecnología de Brasil campus party 2013 se dio a conocer las tendencias DSN por Ingeniero Palco Arquímedes.
Durante presentación de seguridad de redes en la ciudad de México fue expuesto por Ing. Oscar Gutiérrez, BDM Enterprise Networking y Seguridad de Cisco.
18
Los anteriormente descritos son los más representativos hoy en día en lo que respecta a las SDN, se espera poder ser presentado en otros países para poder mostrar la importancia de su aplicación en el desarrollo de tecnologías de comunicaciones en los diferentes escenarios, de la misma forma uno de los más extensivos respecto a la administración de la estructura de redes tradicionales.
19 2.2 Justificación
En la actualidad las configuraciones de red se hacen principalmente a través de un software integrado, eso implica la posibilidad de hacer cambios de una forma rápida en tiempo real.
Día a día la integración de estos dispositivos de red en las grandes y pequeñas empresas conlleva a tener una coherencia en la distribución de la información.
Debido a este crecimiento la idea es obtener el mejor rendimiento y control en la distribución de paquetes que ofrecen estos equipos los cuales forman parte de las configuraciones de redes en las estructuras existentes pero con el crecimiento de los servicios web se llevan a una mayor necesidad , flexibilidad, escalabilidad del ancho de banda y adaptación tecnología de estos, que puede llevar a presentar retrasos en la transmisión debido al exigente tráfico de la información y aumento de las aplicaciones que se presenta de manera masiva los cuales se van haciendo necesario para que los requerimientos de las plataformas sean más robustas para poder ejecutarse de una forma correcta y poder aprovechar los recursos tecnológicos actualmente existentes en el mercado, abriendo así la posibilidad de encontrar herramientas que permitan la centralización del control de la arquitectura de redes con diferentes plataformas y la disminución en la automatización los procesos internos .
Con la implementación de este sistema, la velocidad de transmisión aumentará de la misma manera que el consumo de energía de los dispositivos físicos disminuiría.
Se pretende mostrar que puede haber menos pérdidas de conexión y mejor administración del flujo de datos.
20 2.3 Marco conceptual
Software-Definid Networking – o redes definidas por software permiten definir el flujo de información, la modificación y personalización de dicha infraestructura de acuerdo a las necesidades del usuario final. Por consiguiente se debe tener una conceptualización del uso de esta terminología. A continuación se definirán dos conceptos fundamentales para la implementación, como lo son; las redes de computadores, y los protocolos de comunicación.
Redes:
Se puede definir una red de computadoras (Red_de_computadoras, 2013), como el conjunto de equipos informáticos y software conectados entre sí por medio de dispositivos físicos que envían y reciben información, comparten recursos y ofrecer servicios. Como en todo proceso de comunicación se requiere de un emisor, un mensaje, un medio y un receptor. La finalidad principal para la creación de una red de computadoras es compartir los recursos y la información en la distancia, asegurar la confiabilidad y la disponibilidad de la información, aumentar la velocidad de transmisión de los datos y reducir el costo general de estas acciones. La estructura y el modo de funcionamiento de las redes informáticas actuales están definidos en varios estándares, siendo el más importante y extendido de todos ellos el modelo TCP/IP basado en el modelo de referencia OSI.
Este último, lo resume la estructura de una red en siete capas con funciones concretas pero relacionadas entre sí; en TCP/IP se reducen a cuatro capas donde existen multitud de protocolos repartidos por cada capa, los cuales también están regidos por sus respectivos estándares.
Para poder formar una red se requieren elementos: hardware, software y protocolos. Los elementos físicos se clasifican en dos grandes grupos: dispositivos de usuario final (hosts) y dispositivos de red. Los dispositivos de usuario final incluyen los computadores, impresoras, escáneres, y demás elementos que
21
brindan servicios directamente al usuario y los segundos son todos aquellos que conectan entre sí a los dispositivos de usuario final, posibilitando su intercomunicación. Además las redes han tenido un crecimiento constante debido a la ampliación de los servicios en la web, aumentando así los diferentes tipos de red.
Como es importante tener claridad sobre este concepto en el siguiente aparte se hace referencia a los tipos de redes y su respectiva clasificación.
Red de área personal.
Red inalámbrica de área personal, o WPAN (Wireless Personal Área Network).
Red de área local, o LAN (Local Área Network).
Red de área local inalámbrica, o WLAN (Wireless Local Área Network).
Red de área de campus, o CAN (Campus Área Network).
Red de área metropolitana (metropolitan área networking o MAN, en inglés).
Redes de área amplia, o WAN (Wide Área Network).
Red de área de almacenamiento.
Red de área local virtual, o VLAN (Virtual LAN).
Continuando con las redes, están distribuidas por medio de unos parámetros que facilitan según la necesidad la arquitectura definida, tales como:
Topología redes1:
Red en bus se caracteriza por tener un único canal de comunicaciones (denominado bus, troncal o backbone) al cual se conectan los diferentes dispositivos.
Red en anillo cada estación está conectada a la siguiente y la última está conectada a la primera.
1 http://www.ecured.cu/index.php/Red_de_computadoras
22
Red en estrella las estaciones están conectadas directamente a un punto central y todas las comunicaciones se han de hacer necesariamente a través de este.
Red en malla cada nodo está conectado a todos los otros.
Red en árbol los nodos están colocados en forma de árbol. Desde una visión topológica, la conexión en árbol es parecida a una serie de redes en estrella interconectadas salvo en que no tiene un nodo central.
Red mixta se da cualquier combinación de las anteriores, la aplicación de las SDN puede ser utilizada en cualquier topología actualmente existente, permitiendo la centralización del control, además de implicar la personalización desentendiendo de la necesidad del usuario final, de la estructura de topología que actualmente este último tiene instalado.
Por la direccionalidad de los datos 2
Simplex o unidireccional: un equipo terminal de datos transmite y otro recibe.
Half-duplex, semidúplex: el método o protocolo de envío de información es bidireccional pero no simultáneo bidireccional, solo un equipo transmite a la vez.
Full-dúplex, o dúplex: los dos equipos involucrados en la comunicación lo pueden hacer de forma simultánea, transmitir y recibir.
Por grado de autentificación: ‘Red privada: una red privada se definiría como una red que puede usarla solo algunas personas y que están configuradas con clave de acceso personal.
2 http://www.ecured.cu/index.php/Red_de_computadoras
23
Red de acceso público: una red pública se define como una red que puede usar cualquier persona y no como las redes que están configuradas con clave de acceso personal. Es una red de computadoras interconectadas, capaz de compartir información y que permite comunicar a usuarios sin importar su ubicación geográfica.
Por grado de difusión: una intranet es una red de pc privados que utiliza tecnología Internet para compartir dentro de una organización parte de sus sistemas de información y sistemas operacionales. Internet es un conjunto descentralizado de redes de comunicación interconectadas que utilizan la familia de protocolos TCP/IP, garantizando que las redes físicas heterogéneas que la componen funcionen como una red lógica única, de alcance mundial.
Por servicio o función una red comercial proporciona soporte e información para una empresa u organización con ánimo de lucro.
Red educativa: proporciona soporte e información para una organización educativa dentro del ámbito del aprendizaje.
Red para el proceso de datos: proporciona una interfaz para intercomunicar equipos que vayan a realizar una función de cómputo conjunta.
Protocolo openflow (Stanford OpenFlow Team, 2012):
Protocolo: es un conjunto de reglas y normas que permiten que dos o más entidades de un sistema de comunicación se comuniquen entre ellos para transmitir información por medio de cualquier tipo de variación de una magnitud física.
Openflow es un protocolo estándar que permite la ejecución experimental, y para ello incorpora el uso de dispositivos comerciales como Ethernet, routers y puntos
24
acceso inalámbrico donde se puede tener acceso a las tablas de flujo y a las reglas que indican el direccionamiento del tráfico de la red. Se usa entre los dispositivos de red y un controlador de tecnología emergente en la virtualización de redes que pueden proporcionar a los usuarios flexibilidad y control para entornos de acuerdo a especificaciones ya definidas por protocolos estándar.
De esta forma, se hace necesario contar con un método formal y lenguajes de aplicaciones y servicios, donde se incluyen todos los dispositivos de la red, no depender del hardware limitado que ofrecen los distintos fabricantes de estos dispositivos. Permitiendo obtener mejores beneficios y garantizar los resultados como:
-Visión unificada de la estructura de red -Alta utilización
-Manejo más rápido de fallos -Elasticidad dispositivo de red -Actualizaciones sin pérdida.
La referencia del artículo (Shin, Nam, & Kim, 2012) muestra una relación respecto a la arquitectura de la SDN y la interfaces de programación.
Al instalar un componente de firmware (software ubicado en el hardware) de OpenFlow, los ingenieros tienen acceso a tablas de flujo, reglas que le indican a los routers y a los switch, además de cómo direccionar el tráfico de la red en donde protege las instrucciones de asignación de ruta patentadas que diferencian el hardware de cada empresa.
SDN puede ser utilizada en cualquier tipo de red, lo que trata es de hacerlo más programable, utilizando los nuevos protocolos de redes que hacen que la administración de la red sea más fácil, más inteligente y con mejor automatización.
25 2.4 Alcance
Se pretende hacer una investigación exploratoria donde se busca explicar detalladamente el concepto SDN, junto a una aproximación con la actualidad del protocolo Openflow, ya que ambos pueden ser utilizados en cualquier tipo de conexión. Contando además con la utilización de aplicaciones existentes y la distribución de canales de datos según la necesidad planteada.
Lo anterior teniendo en cuenta la viabilidad desde el punto de vista tecnológico, características y requerimientos para su implementación.
26 2.5 Marco contextual
Las SDN se han convertido con rapidez en una estrategia para enfrentar las necesidades que se observan a nivel de redes en las empresas de hoy en día, donde se han aumentado el crecimiento de las conexiones, y la estructuración de los datos. Otra característica es el uso de arquitecturas de código abierto entre los protocolos que sea creado para asegurar la interoperabilidad que conforman una red de datos, destacándose el protocolo Openflow que se agrega como funcionalidad a los Switches, routers y puntos de acceso inalámbrico que actualmente lo conforman, además de contar con los recursos físicos y humanos para implementar esta nueva tendencia de redes.
El desarrollo tecnológico en Latinoamérica (telcom system, 2013) ha ido en aumento paulatinamente al crecimiento global, destacándose argentina, Brasil, México como grandes potenciales en los que se podría utilizar esta tecnología, para nuestro país es un concepto relativamente nuevo, donde las empresas proveedoras de los servicios de comunicación no han iniciado un proceso de actualización.
No obstante compañías como HP, CISCO cuenta ya con la tecnología para ser implementada en el país, ya sería un proceso en donde estos proveedores y las grandes empresas que destinan parte de su presupuesto a la implementación tecnológica puedan tener la oportunidad de implementarlo, como ya se ha realizado durante el presente año en países como México y Brasil, teniendo una buena acogida, aun cuando el crecimiento de ancho de banda va en aumento.
La idea de los fabricantes es buscar nuevas estrategias de programación centralizadas mediante software, adoptando inteligencia en la red.
27
3. METODOLOGÍA
3.1 Metodología
La implementación de la metodología adecuada que permita guiar la realización del proyecto que actualmente se está describiendo, y por ser un concepto relativamente nuevo donde no se cuenta con toda la información suficiente conlleva a explorar (Sampieri, 1991) su funcionamiento e implementación, aumentando así el grado de interés de este tema.
Por lo anterior se pretende obtener una visión más clara acerca de este concepto apoyados de un soporte documental en donde se deposita toda la información necesaria para el desarrollo del proyecto, y poder identificar su funcionamiento.
28
4. CONTEXTUALIZACIÓN SDN
4.1 Introducción SDN
Durante varios años se han desarrollado avances en las tecnologías de redes de computación en comparación con otro tipo de tecnologías como son las de la información y la comunicación. Por otro lado en cuanto a los dispositivos como los switches y routers que son fundamentales para las redes, es evidente observar que son fabricados con sus propias características de diseño de hardware y software, en relación a esto se presenta una situación de desaceleración en el progreso de las tecnologías vigentes debido a que siempre se encontraran con nuevos servicios en donde los dispositivos deben adaptarse a las redes existentes (Open Networking Foundation version 1.4.0 (Wire Protocol 0x05), 2013), de esta forma se genera un incremento en los costos de administración y operación que se observan en las distintas limitaciones de las redes actuales.
En la figura a continuación se observa una comparación entre una red tradicional y una red definida por software. Donde las redes SDN utilizan software para controlar los dispositivos, a diferencia de una red tradicional.
Fuente: http://www.embeddedworld.co.kr/atl/view.asp?a_id=8009
FIGURA 2. Comparación de una red tradicional y una red SDN
29
De igual manera comunidades de investigación en conjunto con los líderes del mercado tecnológico se han estado preparando para renovar el diseño actual de las redes, de esta forma surgen nuevos conceptos de diseño para redes como las SDN. Tanto que las redes SDN han ganado popularidad a nivel educativo y tecnológico siendo una propuesta innovadora procedente de anteriores investigaciones, por otra parte SDN se ve muy relacionado con el protocolo Openflow, este es el último bloque de desarrollo que permite tener una visión global de la red y ofrecer una interfaz de programación y centralizar todos los dispositivos de la red existentes. Openflow es un protocolo que fue propuesto por primera vez por la universidad de Stanford como protocolo experimental usado en el campo universitario, de allí nació la idea de crear una organización que en la en la actualidad se conoce como Open Networking Fundation (ONF), este consorcio apoya actualmente los avances de SDN durante periodo 2008-2014.0 En cuanto a los dispositivos y middlebox que constituyen las redes se observa que poseen protocolos complejos para los administradores, que son los responsables de la respectiva configuración de las directivas, eventos y aplicaciones en la red. En donde se tienen que realizar modificaciones manuales, como también algunas tareas complejas como es el acceso limitado a herramientas de red. Más aún los estándares tradicionales de red que están basados en las configuraciones manuales de los dispositivos previamente fabricados los cuales son complejos y pueden ser propensos a errores y no utilizan plenamente la capacidad de su infraestructura. Este sistema permitiría simplificar la administración de las redes permitiendo la innovación y la evolución de este tipo de tecnología.
Por otro lado, no se ha encontrado mayor número de publicaciones científicas respecto a las redes definidas por software (SDN), pero para la actualidad se han convertido en una de las soluciones más efectivas para el futuro de las redes, ya que se caracteriza por tener control centralizado de la red y proporcionar mejores
30
configuraciones, mejor rendimiento y más flexibilidad para ser adaptados al diseño de las redes actuales.
4.2 Arquitectura SDN
A continuación se describe la arquitectura SDN y sus principales componentes, según las especificaciones de la ONF (Open Networking Foundation) (The New Norm for Networks, 2013) Resumidas en la figura No.3
Fuente: ONF”Software-DefinedNetworking: The: The: The New Normfor Networks,”Open Networking Foundation, Tech. Rep., April 2013, ONF white paper.
En un sistema SDN se encuentra la interacción de tres capas: la capa de infraestructura, capa de control y la capa de aplicaciones, a través de tres interfaces abiertas: Southbound, Northbound, East/westbound, que son descritas más adelante.
FIGURA 3. Arquitectura SDN
31
Para empezar las aplicaciones SDN interactúan con los controladores a través de una interfaz llamada Northbound que se encuentra ubicada entre el controlador y las aplicaciones. Y otra interfaz llamada Southbound que se encuentra entre el software del controlador y los elementos de envío.
Por otra parte un aspecto importante de las SDN es el enlace que hay entre el plano de datos y el plano de control. Donde los elementos de envío son controlados por una interfaz abierta en donde es importante que exista disponibilidad y seguridad.
Otro elemento fundamental es el protocolo Openflow que se implementa en los switches entre el controlador de red y el hardware, además Openflow V.1.3.0 cuenta con un soporte de seguridad adicional que consiste en la encriptación de la información en el proceso de intercambio entre los switches y el controlador. De esta forma en escenarios donde se encuentran múltiples controladores, da la facultad de otorgar accesos y permisos autorizados por el controlador.
4.2.1 Interfaces
Interfaz Southbound:
Esta interfaz de comunicación permite al programador interactuar con los elementos de envió en la capa de infraestructura. Donde el protocolo Openflow, es un elemento fundamental para la implementación de soluciones SDN. Por otro lado se encuentran soluciones que no son Openflow pero que están basadas en SDN, en donde varios proveedores utilizan sus propios protocolos, tal como lo son Cisco Open Network enviromenet plataforma (onePK) (Helios by nec, 2011) y juniper’s contrail (Passarella, 2012). También existen otras alternativas para openflow, por ejemplo separación de los elementos de envío (Forces) Framework (M.Casado, 2007), este último define una arquitectura framework con protocolos
32
asociados para estandarizar en el intercambio de información entre el controlador las capas de envío.
A continuación se describe un concepto fundamental para la interacción entre las capas que conforman la arquitectura:
Envío de elementos:
El envío de elementos es fundamental en la arquitectura SDN, donde principalmente los dispositivos de hardware como los switches son utilizados para el envío de la información, estos tienen que admitir API Southbound, ahora bien Los switches vienen en dos formas: basados en Software (por ejemplo Open switch (OVS) (Andrew R. Curtis, 2011) y basados en hardware habilitado para implementaciones Openflow (por ejemplo NetFPGA) (anxi Kang, 2012). De otra forma en el desarrollo de estas implementaciones se ven afectados ya que a menudo se presentan retardos de tiempo en los procesos.
Para tener una visión más amplia del software que puede soportar Openflow se resumen en la tabla a continuación
TABLA 1. Software que soporta Openflow
Description Open
Source
Language Origin OpenFlow Version Open
vSwitch
OpenFlow Stock: Soft switch and con-
trol stack for hardware switching
Yes C/Python Multiple
contributors
v 1.0 OpenFlow
Reference Implementa tion [39]
OpenFlow Stack that follows the spec-
ification
Yes C Stanford
University/
Nicira Networks
v 0.8 Pica8 hardware-independent software
for
hardware switching
not yet C Pica8 v 1.2
Indigo For OpenFlow on physical and hyper-
visor switches based on the Stanford reference implementation
Yes C/Lua Big Switch
Networks
v 1.0 Pantou/Op
enWRT
Enable Commercial OpenWRT wireless
devices with OpenFlow
Yes C - v 1.0
Fuente: ONF”Software-DefinedNetworking: The New Normfor Networks,”Open Networking Foundation, Tech. Rep., April 2013, ONF white paper.
La característica del hardware de los switches que soportan OpenFlow es que poseen circuitos integrados específicos (ASICs). Estos proporcionan mayor velocidad ya que poseen un largo número de puertos, pero a su vez les falta flexibilidad e integración en las implementaciones de software. Hay varios
33
proveedores que admiten Openflow en sus switch como: HP.NEC, PRONTO, JUNIPER, CISCO, DELL, INTEL
Mientras tanto un switch activado con Openflow puede estar subdividido en tres elementos principales (Leslie, In Proc Integrated Network Management, 1997), una capa de hardware(datapath) , una capa de software(control Path) y el protocolo openflow.
1-Datapath:
Consiste en un grupo de tablas conformadas por los flujos, este realiza una búsqueda de los paquetes y los envía, cada tabla está asociada a un conjunto de flujos, esta acción es realizada por el switch y aprobadas por el controlador.
2-Control Path:
Es un canal que comunica el switch con el controlador que se utiliza para propósitos de programación. Allí los comandos y los paquetes son intercambiados a través de este canal usando el protocolo Openflow.
3-Protocolo openflow:
El protocolo Openflow proporciona los medios de comunicación entre el controlador y switch. Permite el intercambio de mensajes que incluyen la información sobre los paquetes enviados, y los paquetes recibidos.
Para tener una idea más clara, se describe a continuación cada uno de los campos de la forma en que se encuentra constituido el protocolo Openflow.
Donde se encuentran campos iguales basados en 15- tuplas, un puerto de ingreso y un paquete adicional de meta-datos con priorización precedente del flujo de entrada.
34
FIGURA 4. Flujos identificación openflow L1-L4.
Fuente: Open Networking Foundation, OpenFlow Switch specification, October 2013, version 1.4.0 (Wire Protocol 0x05)
Este cuenta con un conjunto de tres acciones específicas que se realizan en los paquetes que son: el envío del paquete a los puertos, envío del flujo de paquetes al controlador y la descarga del conjunto de paquetes.
Cuenta con un contador para realizar cálculo del flujo de paquetes y de bytes por cada uno, además del tiempo desde que inicia hasta el tiempo en que finaliza el envío de los datos.
En relación con los mensajes, Openflow pueden categorizarse en tres tipos principales el Switch controlador, asíncrono y el simétrico.
Los mensajes que se inician por el controlador son utilizados para administrar o inspeccionar el estado los mensajes de controlador y switch.
Un switch puede iniciar con mensajes asíncronos con el fin de actualizar el controlador con los eventos de la red y los cambios en el estado del switch.
Finalmente, se inician mensajes simétricos, se generan sin necesidad de una solicitud del switch al controlador y se utilizan, por ejemplo, para poner a prueba la dinámica de una conexión del switch de control.
35
Una vez que el paquete llega al switch, este realiza una búsqueda en las tablas de flujo. Esta entrada se identifica únicamente por sus campos y su prioridad donde los valores del paquete deben coincidir con una entrada. Por lo tanto, un paquete puede ser igual a un flujo (Microflow), que coincide con un campo denotado como comodín (Macroflow) del flujo; o en otro de los casos no coinciden, en el caso de una coincidencia encontrada, se realiza un conjunto de acciones tal como se define en la entrada de la tabla de flujo.
En el caso de no encontrar una coincidencia, el switch envía el paquete (o simplemente su cabecera) al controlador para solicitarle a este una decisión.
Después de consultar las directivas el controlador responde con una nueva entrada de flujo el cual debe ser agregado a la tabla de flujos del switch. Por otro lado se tiene una última entrada que es utilizada por el switch para manejar los paquetes en cola, así como los siguientes paquetes en el mismo flujo y en orden dinámico que son remotamente configurados en el switch openflow.
Interfaz Northbound:
La interfaz Northbound (Big Switch networks, 2012) es más un conjunto de API definidos por software que un protocolo de datos. La programación que utiliza estas API permite a las aplicaciones SDN tener una interfaz amigable en donde se pueden configurar la red y sus componentes. De antemano Northbound APIs permite incluir funciones básicas de red, como ruteo, manejo de tráfico y seguridad que permiten la administración de servicios de red en la nube, en donde los lenguajes de programación y herramientas apropiadas para compilación de las reglas generadas por el protocolo que son utilizadas para el análisis del estado de la red, pueden ser comparados de acuerdo a tres significativos criterios de diseño: nivel de abstracción, programación lógica y directivas lógicas.
36
-Nivel de abstracción: bajo nivel vs alto-nivel:
Mientras que el lenguaje de alto nivel traduce la información proveniente por el protocolo de Openflow dentro de esta semántica, permite a los programadores gestionar las reglas impuestas en los lenguajes de bajos nivel.
-Programación; lógica vs funcionalidad reactiva:
Muchos de los lenguajes existentes para el manejo de las redes indican tan solo la descripción lógica, mientras el control de flujo es delegado a la implementación.
No obstante, existen dos maneras de programación diferente para expresar directivas de red: programación lógica (LP) y programación funcional reactiva (FRP). En la programación lógica, un programa está constituido por un conjunto de sentencias lógicas. Esta se aplica particularmente a las áreas de inteligencia artificial.
La característica más importante de FRP es que permite capturar en tiempo real los diferentes comportamientos basada en eventos, por lo tanto se utiliza en áreas como la robótica y multimedia.
-Directivas lógicas: pasiva vs activa
Un lenguaje de programación puede crear ambas directiva tanto pasivas como activas, una directiva pasiva solo puede observar el estado de la red, mientras una directiva activa acciona el estado de una red extendida y da respuesta a algunos eventos. Un ejemplo de una directiva activa es el limitar el acceso a dispositivos y usuarios basados en el uso máximo del ancho de banda.
Para tener una idea sobre los distintos lenguajes de programación framework desarrolladas para SDN, se resumen en la siguiente tabla y se hace una breve descripción de cada uno de ellos.
37 TABLA 2. Lenguajes de programación SDN
Framework Level of Abstraction
Query Language
Runtime System
Implementation Language
Programming Type
Policies Type
Frenetic] high yes yes Python FRP Active
NetCore high yes yes Python FRP Active
Nettle low No no Haskell FRP Active
FML high No no Python/C++ LP Passive
Procera high No no Haskell FRP Active
Fuente :( 342959900) A Survey and a Layered of Software-Defined Networking_1
Frenetic (N Foster, 2011)
Lenguaje de programación de alto nivel constituido por dos niveles de abstracción:
La primera es una de bajo-nivel que consiste en un sistema de ejecución trasladado a uno de alto nivel, donde se encuentran directivas y consultas de bajo nivel, como son los comandos que contienen las reglas de los dispositivos del switch.
El segundo es alto-nivel abstracción que e se asemeja a las consulta SQL (lenguaje Estructurado) el lenguaje de consulta proporciona medios para leer el estado de la red, funciones diferentes de consultas y utiliza el nivel alto para clasificar, filtrar, transformar y agregar en los paquetes de cada flujo.
FRENETIC, ofrece operaciones donde facilitan la construcción de nuevas herramientas reutilizables, así mismo ha venido usándose como implementación de varios servicios en la carga de balanceo de las diferentes topologías de redes, en la detección de fallas y la tolerancia de enrutamiento en el diseño, en cooperación con el controlador NOX.
38 2-NetCore (C. Monsanto, 2012)
Es el sucesor de FRENETIC, esta enriquecido con librerías en las directivas administradas y propone algoritmos para compilación del monitoreo en la interacción del control de los switches donde se manipulan dos componentes que deben de coincidir con el sistema de paquetes y las directivas que especifican la ubicación de envío de estos.
Netcore compila utilizando un usuario tipo comodín clasificando las reglas generadas en el switch (conjunto reglas envío paquetes) con el incremento en la eficiencia el proceso envió de paquetes del switches.
3-Nettle (Hudak, 2011)
Es otro basado en FRP aprovecha la programación de redes de openflow integrado en Haskell, un lenguaje fuertemente estandarizado. Define las funciones de la señal que transforman los mensajes emitidos desde los switches por los comandos generados por el controlador. Nettle permite manipular cantidades continuas de flujos que reflejan las propiedades de una red, tal como es el volumen de los mensajes en un enlace de red; proporciona un mecanismo para describir los comportamientos respecto al tiempo y variables como el balanceo dinámico de carga. Se considera como un lenguaje de programación de bajo nivel, que lo hace más apropiado para programar controladores.
4-Procera (A. Voellmy, 2012):
Es un FRP-basado en lenguaje de alto nivel integrado en Haskell. Este ofrece un marco referencial de framework compuesto por operadores que reaccionan a los cambios dinámicos de las condiciones de red. Estos cambios pueden originarse desde el switch openflow o desde eventos externos, tal como el retraso del tiempo en la autenticación de usuarios, en las medidas de banda ancha servidores,
39
cargas, etc. Por ejemplo, el acceso a la red puede estar denegado por el uso temporal del ancho de banda usando condiciones existentes.
5- Administración de flujo basado en programación (FML) (TL.Hinrichs, 2009) FML proporciona una abstracción de alto nivel, contrariamente a Procera, carece de expresividad para describir las directivas dinámicas, donde la toma de decisiones cambia con el tiempo, En FML las directivas consisten en archivos de estados declarativos y puede incluir adicionalmente referencias externas, para instancias SQL, Querys. Para cada nueva implementación FML es escrito en C++ y Python sobre NOX. Además, las políticas FML son pasivas, lo que significa que sólo puede observar el estado de la red sin modificarlo.
De esta forma los sistemas externos de administración o servicios de redes pueden extraer información básica acerca de la red y las directivas.
Adicionalmente los controladores pueden encontrar la manera de comunicarse con cada uno de ellos por diferentes razones.
De tal manera que esta interfaz de comunicación permite la programación de los controladores de las redes, abstracción del modelo de datos y otras funcionalidades como son los controladores para el uso de aplicaciones del plano de aplicaciones.
4.2.2 Controladores (The New Norm for Networks, 2013)
Los controladores son el núcleo de las SDN y la parte principal del NOS. Se encuentra entre los dispositivos de red en un extremo y las aplicaciones al otro extremo. Cada entrada de flujo que se encuentra instalada en los dispositivos debe ser establecida por el controlador. Estos se pueden distinguir dos modos de configuración de flujo: proactiva y reactiva.
40
En las configuraciones proactivas, las configuraciones producen antes de que llegue el primer paquete de flujos en el switch openflow ya que son preinstaladas en las tablas de flujo. Las principales ventajas de la configuración de flujo proactivo es un retraso en la configuración y reducción de la frecuencia en contacto con el controlador, si bien pueden desbordarse algunas tablas de flujo de los switches.
Con respecto a una configuración de flujo reactiva, solo si hay entradas existentes en las tablas de flujo, estableciendo una regla en el switch, por lo tanto el primer paquete de flujos llega al switch y lo comunica con el controlador. Estas entradas de flujo caducan después de un tiempo de Inactividad y deben ser eliminadas.
De esta forma el controlador compara el flujo con las directivas de la capa de aplicación y decide sobre las acciones a tomar, luego de esto se calcula una ruta para este flujo, de esta manera nuevas entradas son instaladas en cada switch que pertenezcan a esta ruta, incluyendo el que inicia la solicitud.
De esta forma se tiene un patrón conocido como comodín que es aplicado al Macroflow, este puede ser reemplazado y permite obtener un control de tráfico en términos de escalabilidad y flexibilidad.
Con el fin de obtener cálculos en la visión general del tráfico en los switches, que se comunican entre el controlador y los switches. Cuentan con dos formas para realizar dicho cálculo que son: push-based vs pull-based flow.
Push-based
Los cálculos son enviados por cada switch al controlador para informar sobre eventos específicos, como son configurar un nuevo flujo o quitar una entrada de la tabla de flujo debido a la velocidad por el límite de tiempo. Pero este mecanismo no informa al controlador sobre el comportamiento del flujo antes de entrar en tiempo de espera.
41 Pull-based
El controlador aprovecha y recoge un conjunto de flujos específicos.
Opcionalmente puede solicitar un reporte específico sobre todos los flujos y los comodines mientras que esto puede ahorrar ancho de banda del switch al controlador.
Continuando con los controladores, a continuación se muestra una lista de los más representativos. Actualmente soportan versión 1.0 openflow, los switches están resumido en la tabla 3, comparado con la disponibilidad del lenguaje de programación.
TABLA 3. Lenguajes de Programación para SDN
Controller Open Source Language Multi-threaded GUI Origin
NOX yes C++/Python no Yes Nicira Networks
NOX-MT yes C++ yes No Nicira Networks and Big Switch
Networks
POX yes Python - Yes Nicira Networks
Maestro yes Java yes No Rice University
Beacon yes Java yes Yes Stanford University
SNAC no C++/Python no Yes Nicira Networks
RISE yes C and Ruby non-
guaranteed
No NEC
Floodlight yes Java - Yes Big Switch Networks
McNettle yes Nettle/Haskell no No Yale University
MUL yes C yes Yes KulCloud
RYU yes Python - - NTT OSRG and VA Linux
OpenDaylight yes Java yes Yes Multiple contributors
Fuente: 342959900) A Survey and a Layered of Software-Defined Networking_1