Diseño e implementación de un emulador de redes - Córdova Alvarado, Rubén Francisco (2017)
El trabajo desarrollado en la presente tesis consiste en el diseño e implementación de un emulador de redes de alta capacidad, como entorno de pruebas de nuevas tecnologías previo su despliegue. El emulador está conformado por módulos implementados usando el lenguaje de programación Python. A largo plazo, se desea integrar el presente emulador en un rack de alta capacidad (con enlaces de 10 Gbps), el cual se encuentra en el laboratorio del Grupo de Investigación en Redes Avanzadas (GIRA) de la Pontificia Universidad Católica del Perú. En dicho rack, se ha instalado el software de Cloud Computing OpenStack, el cual emplea diferentes servicios para la creación de las máquinas virtuales a usar en el emulador. El objetivo principal del emulador es que las pruebas realizadas en él presenten una alta fidelidad: no solo se desea capturar el comportamiento de la red al limitar la tasa de bits o introducir latencia en un enlace, sino también evitar generar fenómenos espurios –como pérdida de paquetes– debido a las limitaciones de procesamiento del hardware sobre el cual funciona el emulador. Por ello, el emulador incluye un proceso de calibración del hardware subyacente, así como un módulo de validación de recursos (p.ej. RAM, cores, etc.) para asegurar que el emulador puede soportar la topología de interés. En el primer capítulo, se describe la situación actual de las redes —específicamente la de los proveedores de servicios— y se identifican los problemas que surgen con la evolución y desarrollo de nuevos servicios. Asimismo, se presentan algunas tecnologías emergentes como posibles soluciones a los problemas mencionados. En el segundo capítulo, se presentan los tipos de entornos de prueba que se utilizan para evaluar distintos prototipos de redes; en especial, los que proponen las tecnologías emergentes. Adicionalmente, se realiza un análisis de las ventajas y desventajas de cada entorno y se determina cuál es más conveniente para los objetivos del presente trabajo. En la última parte del capítulo, se presentan los objetivos del trabajo de tesis, en base a la problemática y al entorno de prueba determinado. El tercer capítulo está orientado a las tecnologías de virtualización. Primero, se introduce el concepto de virtualización y se presenta el modelo de Cloud Computing. Luego, se desarrollan las áreas de virtualización, mostrando las diversas técnicas existentes en cada una y la necesidad de monitorear el estado de la infraestructura. Por último, se realiza una descripción de OpenStack, dado que es el software empleado en el presente trabajo de tesis. En el cuarto capítulo, se detalla el diseño completo del emulador. Se inicia con las consideraciones y requerimientos del emulador; a continuación, se presenta la arquitectura del emulador, indicando sus módulos y el funcionamiento de cada uno; luego, se detallan los cambios realizados a OpenStack, seguido del módulo de validación del emulador –que lo diferencia de los demás existentes; finalmente, se muestra la interfaz de usuario para la creación de los experimentos. En el capítulo final, se presentan los resultados obtenidos al realizar pruebas en el emulador. Estas pruebas tienen la finalidad de demostrar que el emulador funciona en base a los objetivos y requerimientos planteados. También se muestra el análisis realizado en la etapa de calibración, en donde se obtiene la cantidad de recursos requeridos por cada nodo. Por último, se presentan las conclusiones obtenidas de la implementación y de las pruebas desarrolladas, basadas en los objetivos de la tesis y los requerimientos del emulador, así como las recomendaciones sugeridas para un mejor desempeño del mismo.