Desarrollo de prácticas de laboratorio de SDN en Mininet
90
0
0
Texto completo
(2) Este documento es Propiedad Patrimonial de la Universidad Central “Marta Abreu” de Las Villas, y se encuentra depositado en los fondos de la Biblioteca Universitaria “Chiqui Gómez Lubian” subordinada a la Dirección de Información Científico Técnica de la mencionada casa de altos estudios. Se autoriza su utilización bajo la licencia siguiente: Atribución- No Comercial- Compartir Igual. Para cualquier información contacte con: Dirección de Información Científico Técnica. Universidad Central “Marta Abreu” de Las Villas. Carretera a Camajuaní. Km 5½. Santa Clara. Villa Clara. Cuba. CP. 54 830 Teléfonos.: +53 01 42281503-1419.
(3) Universidad Central “Marta Abreu” de Las Villas Facultad de Ingeniería Eléctrica Departamento de Telecomunicaciones y Electrónica. TRABAJO DE DIPLOMA “Desarrollo de prácticas de laboratorio de SDN en Mininet” Autor: Pedro Jesús Jiménez Morales E-mail: pjimenez@uclv.cu. Tutor: MSc.Arelys Emiliana Ramos Fleites E-mail: arelys@uclv.edu.cu. Consultante: Daniel Darian Iglesias de la Torre E-mail: danielit@uclv.edu.cu. Santa Clara Escriba aquí el Año de la defensa "Escriba aquí el nombre del año de la defensa".
(4) Hago constar que el presente trabajo de diploma fue realizado en la Universidad Central “Marta Abreu” de Las Villas como parte de la culminación de estudios de la especialidad de Ingeniería en Automática, autorizando a que el mismo sea utilizado por la Institución, para los fines que estime conveniente, tanto de forma parcial como total y que además no podrá ser presentado en eventos, ni publicados sin autorización de la Universidad.. Firma del Autor Los abajo firmantes certificamos que el presente trabajo ha sido realizado según acuerdo de la dirección de nuestro centro y el mismo cumple con los requisitos que debe tener un trabajo de esta envergadura referido a la temática señalada.. Firma del Tutor. Firma del Jefe de Departamento donde se defiende el trabajo. Firma del Responsable de Información Científico-Técnica.
(5) i. PENSAMIENTO. Life is like a coin. You can spend it any way you wish, but you only spend it once. Lillian Dickson.
(6) ii. DEDICATORIA. A mi madre, por siempre cuidarme y estar pendiente de todo lo relacionado conmigo, por ser la mejor madre del mundo. A mi abuela por su cariño y comprensión. A mi padre por siempre confiar en mí. A mi hermana Andria por quererme de una manera tan especial. A mis hermanitos Marquito y Amaya por su cariño. A Yasmanis por ser tan buen amigo y siempre tener mucha paciencia al tratar conmigo. A mis amigos Dairon, Carlito, El flaco, Vitico, Diago, Raunel, El Cadete, Pozo, Jota pos las inolvidables noches de DOTA 2. A mis amigos Toni, Alfredo, Félix, Alicia, , Wichy, Yipssy, Ana Beatriz y Yudi por todos los días de fiesta que pasamos juntos. A mi novia por su cariño y dedicación..
(7) iii. AGRADECIMIENTOS. A mi madre por su gran apoyo durante esta etapa, a Arelys Emiliana Ramos Fleites por su ayuda, comprensión y paciencia como profesora, tutora y amiga. Al profesor Daniel por su apoyo..
(8) iv. TAREA TÉCNICA. El análisis de los fundamentos teóricos de las SDN y el protocolo OpenFlow. Investigar sobre la enseñanza de Redes Definidas por Software en las universidades del mundo. Caracterizar al Mininet como la herramienta de modelación y simulación empleada. Crear las guías de los proyectos de laboratorios de redes SDN. Desarrollar en el Mininet los esquemas y diseños propuestos. Evaluar los resultados.. Firma del Autor. Firma del Tutor.
(9) v. RESUMEN. El crecimiento de los dispositivos móviles, las redes sociales, de la computación en la nube y muchos otros servicios, han dado como resultado el aumento exponencial del tráfico que circula por la red y los centros de datos. Si bien se ha dado una solución temporal con la creación de protocolos de red a todos los requerimientos que demanda el mercado, ésta no representa una solución al verdadero problema. De esta manera surge el concepto de las Redes Definidas por Software, el cual está revolucionando el campo de las tecnologías de la información mediante la separación del plano de control del plano de recursos de red y con la ayuda del protocolo OpenFlow. Este protocolo propone nuevas características que permiten la programación de la red y la experimentación sin la necesidad de que los fabricantes de equipos de red expongan la estructura interna de sus productos. Como nueva tecnología en surgimiento y desarrollo se ha masificado el estudio de las SDN en la mayoría de las universidades del mundo. Uno de los métodos de estudio e investigación más utilizado es con la utilización de las herramientas de simulación y emulación de redes existentes. El presente trabajo se centra en el desarrollo de prácticas de laboratorios mediante el uso de la herramienta de emulación Mininet para el estudio de las SDN. Para ello fueron analizados los fundamentos teóricos de este tipo de redes, del protocolo OpenFlow, los controladores disponibles en la industria y los principales simuladores y/o emuladores existentes. Se hace una propuesta de tres laboratorios aplicando temas sobre la creación de topologías, tráfico cliente-servidor, mediciones de ancho de banda, análisis de paquetes e implementación de una aplicación de balance de carga. El estudio realizado y los laboratorios propuestos en esta memoria contribuyen al desarrollo de la enseñanza de las SDN..
(10) vi. TABLA DE CONTENIDOS. PENSAMIENTO .....................................................................................................................i DEDICATORIA .................................................................................................................... ii AGRADECIMIENTOS ........................................................................................................ iii TAREA TÉCNICA ................................................................................................................iv RESUMEN ............................................................................................................................. v INTRODUCCIÓN .................................................................................................................. 1 CAPÍTULO 1.. FUNDAMENTOS TEÓRICOS ................................................................ 4. 1.1. Limitaciones de las redes actuales ........................................................................... 4. 1.2. Definición y características generales de las SDN ................................................... 5. 1.3. Arquitectura SDN..................................................................................................... 6. 1.4. Protocolo OpenFlow ................................................................................................ 9. 1.4.1. Switch OpenFlow ........................................................................................... 10. 1.4.2. Mensajes del protocolo OpenFlow ................................................................. 11. 1.5. Simulación de redes SDN ...................................................................................... 13. 1.5.1. Softwares utilizados en la simulación y/o emulación de redes SDN .............. 14. 1.6. Universidades en el mundo que enseñan SDN ...................................................... 15. 1.7. Controladores SDN ................................................................................................ 17. 1.8. Conclusiones del capítulo ...................................................................................... 20.
(11) vii CAPÍTULO 2.. DESARROLLO DE LABORATORIOS ................................................ 21. 2.1. Mininet ................................................................................................................... 21. 2.2. Emulación en Mininet ............................................................................................ 23. 2.3. MiniNAM ............................................................................................................... 24. 2.4. Herramientas IPerf, cURL y Wget ......................................................................... 25. 2.4.1. Herramienta Iperf ............................................................................................ 25. 2.4.2. cURL ............................................................................................................... 25. 2.4.3. Wget ................................................................................................................ 26. 2.5. Wireshark ............................................................................................................... 26. 2.6. Hipervisores ........................................................................................................... 27. 2.7. Recursos utilizados................................................................................................. 28. 2.7.1. Recursos de hardware ..................................................................................... 28. 2.7.2. Recursos de software ...................................................................................... 28. 2.8. Laboratorio #1. Introducción al uso de Mininet y el controlador ODL. Creación de. las topologías SDN básicas. .............................................................................................. 29 2.9. Laboratorio #2. Emulación de un servidor HTTP y mediciones de ancho de banda. 35. 2.10. Laboratorio #3. Balance de carga ....................................................................... 39. 2.11. Conclusiones del capítulo ................................................................................... 44. CAPÍTULO 3. 3.1. ANALISIS Y EVALUACIÓN DE LOS RESULTADOS ...................... 45. Análisis y resultados .............................................................................................. 45. 3.1.1. Resultados laboratorio # 1. Introducción al uso de Mininet y el controlador. ODL. Creación de las topologías SDN básicas. ........................................................... 45 3.1.2. Resultados laboratorio # 2. Emulación de un servidor HTTP y mediciones de. ancho de banda.............................................................................................................. 48.
(12) viii 3.1.3 3.2. Resultados laboratorio # 3. Balance de carga. ................................................ 51. Conclusiones del capitulo ...................................................................................... 57. CONCLUSIONES Y RECOMENDACIONES ................................................................... 58 Conclusiones ..................................................................................................................... 58 Recomendaciones ............................................................................................................. 59 REFERENCIAS BIBLIOGRÁFICAS ................................................................................. 60 ANEXOS .............................................................................................................................. 64 Anexo I. Instalaciones previas para el desarrollo de los laboratorios. ........................... 64. Anexo II. Elementos utilizados en el Laboratorio 2. ................................................... 69. Anexo III. Resultados obtenidos en el Laboratorio 1. .................................................. 70. Anexo IV. Resultados obtenidos en el laboratorio 2. ................................................... 71. Anexo V. Resultados obtenidos en el Laboratorio 3. .................................................. 72. NOTACIÓN Y ACRÓNIMOS ............................................................................................. 77.
(13) INTRODUCCIÓN. 1. INTRODUCCIÓN. Desde sus inicios la Universidad Central “Marta Abreu” de las Villas se ha caracterizado, por impartir a sus estudiantes la más completa preparación posible dependiendo del momento histórico vivido. En la actualidad, el desarrollo de la ciencia y la técnica es cada vez más acelerado, de ahí que nuestra universidad para mantener su nivel se sincronice al desarrollo en todas las esferas y disciplinas posibles, ejemplo de ello es el programa de modelación y simulación que se encuentra en constante desarrollo y actualización con la evolución de la virtualización y las redes definidas por software (SDN, por sus siglas en inglés). Entre 2009 y 2012 surge de manera comercial una nueva arquitectura de red, las redes SDN, impulsada por la Fundación de Redes Abiertas (ONF, por sus siglas en inglés) como una prometedora solución a los problemas de flexibilidad, escalabilidad, seguridad y calidad de servicio existente en las redes actuales. Existen grandes empresas que ya están migrando sus redes hacia enfoques definidos por software como Google, Microsoft, Yahoo!, Facebook y Cisco que ya ofrece soluciones SDN en sus servicios ya sea en redes empresariales, LAN o con la nueva adquisición de Viptela que brinda soluciones SD-WAN de primer nivel [1]. La evolución de las redes de computadoras trajo consigo la necesidad de simulación previa de estas, ya sea con fines educativos o empresariales, por lo que con el paso de los años se crearon una gran variedad de herramientas de modelación y simulación, todas ellas con sus ventajas y desventajas frente a situaciones específicas, y con la capacidad de modelar y simular una gran cantidad de redes como son LAN, MAN (Metropolitan Área Network), WLAN, etc. Algunas de estas herramientas son NS (Network Simulator), NS2 (Network.
(14) INTRODUCCIÓN. 2. Simulator Version-2). NS3 (Network Simulator Version-3), GNS3 (Graphical network simulator), OMNET++ (Objective Modular Network Testbed in C++), Packet Tracert, OPNET Modeler (Optimized Network Engineering Tools), Mininet, este último se ha posicionado dentro de lo profesional en el área investigativa de las SDN, determinando el comportamiento de estas redes y del protocolo OpenFlow. Como respuesta a los nuevos programas de formación universitaria desarrollados en la universidad, se pone en práctica un proyecto para la actualización de la enseñanza de redes de comunicaciones, utilizando la herramienta de simulación Mininet, debido al crecimiento en importancia de la arquitectura SDN y el protocolo OpenFlow. Partiendo de lo anterior se plantea el siguiente problema científico: ¿Cómo elaborar en Mininet las topologías y las guías más idóneas para desarrollar proyectos de laboratorios prácticos que vinculen temas de las asignaturas de Redes de Comunicaciones? El objetivo general a alcanzar: Desarrollar nuevos laboratorios para la asignatura Redes de la disciplina Sistemas de Telecomunicaciones. Con vistas a alcanzar este objetivo general se debe completar los siguientes objetivos específicos: Realizar un estudio de caracterización técnica y operacional de las redes definidas por software y el protocolo OpenFlow. Identificar y argumentar el software de simulación adecuado para alcanzar el cumplimiento del objetivo general planteado. Realizar un análisis del programa de estudio de SDN en otras universidades. Confeccionar las guías de laboratorios para las asignaturas de Redes de la Disciplina de Telecomunicaciones. Implementar los laboratorios en Mininet. Las interrogantes científicas planteadas en la realización de este trabajo son: ¿Cuál es la actualidad de las SDN y el protocolo OpenFlow? ¿Cuáles son los principales softwares de simulación para SDN?.
(15) INTRODUCCIÓN. 3. ¿Cómo se enseña SDN en otras universidades del mundo? ¿Cuáles son los laboratorios más adecuados para la enseñanza de SDN? ¿Cómo implementar los laboratorios en Mininet que cumplan los requisitos necesarios para Redes II? Las tareas de investigación que se realizaron para dar cumplimento a los objetivos específicos son: El análisis de los fundamentos teóricos de las SDN y el protocolo OpenFlow. Investigar sobre la enseñanza de Redes Definidas por Software en las universidades del mundo. Caracterizar al Mininet como la herramienta de modelación y simulación empleada. Crear las guías de los proyectos de laboratorios de redes SDN. Desarrollar en el Mininet los esquemas y diseños propuestos. Evaluar los resultados. La memoria está estructurada en introducción, tres capítulos, conclusiones, recomendaciones y anexos. Capítulo 1: Fundamentos teóricos. Capítulo 2: Desarrollo de laboratorios Capítulo 3: Análisis y evaluación de los resultados. En las conclusiones se hace un análisis crítico de los resultados obtenidos a partir de los objetivos específicos que se trazaron inicialmente..
(16) CAPÍTULO 1. FUNDAMENTOS TEÓRICOS. 4. CAPÍTULO 1. FUNDAMENTOS TEÓRICOS. En este capítulo se fundamenta teóricamente algunos conceptos que sirven como guía para la realización del presente proyecto, entre ellos las limitaciones que presentan las redes actuales, características fundamentales de las redes definidas por software, su arquitectura y aplicaciones en las redes empresariales, así como los principales controladores utilizados y los fundamentos del protocolo OpenFlow. 1.1. Limitaciones de las redes actuales. El aumento acelerado de los dispositivos móviles, de los servicios en la nube, de las redes sociales, la virtualización, la demanda de grandes velocidades de conexión, la necesidad de movilidad y la modificación de los patrones de tráfico en los centros de datos siendo este en los últimos tiempos entre servidores y no usuario-servidor como era anteriormente, son algunas de las causas por las cuales las arquitecturas de redes existentes no satisfacen las necesidades de los usuarios de hoy en día [2], [3] ,[4], [5]. Este fenómeno viene dado principalmente por las limitaciones que presentan las redes actuales, entre las que se encuentran: . Imposibilidad de escalabilidad. Con el crecimiento de la virtualización, las demandas en los centros de datos aumentan aceleradamente y la suma de cientos de miles de equipos nuevos que deben ser configurados y gestionados provoca que la red se vuelve más compleja y menos escalable. . Políticas inconsistentes. Para implementar una política que abarque toda la red se deben configurar miles de dispositivos y mecanismos. Debido a esto, la complejidad de las redes actuales hace que sea muy difícil aplicar las diferentes políticas que los usuarios móviles y las nuevas.
(17) CAPÍTULO 1. FUNDAMENTOS TEÓRICOS. 5. máquinas virtuales demandan, lo que deja a las redes muy vulnerables a violaciones de la seguridad [4]. . Dependencia de los proveedores. Los operadores y las empresas tratan de dar nuevos servicios y prestaciones en respuesta a las necesidades cambiantes del negocio, pero su capacidad se ve frenada por los ciclos de producción de los vendedores de productos, que pueden durar hasta tres años. La falta de interfaces abiertas en los equipos reduce la posibilidad de interconexión con otros proveedores limitando la capacidad de los operadores al intentar adaptar la red a situaciones particulares. . Complejidad de la arquitectura de red. Con el constante crecimiento de las redes en las últimas tres décadas la industria ha creado y mejorado protocolos de red para brindar servicios con una mayor seguridad y eficiencia. Sin embargo, estos protocolos han sido definidos de manera aislada para soluciones específicas sin tener en cuenta una visión abstracta y global de la red. Esto hace a las redes modernas muy complejas [6]. Para darle solución a estas limitaciones la industria ha creado una nueva arquitectura de red, la arquitectura SDN. 1.2. Definición y características generales de las SDN. Las Redes Definidas por Software surgen como un nuevo paradigma de red, convirtiéndose en uno de los temas más abordado en el mundo de las tecnologías de la información y las comunicaciones (ICT, por sus siglas en inglés). Según la ONF [4]: “Las redes definidas por software se definen como una arquitectura de red dinámica, gestionable, adaptable, de costo eficiente. Lo cual la hace ideal para las altas demandas de ancho de banda y la naturaleza dinámica de las aplicaciones actuales. Esta arquitectura desacopla el control de la red y la funcionalidad de reenvío de información permitiendo que el control de la red pueda ser completamente programable logrando que las aplicaciones y servicios de red se abstraigan de la infraestructura de red subyacente”..
(18) CAPÍTULO 1. FUNDAMENTOS TEÓRICOS. 6. Según la Unión Internacional de Telecomunicaciones (ITU, por sus siglas en inglés) en la recomendación UIT-Y.3300 las redes definidas por software son: conjunto de técnicas que permiten directamente programa, orquestar, controlar y administrar los recursos de la red, lo que facilita el diseño, la entrega y operación de servicios de red de una manera dinámica y escalable [7]. Este nuevo paradigma de red permite [7]: . Control de red lógicamente centralizado que permite controlar y administrar los recursos de la red por software y disminuye el número de puntos para controlar y gestionar.. . Soporte para la virtualización de red.. . Personalización de red, para implementaciones y operaciones de red eficientes y efectivas.. Con la implementación de esta nueva arquitectura se logra la separación del control SDN de los recursos de la red, la programabilidad de los recursos de la red, la abstracción de los recursos de la red mediante información estándar y modelos de datos y el soporte para la orquestación de recursos de red y aplicaciones SDN. El objetivo principal que persigue esta nueva arquitectura es facilitar la implementación e implantación de servicios de red de una manera determinista, dinámica, económica y escalable, evitando al administrador de red gestionar dichos servicios a bajo nivel, al separar el plano de control del plano de datos y ofrecer un dominio centralizado de la red al controlador SDN. Esta separación entre el software y el hardware hace que este último se pueda desprender de parte de sus procesos, consiguiendo así ser más eficiente en las tareas de conmutación [8]. 1.3. Arquitectura SDN. Una SDN plantea una arquitectura de red que se caracteriza por separar el plano de datos del plano de control, siendo este último programable. Esta cualidad permite determinar las características de los dispositivos de red mediante la utilización de aplicaciones y servicios, dando paso al manejo de la red como una entidad lógica o virtual [3]. Los dispositivos de la capa de infraestructura se convierten en elementos especializados en el reenvío de paquetes.
(19) CAPÍTULO 1. FUNDAMENTOS TEÓRICOS. 7. que procesan los datagramas entrantes en función de un conjunto de reglas generadas por uno o varios controladores de la capa de control, de acuerdo a una lógica de programación predefinida en la capa de aplicación. El controlador usualmente se hospeda en un servidor remoto y se comunica mediante conexiones seguras con los dispositivos de la capa de infraestructura utilizando mandos estandarizados [4]. En la recomendación UIT-Y.3302 se define la arquitectura básica de una Red Definida por Software como se observa en la Figura 11, la cual consta de la capa de aplicación SDN (SDN-AL, por sus siglas en inglés), capa de control SDN (SDN-CL, por sus siglas en inglés) y la capa de recursos SDN (SDN-RL, por sus siglas en inglés), así como las interfaces entre ellas y las funciones de gestión multicapa (MMF, por sus siglas en inglés) [9].. Figura 1.1. Estructura de capas SDN [9]. Según la recomendación UIT-Y.3300 las capas de la arquitectura SDN se definen como: Capa de recursos SDN El SDN-RL es donde los elementos de la red física o virtual realizan el transporte y/o procesamiento de paquetes de datos según las decisiones de SDN-CL. La información de aprovisionamiento de políticas (incluyendo información de configuración) que resultan como decisiones tomadas por la SDN-CL, así como la información acerca de los recursos de red se intercambian a través da la interface de control de recursos (RCI, por sus siglas en inglés). El SDN-RL también interactúa con MMF utilizando el punto de referencia de la capa de recursos MMF (MMFR) [10]..
(20) CAPÍTULO 1. FUNDAMENTOS TEÓRICOS. 8. La información intercambiada a través de la interfaz de control de recursos (RCI, por sus siglas en inglés) incluye información de control proporcionada por la SDN-CL a la SDNRL (por ejemplo, para configurar un recurso de red o proporcionar políticas), así como la información que se refiere a las notificaciones (no solicitadas) enviadas por el SDN-RL siempre que en un recurso de red se detecta un cambio. El punto de referencia de RCI proporciona acceso de alto nivel a los recursos de la red, independientemente de su respectiva tecnología. Capa de control SDN SDN-CL proporciona medios programables para controlar el comportamiento de los recursos SDN-RL (como transporte y procesamiento de datos), siguiendo solicitudes recibidas de SDN-AL y de acuerdo con las políticas MMF. SDN-CL opera con recursos proporcionados por la SDN-RL y expone una vista abstracta de la red controlada a la SDNAL. El SDN-CL interactúa con el SDN-RL utilizando el punto de referencia de las interfaces de control de recursos (RCI), y con MMF usando el punto de referencia de la capa de control MMF (MMFC). También interactúa con el SDN-AL a través de la interface de control de aplicaciones (ACI, por sus siglas en inglés) [10]. Capa de aplicación SDN SDN-AL habilita un comportamiento con conocimiento del servicio de la red subyacente de una programática manera. Esta capa dispone de una abstracción superior a las demás capas que permite crear aplicaciones para automatizar tareas de configuración, provisión y despliegue de los servicios en la red. La SDN-AL interactúa con la SDN-CL a través del punto de referencia de la interfaz de control de aplicaciones (ACI), e interactúa con el MMF a través del punto de referencia de capa de aplicación de MMF (MMFA) [10]. En la Figura 1.2 se muestra una visión general de la arquitectura funcional SDN donde se muestra detalladamente los componentes y los soportes definidos en cada capa..
(21) CAPÍTULO 1. FUNDAMENTOS TEÓRICOS. 9. Figura 1.2. Arquitectura funcional SDN [9]. 1.4. Protocolo OpenFlow. OpenFlow es el protocolo que estructura la comunicación entre los planos de control y de datos en los dispositivos de red que lo admiten. Ha sido diseñado para proporcionar una aplicación externa con acceso al plano de reenvío de un conmutador de red o en su defecto de un enrutador. El acceso a esta parte del enrutador se puede obtener a través de la red, lo que permite que el programa de control no tenga que estar ubicado cerca del conmutador. Este protocolo empezó a desarrollarse en 2007 y es el resultado de la colaboración de los sectores académico y empresarial. Fueron las universidades de Stanford y California en Berkeley quienes llevaron las riendas en primera instancia. En la actualidad, la versión más reciente es la 1.6 [11]. Lo que propone OpenFlow es un nuevo enfoque para que los investigadores puedan experimentar con protocolos en las redes que se usan a diario. Permite a los investigadores experimentar con conmutadores de manera uniforme a la velocidad de la línea y con una densidad de puertos muy alta. Por otra parte, los fabricantes no tienen que exponer los procesos internos de sus conmutadores. La propuesta de OpenFlow es muy clara, permitir que los investigadores puedan evaluar sus ideas en un entorno de trabajo real y ser un componente muy útil para desarrollar plataformas de pruebas a gran escala..
(22) CAPÍTULO 1. FUNDAMENTOS TEÓRICOS. 10. Aunque este es el protocolo más utilizado en SDN en los últimos tiempos se descubrió que tiene una vulnerabilidad. Kashyap Thimmaraju de la Technical University of Berlin es uno de los descubridores del error que demuestra que el handshake de OpenFlow no requiere que el controlador autentique los switches durante este proceso. Además, el controlador no está obligado a autorizar el acceso de los switches a él. Lo que eso significa es que los switches maliciosos podrían explotar la confianza inherente que OpenFlow pone en sus redes para causar ataques de denegación de servicio y realizar comunicaciones encubiertas [12]. Si bien los efectos de este exploit pueden ser graves, hay un factor importante que hace que no sea probable ver una aplicación generalizada: requiere la conexión física de un conmutador malicioso en una red de víctimas y una conexión en la capa de transporte segura (TLS, por sus siglas en inglés) exitosa a un controlador de red. Eso no significa que no podría suceder de forma remota, pero tomaría un gran esfuerzo realizar tal ataque. 1.4.1 Switch OpenFlow Un switch OpenFlow es un programa de software o dispositivo de hardware que es capaz de reenviar paquetes en un entorno de redes definidas por software (SDN). Los switches OpenFlow están basados en la especificación OpenFlow o en su defecto tienen compatibilidad con las funciones que permiten trabajar con flujos [13]. Los conmutadores OpenFlow pueden soportar diversas funcionalidades, aunque existen una serie de características comunes a todos ellos. La arquitectura de un conmutador OpenFlow consiste en al menos tres partes: . Tabla de flujos: Con una acción asociada a cada entrada de la tabla, de tal manera que el switch tenga la información necesaria para procesar todo tipo de datos.. . Canal seguro: Conecta el switch a un proceso de control remoto (controlador), que permita el envío de comandos y paquetes entre el conmutador y el controlador usando el protocolo OpenFlow.. . Controlador: Un controlador añade y elimina entradas en la tabla de flujos.. En un conmutador convencional, el reenvío de paquetes y el enrutamiento de alto nivel ocurren en el mismo dispositivo. En una red definida por software, el plano de datos esta.
(23) CAPÍTULO 1. FUNDAMENTOS TEÓRICOS. 11. desacoplado del plano de control. El plano de datos todavía se implementa en el switch en sí, pero el plano de control se implementa en el software y un controlador SDN independiente toma decisiones de enrutamiento de alto nivel. El switch y el controlador se comunican a través de los mensajes de la especificación OpenFlow. Las instrucciones de reenvío se basan en el flujo, y son aplicadas a todos los paquetes comparten una serie de características comunes. Un flujo en un conmutador puede estar definido por muchos criterios entre los que encontramos: puerto donde se recibe el paquete, etiqueta VLAN, MAC origen o destino, protocolo, etc. Si un paquete no encuentra ninguna coincidencia en las tablas debe ser enviado al Controlador SDN. Dicho controlador definirá un nuevo flujo para el paquete y enviará al conmutador una o más entradas para las tablas de flujo existente. Para la próxima ocasión los paquetes que coincidan con este nuevo flujo no tendrán que esperar la respuesta del Controlador, sino que serán encaminados a velocidad de línea por el conmutador OpenFlow. 1.4.2 Mensajes del protocolo OpenFlow La comunicación entre el controlador y el switch ocurre usando el protocolo OpenFlow, donde se puede intercambiar un conjunto de mensajes definidos entre estas entidades a través de un canal seguro. El canal seguro es la interfaz que conecta cada OpenFlow switch con el controlador de red. La conexión TLS hacia el controlador especificado por el usuario se inicia en el arranque del sistema. El puerto TCP predeterminado del controlador suele ser el 6633. El conmutador y el controlador se autentican mutuamente mediante el intercambio de certificados firmados por una clave privada especifica del sitio. Cada conmutador debe poseer la capacidad de ser configurado por el usuario con un certificado para autenticar el controlador y el otro para autenticarse en el controlador (intercambio de certificado). Una vez que el controlador y el conmutador se han autenticado, OpenFlow define tres tipos de mensajes con sus respectivos subtipos para mantener la comunicación entre las partes: Controlador a conmutador, asíncronos y simétricos [13]. Controlador a conmutador: El controlador inicia los mensajes de controlador a conmutador y los usa para administrar o inspeccionar directamente el estado del.
(24) CAPÍTULO 1. FUNDAMENTOS TEÓRICOS. 12. conmutador. Este tipo de mensajes puede o no requerir una respuesta del conmutador y se clasifica en los siguientes subtipos: . Características: Tras el establecimiento de la sesión TLS, el controlador envía una solicitud de características al switch. Este responde con un mensaje de características que especifique todas las capacidades admitidas por el conmutador.. . Configuración: El controlador puede establecer y consultar parámetros de configuración en el switch. El switch solo responde a una consulta del controlador.. . Modificación de Estado: Estos mensajes son enviados por el controlador para administrar el estado de los switches. Se utilizan para agregar, eliminar o modificar las entradas de la tabla de flujo o para establecer las prioridades del puerto del switch. Los mensajes de modificación pueden ser de los subtipos ADD, MODIFY, DELETE o MODIFY and DELETE.. . Leer Estado: Estos mensajes recopilan estadísticas de las tablas de flujo de conmutadores, los puertos y las entradas de flujos individuales.. . Enviar Paquete: El controlador los utiliza para enviar paquetes desde un puerto específico en el conmutador.. . Barrera: Los mensajes de solicitud y respuesta de barrera son utilizados por el controlador para garantizar que se cumplen las dependencias de los mensajes o para recibir notificaciones de las operaciones completadas.. Mensajes Simétricos: Los mensajes simétricos son iniciados por los conmutadores o el controlador y enviados sin solicitud. Hay tres subtipos de mensajes simétricos en el protocolo OpenFlow: . Hello: Los mensajes de saludo se intercambian entre el conmutador y el controlador al configurar la conexión.. . Eco: Los mensajes de petición y respuesta de eco pueden enviarse desde el conmutador o el controlador, y deben devolver una respuesta de eco. Estos mensajes se pueden usar para indicar la latencia, el ancho de banda y/o la actividad de una conexión entre el conmutador y el controlador..
(25) CAPÍTULO 1. FUNDAMENTOS TEÓRICOS. . 13. Vendor: Estos mensajes proporcionan una forma estándar para que los switches OpenFlow ofrezcan funcionalidad adicional dentro del espacio de tipos de mensaje para futuras revisiones de la especificación.. Mensajes Asíncronos: Los mensajes asíncronos son iniciados por el switch y se utilizan para actualizar el controlador de eventos de red y los cambios en el estado del switch. Los conmutadores envían mensajes asíncronos al controlador para denotar una llegada de paquete, cambio de estado o un error. Hay cuatro mensajes asincrónicos principales: . Paquete Entrante: Para todos los paquetes sin entrada de flujo coincidente o si un paquete coincide con una entrada y acción de reenvío al controlador, se envía un mensaje de paquete al controlador. Si el conmutador tiene suficiente memoria para almacenar en búfer los paquetes que se envían al controlador, el mensaje de paquete retiene una fracción del encabezado y una ID de búfer que usara el controlador cuando el switch esté listo para reenviar el paquete. Los conmutadores no compatibles con búfer interno deben enviar el paquete completo al controlador como parte del mensaje.. . Eliminación de Flujo: Cuando se agrega una entrada de flujo al conmutador mediante un mensaje de modificación de flujo, un valor de tiempo de espera inactivo indica cuando se debe eliminar la entrada debido a la falta de actividad, y de la misma manera cuando existe un valor de tiempo de espera excedido.. . Estado de puerto: Se espera que el switch envíe mensajes de estado de puerto al controlador a medida que cambia el estado de configuración del puerto.. . Error: El switch puede notificar al controlador en caso de existir problemas usando mensajes de error.. 1.5. Simulación de redes SDN. La simulación y/o emulación de red es la metodología más útil y común utilizada para evaluar diferentes topologías de red que no se han implementado en el mundo real. Las redes SDN están en constante desarrollo y su simulación para el estudio o para su implementación es de vital importancia..
(26) CAPÍTULO 1. FUNDAMENTOS TEÓRICOS. 14. 1.5.1 Softwares utilizados en la simulación y/o emulación de redes SDN A continuación, se presenta una breve reseña de las herramientas más utilizadas a nivel académico y empresarial para la simulación y/o emulación de redes SDN [14], [15]: . Mininet. . Cisco Packet Tracer. . GNS3. . EsitNet. En la Figura 1.3 se muestra una comparación de las principales características de los simuladores y/o emuladores de redes SDN anteriormente mencionados.. Figura 1. 3. Comparación de características Mininet, Packet Tracer, GNS y EstiNet [14]..
(27) CAPÍTULO 1. FUNDAMENTOS TEÓRICOS. 15. Este trabajo se concentra en la herramienta Mininet siendo hoy una de las más empleadas en la enseñanza de la emulación de redes SDN. 1.6. Universidades en el mundo que enseñan SDN. Las universidades están experimentando cambios importantes a medida que crece la demanda de cursos y programas de SDN. Algunas universidades importantes, como Stanford y Berkeley, están a la vanguardia del desarrollo de esta nueva tecnología haciendo uso de diferentes simuladores y/o emuladores ya sea con fines educativos o investigativos. La herramienta de emulación Mininet ofrece software SDN gratuito y documentación sobre cómo instalarlo y usarlo a través de SDX Central, además de otras ventajas, por lo que se ha convertido en una las principales opciones para la emulación de SDN. A continuación, se mencionan algunas de las universidades del mundo que incluyen la investigación y enseñanza de SDN en sus programas [16], [17], [18], [19]: . En Marist College en Poughkeepsie, Nueva York, el conferencista profesional de informática y tecnología de la información Robert Cannistra encabezó la aventura de la universidad en SDN en 2011, después de que la universidad recibió una beca de la facultad de IBM para descubrir de qué se trataba SDN. Producto del desarrollo de las SDN se creó un laboratorio de certificación llamado Marist SDN Innovation Lab del cual se han graduado y han sido contratados en el sector privado para desarrollar e implementar tecnologías SDN muchos estudiantes.. . En The City University de Nueva York (CUNY, por sus siglas en inglés) la profesora Carolyn DeCusatis está al frente del programa SDN junto con su esposo el ingeniero distinguido de IBM, Casimer DeCusatis y el profesor asistente y presidente del departamento de tecnología de ingeniería electromecánica y computación de la universidad, Aparicio Carranza.. . En la universidad de Colorado Boulder, en la Academia Programa interdisciplinario de telecomunicaciones (ITP, por sus siglas en inglés), el académico residente Dr. Levi Perigo está a la vanguardia de la tecnología de las redes junto con el Director de Laboratorio José Santos. El Dr. Perigo enseña varios cursos relacionados con.
(28) CAPÍTULO 1. FUNDAMENTOS TEÓRICOS. 16. SDN y asesora varias tesis de maestría, una es sobre convergencia BGP, SDN y redes tradicionales, y la otra tesis se centra en la automatización de redes. . En la Universidad de Stanford los profesores Nick McKeown, Balaji Prabhakar, Fouad A. Tobagi son algunos de los que imparten cursos sobre SDN y desarrollan proyectos con la implementación de centros de datos y redes empresariales alambradas e inalámbricas con tecnologías SDN.. . En la Universidad de Princeton, Jennifer Rexford profesora de ingeniería del departamento de ciencias de la computación junto con el profesor Nick Feamster han incluido SDN en sus cursos generales de redes y plantean que "Los operadores de redes de mañana serán programadores ". El Dr. Feamster es pionero en la enseñanza SDN puesto que lanzó un curso en línea en el sitio web de aprendizaje digital Coursera en 2012. Desde entonces, más de 150,000 estudiantes se han inscrito para aprender SDN, viendo al menos algunas de sus conferencias de video, y alrededor de 15,000 han completado todas materiales del curso requeridos.. . En la Universidad Tecnológica Nacional de Argentina el Grupo Ingeniería en Sistemas de Información compuesto por D. Bolatti, R. Calcagno, C. Cuevas, S. Gramajo, R. Scappini, J. Torre, M. Acuña, M. Marturet han desarrollado diferentes trabajos investigativos como “Estudio de Herramientas de Simulación en Redes Definidas por Software” donde resaltan a las herramientas Mininet y GNS3 como las más idóneas para la enseñanza e investigación.. . La Facultad de Ciencias Básica e Ingeniería, Universidad Católica de Pereira, en Colombia y la Facultad de Ingeniería Electrónica, Universidad Pontificia Bolivariana, en Colombia han desarrollado trabajos investigativos en conjunto como “Uso de Mininet y Openflow 1.3 para la enseñanza e investigación en redes IPv6 definidas por software” realizado por Yasmin Becerra Sánchez, Bryan Valencia Suárez, Santiago Santacruz Pareja y Jhon Jairo Padilla-Aguilar donde se evidencia el uso de Mininet como herramienta de emulación SDN para la enseñanza.. Todas estas universidades utilizan Mininet como herramienta de emulación para la enseñanza de SDN y la mayoría han implementado laboratorios con equipos que soportan OpenFlow para la práctica real y la investigación..
(29) CAPÍTULO 1. FUNDAMENTOS TEÓRICOS. 1.7. 17. Controladores SDN. Un controlador SDN es un sistema basado en software o conjunto de sistemas que en contraste pueden proporcionar una serie de servicios o capacidades que permiten realizar tareas específicas en los dispositivos que son parte de la red definida por software y en algunos casos integrar a los que están fuera del canal de comunicación OpenFlow. Actualmente, existen diferentes implementaciones de controladores OpenFlow y SDN, la mayoría están construidos a base de recursos de código abierto y otros han sido desarrollados por los grandes fabricantes de hardware como Cisco, Big Switch Networks y VMware. Algunos controladores OpenFlow presentan características que otros no poseen y se hallan escritos en lenguajes diferentes, por lo que la selección de uno de ellos debe hacerse de acuerdo al tipo de implementación que se está buscando. A continuación, se enumeran algunos de los controladores más importantes utilizados en SDN [20], [21], [22], [23], [24], [25]: 1. CISCO OPEN SDN CONTROLLER 2. SDN VAN CONTROLLER 3. PLEXXI 4. NOX 5. POX 6. RYU 7. TREMA 8. BEACON 9. FLOODLIGHT 10. OPENDAYLIGHT 11. ONOS En la Figura 1.4 se muestra un resumen de las características de algunos controladores SDN..
(30) CAPÍTULO 1. FUNDAMENTOS TEÓRICOS. 18. Figura 1.4. Características de algunos controladores [24]. A continuación, se realiza una breve descripción de los controladores OpenDayLight (ODL, por sus siglas en inglés) y POX. ODL presenta una interfaz donde se puede visualizar la red SDN creada lo que resulta muy útil en la enseñanza SDN y POX es posiblemente el controlador más utilizado en la investigación SDN. Estos son los controladores seleccionados para el desarrollo de los laboratorios. OPENDAYLIGHT OpenDayLight (ODL por sus siglas en inglés) es una plataforma modular abierta escrita en Java, creada para personalizar y automatizar redes de cualquier tamaño y escala. El proyecto OpenDayLight surgió del movimiento de SDN, con un claro enfoque en la programabilidad de la red. Fue diseñado desde el principio como una base para soluciones comerciales que abordan una variedad de casos de uso en entornos de redes ya existentes. Es un software puro que puede ejecutarse en cualquier sistema operativo o metal desnudo siempre que admita Java [23]. La Figura 1.5 muestra la estructura del controlador Open Day Light..
(31) CAPÍTULO 1. FUNDAMENTOS TEÓRICOS. 19. Figura 1.5. Estructura del controlador Open Day Light [26]. Carbón es la sexta versión estable de Open Day Light, proyecto que se ha convertido en la plataforma SDN abierta de facto, brindando asistencia a más de mil millones de suscriptores y empresas líderes. Sus versiones más recientes incorporan soporte en temas claves como mejoras para admitir las necesidades de Internet de las Cosas (IoT, por sus siglas en inglés), gestión integrada de NFV, para permitir la federación y la clusterización como detalla la Figura 1.6 [27].. Figura 1.6. Características y funciones de ODL [26]..
(32) CAPÍTULO 1. FUNDAMENTOS TEÓRICOS. 20. POX POX es una versión de NOX que solo funciona con Python. Se puede considerar como un controlador OpenFlow de fuente abierta escrito en Python, y una plataforma para el desarrollo rápido y creación de prototipos de aplicaciones de red. El objetivo principal de POX es la investigación. Dado que muchos de los proyectos de investigación son de corta duración, el enfoque de los desarrolladores de POX está en las interfaces en lugar de mantener una API estable. POX se administra en repositorios de código fuente de Git [25]. 1.8. Conclusiones del capítulo. La evolución en los últimos años en el ámbito de las TIC está creando una mayor demanda de ancho de banda y acceso a Internet por parte de los usuarios, así como de una gestión más flexible y dinámica de sus servicios. El uso de la arquitectura SDN brinda ventajas significativas con respecto a las redes tradicionales como: facilidad de innovación y gestión, independencia de proveedores e incremento del rendimiento. SDN se considera como una solución prometedora para satisfacer estas demandas. Las principales potencialidades y características de las Redes Definidas por Software básicamente se destacan por tres atributos: programación, inteligencia de la red lógicamente centralizada y separación de los planos de control y datos. En esta arquitectura sobresale una amplia utilización del protocolo OpenFlow como interfaz de comunicación entre la capa de control y la de infraestructura. Estas redes, introducen una nueva etapa en el desarrollo de las TIC, permitiendo mejorar significativamente la agilidad, automatización, seguridad, escalabilidad, fiabilidad y capacidad de gestión dentro de la red mediante el empleo de controladores y aplicaciones SDN. Todo lo anterior justifica la necesidad de conformar 3 prácticas de laboratorios para contribuir a la enseñanza de las redes SDN en la Facultad de Eléctrica de la Universidad Central “Marta Abreu” de las Villas..
(33) CAPÍTULO 2. DESARROLLO DE LABORATORIOS PARA REDES SDN. 21. CAPÍTULO 2. DESARROLLO DE LABORATORIOS PARA REDES SDN.. En este capítulo se desarrollan 3 proyectos de laboratorio referidos a la nueva arquitectura de red SDN con la utilización de la herramienta de emulación Mininet y el analizador de protocolos de red Wireshark, los cuales abarcan temas importantes e innovadores de la asignatura de Redes. de Comunicaciones. que se imparte. en la carrera de. Telecomunicaciones y Electrónica en la Facultad Eléctrica de la Universidad Central de las Villas. El primer proyecto incluye temas relacionados el uso del Mininet, el MiniNAM, el controlador Open Day Light y las topologías básicas SDN prediseñadas que ofrece dicho emulador. El segundo proyecto incluye temas relacionados al acceso a servidores HTTP y la medición del ancho de banda en redes SDN, así como la utilización de scripts de Python para crear topologías personalizadas. El tercer proyecto incluye la implementación de una aplicación de balance de carga para el acceso a servidores HTTP en redes SDN con la utilización del controlador POX y el análisis del flujo con la utilización de MiniNAM y Wireshark. 2.1. Mininet. Mininet es un emulador para el despliegue de redes sobre los limitados recursos de un ordenador sencillo simple o máquina virtual. Éste utiliza el kernel de Linux y otros recursos para emular elementos de las SDN como el controlador, los switch OpenFlow y los hosts. Usa una virtualización muy ligera para realizar un sistema que simula una red completa, ejecutando el mismo kernel, sistema y código de usuario. Un host de Mininet se comporta.
(34) CAPÍTULO 2. DESARROLLO DE LABORATORIOS PARA REDES SDN. 22. como una máquina real. Los programas que se pueden ejecutar envían paquetes a través de la red, que parece una interfaz de red con su correspondiente velocidad y retardo. Los paquetes son procesados por un conmutador o enrutador que parece un conmutador o enrutador Ethernet real. Resumiendo, los hosts, enrutadores, enlaces y controladores virtuales de Mininet son reales, únicamente que se ha empleado software en vez de hardware, y el comportamiento es muy similar [13]. Mininet fue creado por un grupo de profesores en la Universidad de Stanford para ser utilizado como una herramienta para apoyar la investigación y la enseñanza en el campo de las tecnologías de redes definidas por software, debido a la red de código abierto que presenta este emulador [13], [28]. Mininet aporta una serie de beneficios: . Velocidad: ya que crear una red es relativamente fácil y no requiere de más de unos segundos.. . Posibilidad de crear infinitos tipos de topologías.. . Puede ejecutar programas de los que se disponga en la maquina Linux, como puede ser, por ejemplo, Wireshark.. . Permite personalizar los paquetes enviados (customize Packet forwarding): los conmutadores de Mininet pueden ser programados usando el Protocolo OpenFlow.. . Diferentes formas donde ejecutar Mininet: en una portátil, en un servidor, en una máquina virtual o en un sistema nativo de Linux.. . Compartir resultados.. . Fácilmente de usar: mediante scripts de Python se pueden crear y ejecutar diferentes experimentos de Mininet.. . Mininet es un programa Open-Source.. . Esta bajo un activo desarrollo y mejora continua.. Aunque Mininet aporta una gran cantidad de beneficios también tiene una serie de limitaciones, entre otras, las más importantes son las siguientes [13], [28]: . Usa un único núcleo de Linux para todos los hosts virtuales por lo que no se puede ejecutar software que dependa de Windows u otros sistemas operativos.. . Necesidad de utilizar un controlador OpenFlow independiente..
(35) CAPÍTULO 2. DESARROLLO DE LABORATORIOS PARA REDES SDN. . 23. No posee una noción de tiempo virtual, esto significa que las medidas estarán basadas en tiempo real y por lo tanto los resultados serán más rápidos que en la situación real.. 2.2. Emulación en Mininet. Mininet es una herramienta de emulación que posibilita la generación de diferentes topologías de red entre las que pueden mencionarse las llamadas MINIMAL, SINGLE, LINEAR y TREE. En cualquiera de éstas existe un controlador, varían en el número de hosts, conmutadores y los enlaces entre éstos. La topología MINIMAL, por ejemplo, está compuesta por dos hosts conectados a un conmutador; single también es una topología con un único conmutador, pero la cantidad de host puede indicarse por medio de un parámetro [29]. Existe otra topología que también se puede generar llamada custom que es completamente personalizada por el creador y puede ser generada mediante un script de Python. Cabe resaltar en este punto que un controlador es básicamente un servidor que se encarga de la ejecución de aplicaciones de red que permitan gestionar y mantener la red a través de la comunicación de reglas de enrutamiento, seguridad y otros parámetros. Por esto dentro de las características de Mininet está la utilización de controladores remotos, lo que significa que se puede realizar la emulación de una red que utilice un controlador que esté ejecutándose en la misma máquina o en cualquier parte del mundo [30]. El programa emulador de redes Mininet se puede instalar de tres maneras: 1. En una herramienta de virtualización, importando la máquina virtual (archivo ovf) que se obtiene en el sitio web oficial de Mininet. 2. En una herramienta de virtualización, instalando una máquina virtual de Ubuntu y luego instalando y descargando en esta máquina virtual todos los paquetes del programa Mininet de su repositorio. 3. En una PC con sistema operativo Ubuntu, en la cual también se debe descargar todos los paquetes del programa Mininet de su repositorio. En el Anexo I se muestran los pasos para la instalación inicial necesarios para el desarrollo de las prácticas de laboratorio propuestas..
(36) CAPÍTULO 2. DESARROLLO DE LABORATORIOS PARA REDES SDN. 2.3. 24. MiniNAM. MiniNAM es una herramienta basada en GUI escrita en Python Tkinter. Proporciona animación en tiempo real de cualquier red creada por el emulador Mininet. Permite la modificación dinámica de preferencias y filtros de paquetes: un usuario puede ver flujos selectivos con opciones para codificar paquetes de códigos basados en el nodo de origen / destino y/o el tipo de paquete. Esto proporciona que MiniNAM se considere como una herramienta de apoyo del Mininet para la enseñanza, el aprendizaje y la comprensión de conceptos de redes SDN [31]. Características . Ejecuta programas para generar y controlar el tráfico en tiempo real usando terminales de host.. . Establece preferencias a través de Edit->Preferences para personalizar los flujos de paquetes: . Ajuste la velocidad de los flujos de paquetes.. . Ocultar hosts en la topología si hay demasiados nodos (solo al inicio).. . Paquetes de código de color basados en los nodos de origen o de destino.. . Paquetes de código de color basados en el tipo de paquete.. . Mostrar la dirección IP (primer y último octeto) en paquetes.. . Muestre un cuadro de estadísticas en vivo con cada nodo con el mouse sobre el mouse.. . Filtra ciertos paquetes según el tipo de paquete, la dirección IP y / o MAC a través de Edit->Filters.. . Guarda y carga fácilmente las preferencias y los filtros usando el menú File.. . Pausa la pantalla de flujo en cualquier momento usando Run->Pause.. . Establece un enlace hacia abajo y una copia de seguridad nuevamente en tiempo de ejecución haciendo clic derecho en un enlace y eligiendo opciones.. . Verifica las estadísticas de cada interfaz en la red a través de Run->Show Interfaces Summary..
(37) CAPÍTULO 2. DESARROLLO DE LABORATORIOS PARA REDES SDN. 2.4. 25. Herramientas IPerf, cURL y Wget. Iperf, cURL y Wget son herramientas para el trabajo y aplicación en las redes de computadoras. Linux es uno de los sistemas operativos que permite el uso de las mismas. 2.4.1 Herramienta Iperf IPerf es un programa cliente-servidor muy sencillo que permite medir la velocidad máxima que alcanzan 2 ordenadores conectados en red local. Esto es útil si queremos ver la velocidad máxima de nuestro switch o router y si cambiando ciertos parámetros como el MTU de la red, conseguimos más velocidad [32]. Servidor iPerf: Ejecutamos en consola: iperf –s, entonces el host se pondrá a la escucha para conexiones entrantes. Cliente iPerf: Ejecutamos en consola: iperf -c IP_INTERNA Se conectará al servidor y medirá la velocidad máxima dando las estadísticas cuando termine el análisis. Opciones adicionales para el servidor y el cliente [33]: . Podemos poner que se reciban datagramas UDP en lugar de TCP poniendo -u. . Podemos poner varias conexiones simultáneas poniendo -P. . También se pueden cambiar las unidades a la hora de medir poniendo un -f. Por ejemplo -f MB para medir en MegaBytes.. 2.4.2 cURL El comando Curl se usa para transferir archivos desde un servidor, es compatible con varios protocolos como HTTP, HTTPS, FTP, FTPS, IMAP, IMAPS, DICT, ARCHIVO, GOPHER, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET y TFTP, etc..
(38) CAPÍTULO 2. DESARROLLO DE LABORATORIOS PARA REDES SDN. 26. Curl también es compatible con muchas funciones como soporte de proxy, autenticación de usuario, carga FTP, publicación HTTP, conexiones SSL, cookies, pausa y reanudación de transferencia de archivos, etc. Hay alrededor de 120 opciones diferentes que se pueden usar con Curl [34], [35] . 2.4.3 Wget Wget es una herramienta informática creada por el Proyecto GNU. Su uso principal es para recuperar contenido y archivos de varios servidores web. El nombre es una combinación de World Wide Web y la palabra get. Admite descargas a través de FTP, SFTP, HTTP y HTTPS [36]. Wget se crea en C portátil y se puede usar en cualquier sistema Unix. También es posible implementarlo en Mac OS X, Microsoft Windows, AmigaOS y otras plataformas populares [37]. 2.5. Wireshark. Wireshark es el analizador de protocolo de red más importante y ampliamente utilizado en el mundo. Le permite ver lo que está sucediendo en su red a un nivel microscópico y es el estándar de facto en muchas empresas comerciales y sin fines de lucro, agencias gubernamentales e instituciones educativas. El desarrollo de Wireshark prospera gracias a las contribuciones voluntarias de expertos en redes en todo el mundo y es la continuación de un proyecto iniciado por Gerald Combs en 1998. Se utiliza comúnmente para solucionar problemas de red, así como para desarrollar y probar software [38]. Originalmente conocido como Ethereal, Wireshark presenta una interfaz fácil de usar que puede mostrar datos de cientos de protocolos diferentes en todos los tipos de redes principales. Estos paquetes de datos se pueden ver en tiempo real o se pueden analizar sin conexión, con docenas de formatos de archivos de captura y rastreo. Las herramientas de descifrado integradas le permiten ver paquetes cifrados para varios protocolos populares, como el Privacidad Equivalente a Cableado (WEP, por sus siglas en inglés), Acceso Wi-Fi Protegido (WPA, por sus siglas en inglés) y Acceso Wi-Fi Protegido 2 (WPA2, por sus siglas en inglés) [39]..
(39) CAPÍTULO 2. DESARROLLO DE LABORATORIOS PARA REDES SDN. 2.6. 27. Hipervisores. Hipervisor o Monitor de Máquina Virtual (VMM, por sus siglas en inglés) es una tecnología compuesta por una capa de software que permite utilizar, al mismo tiempo, diferentes sistemas operativos o máquinas virtuales en una misma computadora central. Es decir, es la parte principal de una máquina virtual que se encarga de manejar los recursos del sistema principal exportándolos a la máquina virtual [40]. El VMM crea una capa de abstracción entre el hardware de la maquina física (host) y el sistema operativo de la máquina virtual, de tal forma que maneja los recursos de las maquinas físicas subyacentes de una manera que el usuario pueda crear varias máquinas virtuales presentando a cada una de ellas una interfaz del hardware que sea compatible con el sistema operativo elegido. Esta capa de software (VMM) maneja, gestiona y arbitra los cuatro recursos principales de una computadora (CPU, Memoria, Red, Almacenamiento) y así podrá repartir dinámicamente dichos recursos entre todas las máquinas virtuales definidas en el computador central. En la actualidad todos los fabricantes tanto de Software como de Hardware están trabajando para mejorar y ayudar al Hipervisor (VMM) y así poder llegar a una virtualización completa, fiable y robusta [41]. Beneficios de los hipervisores A pesar de que las máquinas virtuales pueden ejecutarse en el mismo hardware físico, todavía están lógicamente separadas entre sí. Esto significa que, si una VM experimenta un error, un bloqueo o un ataque de malware, no se extiende a otras máquinas virtuales en la misma máquina o incluso a otras máquinas [41]. Las VM también son móviles, ya que son independientes del hardware subyacente, se pueden mover o migrar entre servidores virtualizados remotos o locales mucho más fácilmente que las aplicaciones tradicionales que están vinculadas al hardware físico. Hay dos tipos de hipervisores, creativamente llamados tipo 1 o tipo 2. Los hipervisores tipo 1, a veces denominados hipervisores "nativos" o "bare metal", se ejecutan directamente en el hardware del host para controlar el hardware y administrar las máquinas virtuales.
(40) CAPÍTULO 2. DESARROLLO DE LABORATORIOS PARA REDES SDN. 28. invitadas. Los hipervisores modernos incluyen Xen, Oracle VM Server para SPARC, Oracle VM Server para x86, Microsoft Hyper-V y VMware ESX / ESXi. Los hipervisores tipo 2, a veces llamados "hipervisores hospedados", se ejecutan en un sistema operativo convencional, al igual que otras aplicaciones en el sistema. En este caso, un sistema operativo invitado se ejecuta como un proceso en el host, mientras que los hipervisores separan el sistema operativo invitado del sistema operativo host. Entre los ejemplos de hipervisores Tipo 2 se incluyen VMware Workstation, VMware Player, VirtualBox y Parallels Desktop para Mac. En el espacio del centro de datos empresarial, la consolidación ha resultado en tres proveedores principales en el frente del hipervisor: VMware, Microsoft y Citrix Systems [41]. 2.7. Recursos utilizados. En esta sección se realiza un desglose de todos los recursos utilizados en el desarrollo de los laboratorios. Se clasifican los distintos recursos en dos categorías: hardware y software. 2.7.1 Recursos de hardware Para realizar la simulación se utilizó una laptop con las siguientes características: . Fabricante: HP. . Procesador: Intel Core i5-6200 a 2.30GHz de 6ta generación. . RAM: 8GB. . Máquina virtual: VMware Workstation 12 PRO con Linux con la versión Ubuntu 16.04, que tiene instalada la versión 2.2.1 de Mininet.. 2.7.2 Recursos de software Para el desarrollo de los laboratorios de redes SDN se utiliza: . Mininet, emulador de red para el diseño de los distintos escenarios planteados.. . VMware WORKSTATION 12 PRO, para la instalación de una máquina virtual de Ubuntu 16.04. . Wireshark, analizador de protocolos para obtener la información sobre los distintos datos que atraviesan los escenarios planteados..
(41) CAPÍTULO 2. DESARROLLO DE LABORATORIOS PARA REDES SDN. . 29. Python, lenguaje de programación para el desarrollo de topologías personalizadas sobre Mininet.. 2.8. Laboratorio #1. Introducción al uso de Mininet y el controlador ODL. Creación de las topologías SDN básicas.. En este proyecto se realiza una introducción al uso de Mininet y a la implementación de un controlador externo para el desarrollo de los escenarios. El mismo abarca temas importantes relacionados con las redes SDN y la simulación de las diferentes topologías predefinidas en Mininet y la visualización de las mismas en la interface visual del controlador ODL. Se realiza la visualización de los paquetes ICMP con el uso del MiniNAM y OpenFlow con la utilización del Wireshark. Objetivo General Aprender los elementos básicos del uso de la herramienta de emulación Mininet para crear topologías SDN básicas. Objetivos específicos 1. Emular las topologías predefinidas que ofrece Mininet. 2. Observar flujo de paquetes ICMP con el uso del MiniNAM. 3. Visualizar las topologías creadas en la interfaz visual que ofrece el controlador ODL. 4. Analizar los paquetes OpenFlow con el uso del Wireshark. Preparación previa Estudiar las materias correspondientes a la arquitectura SDN y sus herramientas de simulación. Tener conocimientos previos de Ubuntu, uso de hipervisores de red (Virtual box, VMware) y elementos básicos de Python. Habilidades 1. Familiarización con el uso del Mininet como herramienta para crear topologías SDN. 2. Configurar controladores SDN (en este caso el ODL). 3. Describir el protocolo OpenFlow usando el Wireshark..
(42) CAPÍTULO 2. DESARROLLO DE LABORATORIOS PARA REDES SDN. 30. Técnica Operatoria Para la ejecución del laboratorio es necesario seguir los pasos siguientes: 1. Ejecutar topología sin controlador remoto: Para ejecutar el MiniNAM se abre una ventana de terminal de Ubuntu (Ctrl+Alt+t) y se inicia una topología single de dos usuarios mediante la CLI: $ sudo python MiniNAM.py --topo single,3 Esta línea crea una topología en Mininet la cual está compuesta por un Switch OpenFlow conectado a dos hosts, además de un controlador de referencia OpenFlow e inicia MiniNAM como se muestra en la Figura 2.1.. Figura 2.1. Creación de topología Mininet con el uso del MiniNAM. Fuente: Autor. Luego para comprobar la creación de la topología y el correcto funcionamiento del Mininet se realiza un ping entre el host 1 y el host 2 mediante la CLI: $ h1 ping h2 Esta línea realiza un envío de paquetes ICMP entre el host 1 y el host 2. Al finalizar el ping ejecutar la siguiente CLI para cerrar la topología creada: $ exit 1. Iniciar el controlador remoto: Para iniciar el controlador se abre una nueva ventana de terminal y se ejecuta desde la ubicación donde se encuentre que en este caso sería mediante la CLI: ./Boron-SR4/bin/karaf.
(43) CAPÍTULO 2. DESARROLLO DE LABORATORIOS PARA REDES SDN. 31. Esta línea ejecuta la versión Boron del controlador Open Day Light como se muestra en la Figura 2.2.. Figura 2.2. Ejecución del controlador. Fuente: Autor. Después de instalado el controlador es necesario para la correcta emulación de las topologías instalar dentro de él algunas características mediante la CLI: opendaylight-user@root>feature:install. odl-restconf. odl-l2switch-. switch odl-mdsal-apidocs odl-dlux-all 2. Iniciar topología single y analizar paquetes con Wireshark Para iniciar la topología single con la utilización de un controlador ODL se ejecuta, como se muestra en la Figura 2.3 la CLI: $. sudo. mn. --topo. controller=remote,ip=127.0.0.1,port=6633 ovs,protocols=OpenFlow13. single,3. --–switch.
(44) CAPÍTULO 2. DESARROLLO DE LABORATORIOS PARA REDES SDN. 32. Figura 2.3. Creación de topología SINGLE en Mininet. Fuente: Autor. Esta línea inicia Mininet y creará una topología SDN con versión de OpenFlow 1.3 y compuesta por 1 conmutador, tres hosts y un controlador remoto ODL. El puerto del controlador ODL es el 6633 y la dirección IP es 127.0.0.1 puesto que se encuentra dentro de la misma máquina donde se está ejecutando Mininet. Luego realizar un pingall para comprobar el funcionamiento de la red. Para iniciar Wireshark se ejecuta en una nueva ventana de terminal la CLI: $ sudo wireshark Una vez iniciado el Wireshark, dentro de la lista de interfaces seleccione “any” y haga clic en “start”, como se muestra en la Figura 2.4.. Figura 2.4. Iniciando capturas en Wireshark. Fuente: Autor..
(45) CAPÍTULO 2. DESARROLLO DE LABORATORIOS PARA REDES SDN. 33. Una vez mostrados todos los paquetes se realiza una comprobación de los paquetes OpenFlow como se muestra en la Figura 2.7.. Figura 2.5. Comprobación de paquetes OpenFlow. Fuente: Autor. 3. Iniciar topología linear, verificar direcciones IP y conexiones de los equipos Para iniciar la topología linear con la utilización de un controlador ODL se ejecuta la CLI: $. sudo. mn. --topo. linear,4. controller=remote,ip=127.0.0.1,port=6633. ---switch. ovs,protocols=OpenFlow13 Queda creada una red compuesta por 1 controlador ODL, 4 switch conectados entre ellos y un usuario conectado a cada switch como se muestra en la Figura 2.6.. Figura 2.6. Creación de topología linear en Mininet. Fuente: Autor. Para obtener la información de los nodos de la red se ejecuta dentro del Mininet la CLI: mininet> dump Y para obtener la información correspondiente a los enlaces se ejecuta dentro del Mininet la CLI: mininet> net.
(46) CAPÍTULO 2. DESARROLLO DE LABORATORIOS PARA REDES SDN. 34. 4. Iniciar topología tree Para ejecutar la topología tree conformada por 16 hosts, 15 conmutadores y un controlador ODL conectados en forma de ramificación de cuatro niveles se utiliza la CLI: $ sudo mn --topo tree,4 --controller=remote,ip=127.0.0.1,port=6633 --switch ovs,protocols=OpenFlow13 Todas las topologías presentadas anterior mente no se han podido visualizar puesto que el emulador Mininet no cuenta con una interface para mostrar la red, pero como han sido implementadas con un controlador ODL mediante la interface visual que este ofrece si es posible verlas. Para entrar a la interfaz del ODL se abre el navegador y mediante el enlace http://127.0.0.1:8181/index.html#/login se accede a la página de inicio como se muestra en la Figura 2.7, donde el usuario y la contraseña requerida es admin.. Figura 2.7. Página de inicio de DLUX ODL. Fuente: Autor. Dentro de la página del controlador, en la sección Topology podemos observar la topología de la red creada en Mininet como se muestra en la Figura 2.8..
(47) CAPÍTULO 2. DESARROLLO DE LABORATORIOS PARA REDES SDN. 35. Figura 2.8. Topología tree visualizada en el DLUX ODL. Fuente: Autor. 2.9. Laboratorio #2. Emulación de un servidor HTTP y mediciones de ancho de banda.. El siguiente proyecto propone simular 3 escenarios, uno con 2 usuarios y otro con 3 usuarios conectados a un nodo en el cual se realizan mediciones de ancho de banda y el otro con un usuario y un host funcionando como servidor HTTP en el que se muestra cómo se accede al mismo. Para la emulación de los dos escenarios se utiliza un controlador ODL. Objetivo General. Configurar topologías SDN donde se configuren host como clientes y como servidor web y medir el ancho de banda requerido para el acceso. Objetivos específicos 1. Realizar mediciones de ancho de banda usando la herramienta de Ubuntu iperf. 2. Establecer sesiones tcp y http entre servidor y cliente. 3. Desarrollar topologías personalizadas usando script de Python. Preparación previa. Entrenarse con la herramienta Mininet para emular redes SDN usando como controlar el ODL Conocer el modelo cliente—servidor y las aplicaciones o servicios que lo usan..
Figure
+7
Documento similar