EMULACIÓN DEL PROCESO DE CONMUTACIÓN/APILAMIENTO

Anuncio
EMULACIÓN DEL PROCESO DE CONMUTACIÓN/APILAMIENTO DE
ETIQUETAS EN REDES MPLS, MEDIANTE UNA HERRAMIENTA DE
SIMULACIÓN PARA REDES DEFINIDAS POR SOFTWARE.
YURY LORENA MONTOYA ÁLZATE & JHON MAURICIO AVENDAÑO OCAMPO
UNIVERSIDAD CATÓLICA DE PEREIRA
FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA
INGENIERIA DE SISTEMAS Y TELECOMUNICACIONES
PEREIRA
2016
EMULACIÓN DEL PROCESO DE CONMUTACIÓN/APILAMIENTO DE
ETIQUETAS EN REDES MPLS, MEDIANTE UNA HERRAMIENTA DE
SIMULACIÓN PARA REDES DEFINIDAS POR SOFTWARE.
YURY LORENA MONTOYA ÁLZATE & JHON MAURICIO AVENDAÑO OCAMPO
TRABAJO DE GRADO
DIRECTORA PROYECTO
LINE YASMÍN BECERRA
INGENIERA ELECTRONICA
UNIVERSIDAD CATÓLICA DE PEREIRA
FACULTAD DE CIENCIAS BÁSICAS E INGENIERÍA
INGENIERIA DE SISTEMAS Y TELECOMUNICACIONES
PEREIRA
2016
2
TABLA DE CONTENIDO
Pág.
TABLA DE CONTENIDO __________________________________________________________________________ 3
LISTA DE TABLAS ________________________________________________________________________________ 6
LISTA DE FIGURAS _______________________________________________________________________________ 7
LISTA DE ANEXOS ________________________________________________________________________________ 9
LISTA DE ACRONIMOS _________________________________________________________________________ 10
RESUMEN ________________________________________________________________________________________ 11
ABSTRACT _______________________________________________________________________________________ 12
INTRODUCCIÓN ________________________________________________________________________________ 13
1
2
OBJETIVOS _________________________________________________________________________________ 15
1.1
OBJETIVO GENERAL ___________________________________________________________________ 15
1.2
OBJETIVOS ESPECÍFICOS ______________________________________________________________ 15
MARCO TEORICO _________________________________________________________________________ 16
2.1
IMPORTANCIA DE UN NUEVO PARADIGMA DE RED ______________________________ 16
2.2
REDES DEFINIDAS POR SOFTWARE SDN ___________________________________________ 17
2.3
CONTROLADORES PARA SDN ________________________________________________________ 20
2.4
CARACTERÍSTICAS DE ALGUNOS CONTROLADORES _____________________________ 21
2.5
SDN
ELEMENTOS A TENER EN CUENTA PARA LA SELECCIÓN DE CONTROLADORES
29
2.6
INTRODUCCIÓN A MPLS REAL _______________________________________________________ 31
2.2.1
2.4.1
2.4.2
2.4.3
2.4.4
2.4.5
2.4.6
2.4.7
Beneficios de SDN ______________________________________________________________________________ 19
Controlador Beacon ____________________________________________________________________________ 22
Controlador Floodlight _________________________________________________________________________ 23
Controlador NOX _______________________________________________________________________________ 26
Controlador POX________________________________________________________________________________ 26
Controlador TREMA ____________________________________________________________________________ 27
Controlador RYU _______________________________________________________________________________ 27
Controlador Opendaylight _____________________________________________________________________ 28
2.6.1
Descripción cabecera MPLS ___________________________________________________________________ 32
2.6.2
Arquitectura MPLS _____________________________________________________________________________ 33
2.6.2.1
Router conmutador de etiquetas (LRS: Label Switch Router) ________________________ 33
2.6.2.2
Router de frontera de etiquetas (LER: Label Egde Router) ___________________________ 34
2.6.2.3
Clase equivalente de envió (FEC: Forwarding Equivalence Class) ___________________ 34
2.6.2.4
NHLFE (Next Hop Label Forwarding Entry) ___________________________________________ 34
3
2.6.3
Protocolos utilizados en MPLS ________________________________________________________________ 35
2.6.3.1
Protocolo LDP ____________________________________________________________________________ 35
2.6.3.2
RSVP-TE __________________________________________________________________________________ 35
2.6.4
Componente de envío de etiquetas ___________________________________________________________ 36
2.6.5
Etiquetas ________________________________________________________________________________________ 39
2.6.6
Apilado de etiquetas ___________________________________________________________________________ 40
2.7
2.7.1
2.7.2
Aplicaciones de MPLS _________________________________________________________________ 43
Ingeniería de tráfico en MPLS _________________________________________________________________ 44
Implementación de QoS en MPLS _____________________________________________________________ 45
3 EMULACIÓN DE MPLS MEDIANTE UN EMULADOR DE REDES DEFINIDAS POR
SOFTWARE ______________________________________________________________________________________ 47
3.1
HERRAMIENTAS DE SIMULACIÓN Y EMULACIÓN DE REDES DEFINIDAS POR
SOFTWARE _______________________________________________________________________________________ 47
3.1.1
3.1.2
3.1.3
3.1.4
3.1.5
3.1.6
Simulación ______________________________________________________________________________________ 47
Emulación _______________________________________________________________________________________ 48
NCTUns (EstiNet)_______________________________________________________________________________ 49
DieCast __________________________________________________________________________________________ 50
ModelNet ________________________________________________________________________________________ 50
Mininet __________________________________________________________________________________________ 50
3.2
HERRAMIENTA DE EMULACIÓN SELECCIONADA PARA EL DESARROLLO DEL
PROYECTO _______________________________________________________________________________________ 51
3.3
3.3.1
CONTROLADOR SELECCIONADO PARA EL DESARROLLO DEL PROYECTO ____ 52
Floodlight _______________________________________________________________________________________ 53
3.4
VENTAJAS DEL PROCESO DE CONMUTACIÓN Y APILAMIENTO DE ETIQUETAS
DE MPLS __________________________________________________________________________________________ 55
3.5
ANTECEDENTES DE EMULACIÓN Y/O SIMULACIÓN DE MPLS CON REDES
DEFINIDAS POR SOFTWARE __________________________________________________________________ 56
3.6
DESARROLLO DE LA EMULACION DE MPLS MEDIANTE UN EMULADOR DE
REDES DEFINIDAS POR SOFTWARE __________________________________________________________ 59
3.6.1
3.6.2
3.6.3
Arquitectura de la topología de prueba 1 sin MPLS _________________________________________ 59
Topología de la emulación prueba 1 diseñada en Python ___________________________________ 60
Pruebas de conectividad con los host y Switch ______________________________________________ 62
3.7
FUNCIONAMIENTO DE MPLS EN TOPOLOGÍA DE PRUEBA 1_____________________ 65
3.8
ARQUITECTURA DE LA TOPOLOGIA DE PRUEBA 2 SIN MPLS ___________________ 83
3.7.1
Importancia del controlador Floodlight para la topología de prueba 1 ____________________ 66
3.7.1.1
Activación del controlador Floodlight en Mininet _____________________________________ 67
3.7.2
Importancia de OpenFlow 1.3 para la topología de prueba 1 _______________________________ 69
3.7.3
Topología de prueba 1 con MPLS diseñada en Python ______________________________________ 70
3.7.4
Asignación manual de flujo y etiquetado MPLS ______________________________________________ 73
3.7.4.1
Captura de tráfico en Wireshark topología de prueba 1 ______________________________ 78
3.7.4.2
Verificación del flujo de datos con Floodlight __________________________________________ 79
3.7.4.3
Verificación de MPLS en Floodlight web _______________________________________________ 81
3.8.1
Topología de la emulación prueba 2 diseñada en Python ___________________________________ 83
4
3.8.2
Pruebas de conectividad topología de red 2 _________________________________________________ 86
3.9
ARQUITECTURA DE LA TOPOLOGIA DE PRUEBA 2 CON MPLS __________________ 87
3.10
ANALISIS DE RESULTADOS __________________________________________________________ 104
3.9.1
Topología de red prueba 2 diseñada en Python ______________________________________________ 88
3.9.2
Funcionamiento de MPLS en topología de prueba 2 _________________________________________ 92
3.9.2.1
Asignación manual de flujo y etiquetado MPLS en la topología de prueba 2 ________ 93
3.9.2.2
Captura de tráfico en Wireshark topología de prueba 2 ______________________________ 98
3.9.2.3
Verificación del flujo de datos con Floodlight ________________________________________ 100
3.9.2.4
Verificación de MPLS en Floodlight web _____________________________________________ 102
4
CONCLUSIONES __________________________________________________________________________ 107
ANEXOS _________________________________________________________________________________________ 109
BIBLIOGRAFIA _________________________________________________________________________________ 112
5
LISTA DE TABLAS
Tabla 1. Características de algunos Controladores ___________________________________________________________ 21
Tabla 2. Asignación de etiquetas en los switches. _____________________________________________________________ 77
Tabla 3. Asignación de etiquetas en los switches en la topología de prueba 2. ______________________________ 97
6
LISTA DE FIGURAS
FIGURA 1. SDN Red Definida por Software: ____________________________________________________________________ 18
FIGURA 2. The Beacon OpenFlow Controller, __________________________________________________________________ 23
FIGURA 3. Project Floodlight Controller, _______________________________________________________________________ 25
FIGURA 4. Capa 2.5 Modelo OSI, exposición arquitectura MPLS, _____________________________________________ 31
FIGURA 5. Estudio y diseño de redes virtuales privadas (VPN) basadas en tecnología MPLS, ______________ 32
FIGURA 6. MPLS Multi Protocol Label Switching, _____________________________________________________________ 33
FIGURA 7. MPLS: Next Steps, The Morgan Kaufmann Series in Networking, ________________________________ 37
FIGURA 8. MPLS Multi Protocol Label Switching, _____________________________________________________________ 39
FIGURA 9. Análisis de la red de la cnt ep para la implementación de servicios integrados mediante
tecnología MPLS, ________________________________________________________________________________________________ 41
FIGURA 10. MPLS: Next Steps, The Morgan Kaufmann Series in Networking, _______________________________ 42
FIGURA 11. MPLS: Next Steps, The Morgan Kaufmann Series in Networking, 2008, Proceso de apilamiento
de etiquetas en redes MPLS, ____________________________________________________________________________________ 43
FIGURA 12. Mininet Testing Platform Controller, _____________________________________________________________ 52
FIGURA 13. Pipeline del thread IOFMessageListener de Beacon, _____________________________________________ 53
FIGURA 14. API de Floodlight, The controller, _________________________________________________________________ 54
FIGURA 15. Topología de red prueba 1, ________________________________________________________________________ 59
FIGURA 16-A, Código Python Topología de red prueba 1._____________________________________________________ 60
FIGURA 17-B, Código Python Topología de red prueba 1._____________________________________________________ 61
FIGURA 18. Llamado en Mininet del código Python. __________________________________________________________ 62
FIGURA 19. Verificación de conectividad de red _______________________________________________________________ 63
FIGURA 20. Verificación de conectividad entre h1 y h4. _______________________________________________________ 63
FIGURA 21. Verificación de los nodos de la red. _______________________________________________________________ 64
FIGURA 22. Enlaces que tiene la red topología de red 1. ______________________________________________________ 64
FIGURA 23. Verificar la información de los nodos de la red 1. ________________________________________________ 65
FIGURA 24. Topología de prueba 1 configurada con Floodlight y OpenFlow 1.3. ____________________________ 66
FIGURA 25. Floodlight en modo escucha puerto 6653. ________________________________________________________ 67
FIGURA 26. Mensajes generados por Floodlight. ______________________________________________________________ 68
FIGURA 27. Captura con Wireshark del protocolo OpenFlow 1.3. ____________________________________________ 70
FIGURA 28. Código Python de la topología de red prueba 1 para utilizar MPLS. ____________________________ 71
FIGURA 29. Llamado en Mininet del código Python de la topología de prueba 1 MPLS. ____________________ 72
FIGURA 30. Asignación manual de Flujo MPLS en los Switches. ______________________________________________ 73
FIGURA 31. Resultados de ovs-vsctl show. _____________________________________________________________________ 75
FIGURA 32. Envío de paquetes por la red MPLS h1 – h3. ______________________________________________________ 76
FIGURA 33. Envío de paquetes por la red MPLS h2 – h4. ______________________________________________________ 77
FIGURA 34. Captura de tráfico con protocolo MPLS y Wireshark host 1 – host 3. ___________________________ 78
FIGURA 35. Captura de trafico Wireshark entre host 3 – host 1. _____________________________________________ 79
FIGURA 36. Topología actual de red vista desde Floodlight Web. ____________________________________________ 80
FIGURA 37. Floodlight web versión de OpenFlow 1.3 utilizada en Switch 1. _________________________________ 80
FIGURA 38. Página principal de Floodlight. ___________________________________________________________________ 81
FIGURA 39. Verificación de Floodlight web en la asignación de etiqueta MPLS Switch 1.___________________ 82
FIGURA 40. Verificación de Floodlight web en la asignación de etiqueta MPLS Switch 2. ___________________ 82
FIGURA 41. Topología de red prueba 2. ________________________________________________________________________ 83
FIGURA 42-A. Topología en Python prueba 2 sin MPLS. ______________________________________________________ 84
FIGURA 43-B. Topología en Python prueba 2 sin MPLS. ______________________________________________________ 84
FIGURA 44-C. Topología en Python prueba 2 sin MPLS. _______________________________________________________ 85
7
FIGURA 45. Llamado en Mininet del código Python topología de prueba 2. _________________________________ 85
FIGURA 46. Verificación de conectividad de red con el comando pingall. ____________________________________ 86
FIGURA 47. Verificación de conectividad entre h1 y h27. _____________________________________________________ 87
FIGURA 48. Topología de red prueba 2 con MPLS. ____________________________________________________________ 88
FIGURA 49-A. Topología en Python prueba 2 con MPLS. ______________________________________________________ 89
FIGURA 50-B, Topología en Python prueba 2 con MPLS. ______________________________________________________ 89
FIGURA 51-C. Topología en Python prueba 2 con MPLS. ______________________________________________________ 90
FIGURA 52. Llamado de la topología personalizada de prueba 2 y pingall de conectividad. ________________ 91
FIGURA 53. Activación controlador Floodlight en Mininet. ___________________________________________________ 92
FIGURA 54-A. Mensajes generados por Floodlight. ____________________________________________________________ 92
FIGURA 55-B. Mensajes generados por Floodlight. ____________________________________________________________ 93
FIGURA 56-A. Asignación manual de Flujo MPLS en los switches. ____________________________________________ 94
FIGURA 57-B. Asignación manual de Flujo MPLS en los switches de red 2. __________________________________ 95
FIGURA 58. Envío de paquetes por la red MPLS h1 – h24 cambio de MPLS. _________________________________ 96
FIGURA 59. Envío de paquetes por la red MPLS h4 – h27 cambio de etiquetas MPLS. ______________________ 97
FIGURA 60. Captura de trafico Wireshark entre host 27 – host 4, primer salto en Switch 30. ______________ 98
FIGURA 61. Captura de trafico Wireshark entre host 27 – host 4, segundo salto en Switch 20. _____________ 99
FIGURA 62. Captura de trafico Wireshark entre host 4 – host 27, Respuesta host 4 en Switch 10. _________ 99
FIGURA 63. Captura de trafico Wireshark entre host 4 – host 27 respuesta host 4 en Switch 20. ________ 100
FIGURA 64. Topología de prueba 2 vista desde Floodlight Web. ____________________________________________ 101
FIGURA 65. Floodlight web versión de OpenFlow 1.3 utilizada en Switch 30.______________________________ 101
FIGURA 66. Página principal de Floodlight topología de prueba 2. ________________________________________ 102
FIGURA 67. Flujo del Switch 10 etiquetado MPLS. ___________________________________________________________ 103
FIGURA 68. Flujo del Switch 30 etiquetado MPLS respuesta del host 27 al host 4. ________________________ 103
8
LISTA DE ANEXOS
A. Instalación MiniNet con OpenFlow 1.3 _________________________________________________________________ 109
B. Instalación de Floodlight 1.0 ____________________________________________________________________________ 111
9
LISTA DE ACRONIMOS
SDN: (Software Defined Network o red definida por software)
MPLS: (Multiprotocol Label Switching)
LSR: (Label Switching Router)
LER: (Label Edge Router)
LSP: (Label Switched Path) o Intercambio de rutas por etiqueta
LDP: (Label Distribution Protocol)
FEC: (Forwarding Equivalence Class)
FEC: (Forwarding Equivalence Class)
RSVP: (Resource Reservation Protocol)
API: (Interfaz de programación de aplicación)
LLDP: (Protocolo de descubrimiento de capa de enlace)
10
RESUMEN
Las Redes Definidas por Software (SDN) son catalogadas hoy en día como el
nuevo paradigma de red que trae consigo como objetivo el facilitar la creación y
gestión de redes de datos. El desacople entre el Plano de control y el plano de
datos planteado por esta arquitectura permite el control de todo el comportamiento
y seguimiento de la red a través de un módulo lógico centralizado, llamado
controlador.
El estándar MPLS fue desarrollado para suplir la problemática que afrontan los
carriers, ya que este protocolo provee ventajas en el enrutamiento de paquetes
por ser un protocolo que trabaja en capa 2.5 y permite que el enrutamiento de
paquetes se realice mediante el intercambio de etiquetas lo que confiere velocidad
en la conmutación de paquetes a diferencia de las redes convencionales. El
estándar MPLS soporta tanto la creación y administración de rutas estáticas como
dinámicas. Incluye los mecanismos del plano de control dinámico en el conjunto
de protocolos MPLS. Actualmente es muy utilizado debido a sus ventajas tanto en
la conmutación de paquetes como para el soporte de ingeniería de tráfico ya que
minimiza el consumo del ancho de banda y a su vez minimiza los costos en el
tráfico, MPLS también incrementa la fiabilidad en la red ya que facilita una calidad
de servicio (QoS) avanzada.
En este documento se presenta el procedimiento para emular MPLS en una red
definida por software mediante la herramienta Mininet. En primera instancia se
describe el funcionamiento de cada una de las tecnologías presentes y
herramientas necesarias para realizar dicha emulación tales como MPLS, SDNs,
herramientas de simulación y emulación de SDNs, controladores etc. Finalmente
se describe el proceso de emulación MPLS-SDN mediante dos topologías
sencillas, usando el protocolo OpenFlow 1.3 y el controlador Floodlight, indicando
la forma como se configura el etiquetamiento en MPLS y como se activa el
controlador y los diferentes protocolos. La información suministrada tanto teoría
como los resultados del proceso es un aporte valioso para futuras investigaciones.
Descriptores
Controladores, Floodlight, Mininet, MPLS, ONF, OpenFlow, Redes SDN.
11
ABSTRACT
The networks defined by Software (SDN) are today listed as the new paradigm of
network that brings as a aims to facilitate the creation and management of data
networks. The disconnect between the control plane and data plane raised by this
architecture allows control of all the behavior and monitoring of the network
through a centralized logical module, called controller.
The MPLS standard was developed to compensate for the problems faced by
carriers, since this Protocol provides advantages in the routing of packets to be a
protocol that works on layer 2.5 and enables packet routing is performed through
the exchange of labels giving speed in switching of packets as opposed to
conventional networks. The MPLS standard supports both the creation and
administration of static routes as dynamic. Includes mechanisms for dynamic
control plane the MPLS protocol suite. Currently it is widely used because of its
advantages both in packet switching and traffic engineering support since it
minimizes bandwidth consumption and in turn minimizes the traffic cost, MPLS
also increases reliability on the network since it facilitates an advanced quality of
service (QoS).
This document presents the procedure to emulate MPLS network software using
the Mininet tool defined. In the first instance describes the behavior of each of
these technologies and tools needed to perform this emulation such as MPLS,
SDNs, simulation tools and emulation of SDNs, controller etc. Finally describes the
process of emulation MPLS-SDN through two simple topologies, using OpenFlow
1.3 Protocol and controller Floodlight, indicating the form set up in MPLS labeling
and turn on the controller and the different protocols. The information provided both
theory as the results of the process is a valuable input for future research.
Descriptores
Controllers, Floodlight, Mininet, MPLS, ONF, OpenFlow, Network SDN.
12
INTRODUCCIÓN
Durante muchos años se viene generando un crecimiento fuerte y sostenido de las
redes de telecomunicaciones, resultado de una demanda cada vez mayor por
parte de los usuarios. Este crecimiento, desordenado por basarse en principios y
modelos no escalables, demostró que las infraestructuras y arquitecturas
tradicionales presentan serias limitaciones de adaptación, flexibilidad y
crecimiento, generando un “cuello de botella” en el despliegue y evolución de los
negocios. Es necesario realizar un cambio de enfoque sobre las arquitecturas de
redes, para poder incrementar la productividad, y lograr que acompañen la
capacidad de innovación de las organizaciones.
El problema radica en el esquema de control tradicional, el cual se basa en un
enfoque no centralizado. La administración de los diferentes equipos por
separado, teniendo únicamente un plano de control distribuido, no provee la
flexibilidad, escalabilidad, y dinámica que las redes actuales requieren. Estas
topologías tradicionales han llegado a ser extremadamente complejas y difíciles de
abarcar. Se continúan diseñando distintos protocolos y procesos acorde al
enfoque distribuido del esquema de control tradicional, que lleva a que en vez de
poder usar simples abstracciones para explicar y modificar el funcionamiento de
una red, se deba enfocar el estudio y análisis en el aprendizaje de diversos
protocolos, por lo general aplicaciones prácticas y guías de diseño, y no principios
abstractos y fundamentales. Esto implica que cada vez que se quiere desplegar
una nueva funcionalidad, se debe lidiar con estandarizaciones de métodos de
aplicación distribuidos.
Se plantea un nuevo paradigma, basado en principios abstractos y fundamentales.
El estudio y análisis de los métodos de aplicación de los diversos protocolos se
realiza una única vez, creando abstracciones y utilizándolas para explicar y
modificar el funcionamiento de una red. De esta forma, la red se pone al servicio
de los operadores y programadores, y las diferentes funcionalidades se
programan, configuran y operan a un nivel de control centralizado, sin tener que
lidiar con la distribución de la inteligencia. Se proponen nuevas arquitecturas de
red que sean flexibles, escalables, programables y capaces de soportar múltiples
servicios; que logren optimizar la forma en la que operamos, comprendemos,
diseñamos e interactuamos con las redes. Junto a ello, se busca acompañar el
creciente despliegue de servicios de tipo “cloud computing” y la virtualización de
las funciones de red.
Es entonces SDN un enfoque de arquitectura de red que brinda la habilidad de
programar directamente operaciones de red, usando lenguajes y sistemas
13
operativos estándar. SDN permite realizar una transición, desde modelos de redes
tradicionales (estáticas, inflexibles, con poca agilidad y que no acompañan a las
nuevas iniciativas de los negocios) hacia redes programables, que brindan
flexibilidad, agilidad, optimización y virtualización.
La funcionalidad SDN les permite a los operadores de red utilizar conceptos de
programación para implementar técnicas de administración y orquestación
automáticas, aplicar diversas configuraciones en múltiples equipos, y desacoplar
las aplicaciones que realizan estas operaciones de los sistemas operativos de los
dispositivos de red. SDN permite a las aplicaciones interactuar dinámicamente con
los diferentes procesos de la red, usando estadísticas y diferentes parámetros
recibidos de la misma, junto con requerimientos específicos, para desplegar de
forma dinámica nuevos esquemas y configuraciones.
El esfuerzo para optimizar las redes y servicios, ha obligado a las empresas a
añadir mecanismos capaces de transformar las redes de acceso en arquitecturas
de red orientadas a servicios. Como resultado, nace la tecnología Multiprotocol
Label Switching (MPLS), tecnología que consigue de modo eficaz unificar los
diferentes tipos de tráfico de una red utilizando para ello la conmutación de
etiquetas. Este mecanismo optimiza el tradicional proceso de encaminamiento de
paquetes por IP.
La pretensión de este proyecto apunta a validar el proceso de etiquetado en una
red SDN. En primera instancia se describe el funcionamiento de cada una de las
tecnologías presentes y herramientas necesarias para realizar dicha emulación
tales como MPLS, SDNs, herramientas de simulación y emulación de SDNs,
controladores etc. Finalmente se describe el proceso de emulación MPLS-SDN
mediante dos topologías sencillas, en las cuales se activa el protocolo OpenFlow
1.3 y el controlador Floodlight, indicando la forma como se configura el
etiquetamiento en MPLS y como se activa el controlador y los diferentes
protocolos.
El documento se encuentra estructurado de la siguiente manera: en el capítulo 1
se dan los objetivos del proyecto, en el capítulo 2 encontramos el marco teórico,
en el capítulo 3 vemos la emulación de MPLS mediante un emulador de redes
definidas por software, por último en el capítulo 4 nos encontramos con las
conclusiones del proyecto.
14
1
1.1
OBJETIVOS
OBJETIVO GENERAL
Realizar la emulación del protocolo MPLS y su proceso de
conmutación/apilamiento de etiquetas en una red definida por software, con el fin
de evaluar las ventajas del proceso, en cuanto al funcionamiento SDN-MPLS y el
beneficio que confiere en el enrutamiento de paquetes.
1.2
OBJETIVOS ESPECÍFICOS

Explorar e indagar sobre las diferentes herramientas de simulación y
emulación para redes definidas por software, seleccionar la apropiada para
el desarrollo de este proyecto y estudiar su funcionamiento.

Determinar teóricamente las ventajas del proceso de conmutación y
apilamiento de etiquetas en redes MPLS mediante una exploración del
estado del arte de dicho proceso y estudio del funcionamiento del protocolo
MPLS.

Seleccionar una arquitectura de red MPLS sencilla, de tal manera que se
pueda emular la red sin el proceso de conmutación/apilamiento y con el
proceso de conmutación/apilamiento con el fin de comparar los resultados.

Diseñar, configurar y ejecutar la emulación de la red MPLS con y sin el
proceso de conmutación/apilamiento de etiquetas.

Generar conclusiones con respecto a las ventajas de usar el proceso de
conmutación/apilamiento de etiquetas.

Documentar todo el proceso y desarrollo del trabajo de grado.
15
2
MARCO TEORICO
Las arquitecturas de red existentes no han sido diseñadas para satisfacer las
necesidades de los usuarios, las empresas y los operadores de hoy en día. Los
diseñadores de redes se encuentran restringidos por las limitaciones de las redes
actuales, como las que se describen a continuación: (Open Networking Foundation,
2012)
2.1

Políticas inconsistentes: Implementar una política para toda la red supone
tener que configurar miles de dispositivos y mecanismos.

Incapacidad para escalar: Al igual que la demanda en los centros de
datos crece rápidamente, también debe crecer la red. Sin embargo, se
vuelve mucho más compleja con la incorporación de n dispositivos que
deben ser configurados y gestionados.

Dependencia de proveedores: Los operadores tratan de desplegar
nuevos servicios de respuesta rápida a las necesidades cambiantes del
negocio. Sin embargo, su capacidad de respuesta se ve obstaculizada por
los ciclos de los vendedores de productos. La falta de interfaces estándar y
libres limita la capacidad de los operadores para adaptar la red a sus
entornos individuales. En respuesta a esto, la industria ha creado el
Software-Defined Networking (SDN), la arquitectura y el desarrollo de
normas asociadas.
IMPORTANCIA DE UN NUEVO PARADIGMA DE RED
El estándar MPLS fue desarrollado para suplir la problemática que afrontan los
carriers, ya que el tráfico en sus redes de transporte se ha desplazado
rápidamente del tráfico TDM de conmutación de circuitos a paquetes de datos IP.
Ahora, ellos tienen que soportar la conmutación de paquetes sin dejar de llevar
tráfico legado con la alta fiabilidad de sus redes actuales.
El estándar MPLS soporta tanto la creación y administración de rutas estáticas
como dinámicas. Incluye los mecanismos del plano de control dinámico en el
conjunto de protocolos MPLS. Un plano de control dinámico ofrece ventajas
mediante la creación y modificación de rutas sin la necesidad de intervención del
administrador.
16
Al usar SDN en un entorno MPLS se puede reducir la complejidad en el plano de
control dinámico y permitir la creación de servicios flexibles. Un cambio a SDN
eliminaría la necesidad de implementaciones de protocolos residentes en los
switches. Un controlador OpenFlow, por ejemplo, podría emitir directrices para
establecer las rutas de red. Las aplicaciones que sirven de interfaz al controlador
implementarían las funciones que actualmente presta el código de protocolo
residente en el router. Los routers ya no requieren tanta memoria o capacidad de
cálculo, reduciendo así las necesidades de energía y actualizaciones frecuentes.
(Jacobs, 2014)
2.2
REDES DEFINIDAS POR SOFTWARE SDN
El término SDN (Software Defined Network o red definida por software) se ha
venido acuñando en los últimos dos años para hacer referencia a una arquitectura
de red que permite separar el plano de control del plano de datos, para conseguir
redes más programables, automatizables y flexibles.
El concepto en sí, sin embargo, no es tan reciente. La idea de una red que pueda
programarse, y no simplemente configurarse, ha sido ya aplicada por numerosos
fabricantes, pero con una gran limitación: hasta ahora, todas las iniciativas habían
sido muy propietarias.
Aproximadamente en 2010, no obstante, se produjo “una respuesta masiva por
parte de la industria para crear interfaces totalmente abiertas, entre ellas
OpenFlow, que definan una manera única, abierta y común para todos los
fabricantes a la hora de extender sus equipos y exponerlos a piezas de software
que permitan programarlos”, explicó Xavi Homs, director de preventa de HP
Networking.
Desde entonces, el término SDN ha llegado con la promesa de una revolución de
la arquitectura de red en los centros de datos.
De SDN se ha hablado mucho, pero no existe una única definición. Es, ante todo,
un concepto, que cobra sentido especialmente comparándolo con las redes
tradicionales. En las redes actuales, la manera como se procesan los paquetes
depende de una programación, mientras que en una SDN está condicionada por
una interfaz de programación con un software que gobierna su comportamiento.
La manera de procesar los paquetes no depende de una programación estática en
unos ficheros de configuración en cada uno de los nodos, sino de los mensajes
17
que envía un software a cada elemento de la red de manera dinámica. (Dynamics,
2013)
La Figura 1 representa una vista lógica de la arquitectura SDN. La inteligencia de
red es centralizada en el controlador SDN basado en software, que mantienen una
visión global de la red. Como resultado, en la red aparecen las aplicaciones de
negocio y servicios de red. Con SDN, las empresas y operadores diseñan el
control independiente del proveedor sobre toda la red desde un único punto lógico,
lo que simplifica en gran medida el diseño y funcionamiento de la red. SDN
también simplifica en un alto porcentaje los dispositivos de la red, puesto que ya
no necesitan entender y procesar miles de normas de protocolo, sino simplemente
aceptar instrucciones de los controladores SDN. (Hervás, 2914)
FIGURA 1. SDN Red Definida por Software:
The New Norm for Networks, 2012, Software-Defined Networ k Architecture, pág. 7
https://www.opennetworking.org/images/stories/downloads/sdn -resources/white -papers/wpsdn-newnorm.pdf
18
2.2.1 Beneficios de SDN
Una vez que el control del software es separado del hardware y transformado en
un entorno más abierto, los usuarios pueden obtener diversos beneficios
incluyendo los siguientes: (Santamaría, 2012)

Visión unificada de la estructura de red: Con el SDN se tiene una visión
unificada de la red, simplificando la configuración, gestión y
aprovisionamiento.

Alta utilización: Una Ingeniería de tráfico centralizada proporciona una
visión global, tanto en la oferta como en la demanda de recursos en la red.
Gestionar a través de esta visión global el camino extremo a extremo que
permita conseguir una alta utilización de los enlaces.

Manejo más rápido de fallos: Los fallos, ya sean en un enlace o nodo, se
gestionan más rápido. Además, los sistemas convergen más rápidamente
hacia el objetivo óptimo y el comportamiento es predecible.

Entorno de prueba de alta fidelidad: La red dorsal (backbone) es
emulada completamente mediante software, esto no sólo ayuda en la
comprobación y verificación, sino también en la gestión de posibles
escenarios que se puedan dar.

Elasticidad en el cómputo: Calcular la capacidad de los dispositivos de
red ya no es un factor limitador, al igual que el control y la gestión, reside en
los servidores y controladores externos.

Actualizaciones sin impacto: El desacoplamiento del plano de control
respecto al plano de datos, permite llevar a cabo actualizaciones de
software sin pérdida de paquetes o degradación de la capacidad.
Otros beneficios que aparecen son:



Personalización de la red y sus servicios.
Operaciones mejoradas.
Incremento del rendimiento.
19
2.3
CONTROLADORES PARA SDN
Un controlador SDN ofrece una interfaz de programación para los conmutadores
OpenFlow de tal forma que, las aplicaciones de gestión, a través de la misma,
pueden realizar tareas de gestión y ofrecer nuevas funcionalidades. Un
controlador SDN puede ser descrito de forma general como un sistema de
software, o colección de sistemas, que ofrecen: (revistatelematica, 2014)

Gestión del estado de la red, que implica una base de datos. Estas bases
de datos sirven como un repositorio para la información de los elementos
de red gestionados, incluyendo el estado de la red, alguna información de
configuración temporal e información sobre la topología de la red.

Un modelo de datos de alto nivel que captura las relaciones entre los
recursos gestionados, las políticas y otros servicios prestados por el
controlador. En muchos casos estos modelos de datos se construyen
utilizando el lenguaje de modelado Yang.
Un mecanismo de descubrimiento de dispositivos, topología y servicio; un
sistema de cálculo de ruta y, potencialmente, otros servicios de información
centrados en la red o en los recursos.


Una sesión de control segura sobre el Protocolo de Control de Trasmisión
(Transmission Control Protocol: TCP por sus siglas en inglés) entre el
controlador y los agentes asociados en los elementos de la red, por ejemplo
con el uso del protocolo TLS (Seguridad en la Capa de Transporte o
Transport Layer Security, por sus siglas en inglés).

Un protocolo basado en estándares (OpenFlow) para obtener el estado de
la red impulsado por las aplicaciones de los elementos de red.

Un conjunto de APIs, a menudo RESTful (Transferencia de estado
representacional o Representational State Transfer, por sus siglas en
inglés) que exponen los servicios del controlador a las aplicaciones de
gestión. Esto facilita la mayor parte de la interacción del controlador con
estas aplicaciones. Esta interfaz se representa a partir del modelo de datos
que describe los servicios y funciones del controlador. En algunos casos, el
controlador y su API son parte de un entorno de desarrollo que genera el
código de la API a partir del modelo de datos.
20

Algunos controladores ofrecen entornos de desarrollo robustos que
permiten la expansión de las capacidades básicas del núcleo y la posterior
publicación de las APIs para los nuevos módulos, incluyendo los que
soportan la expansión dinámica de las capacidades del controlador
Por tanto, en las SDN, es el controlador central el que dicta el comportamiento
general de la red a partir de los requerimientos de las aplicaciones. Ejemplos de
algunos controladores de código abierto existentes son: Beacon, Floodlight, NOX,
POX, Ryu, Trema y OpenDayLight (ODL). En la tabla 1 se muestran algunas
características de estos controladores
Tabla 1. Características de algunos Controladores
Beacon
Floodlight
NOX
POX
Trema
OF v1.3
Ryu
Soporte
OpenFlow
OF v1.0
OF v1.0, 1.3,
1.4, 1.5
OF v1.0
Virtualización
MiniNet y
Open vSwitch
MiniNet y
Open
vSwitch
MiniNet y
Open
vSwitch
MiniNet y
Open
vSwitch
MiniNet y
Open
vSwitch
Java
Java
C++
Python
Rudy/C
Python
Java
Si (Básica)
SI
lenguaje de
Desarrollo
Provee REST
API
OF v1.0, v1.2,
v1.3, v1.4, 1.5 y
extensiones Nicira
Construcción de
una herramienta
virtual de
simulación
ODL
OF v1.0,
1.3, 1.4,
1.5
OF v1.0
MiniNet y
Open
vSwitch
NO
SI
NO
NO
Si
(Básica)
Interfaz Grafica
Web
Web
Python+,
QT4
Python+,
QT4 , WEB
NO
WEB
WEB
Soporte de
plataformas
Linux, Mac
OS, Windows
y Android para
móviles
Linux, Mac
OS,
Windows
Linux
Linux, Mac
OS,
Windows
Linux
Linux
Linux, Mac
OS,
Windows
NO
SI
NO
NO
SI
SI
SI
Soporte de
OpenStack
Multiprocesos
SI
SI
SI
NO
SI
NO
SI
Tiempo en el
mercado
5 años
4 años
8 años
3 años
4 años
4 años
3 años
Documentación
Buena
Buena
Media
Pobre
Pobre
Media
Media
Tomado de: (Alejandro Garcia Centeno, 2014)
2.4
CARACTERÍSTICAS DE ALGUNOS CONTROLADORES
Aquí observaremos una brevemente descripción de los controladores más
utilizados con la plataforma OpenFlow, esto nos ayudaran a seleccionar el mejor
controlado para el proyecto planteado, a continuación se presentan las
características de los controladores presentados en la tabla 1.
21
2.4.1 Controlador Beacon
Es un controlador OpenFlow de código abierto basado en Java creado en 2010.
Se exploró nuevas áreas del espacio de diseño del controlador OpenFlow, con un
enfoque en ser amistoso con el desarrollador, de alto rendimiento, y tener la
capacidad para iniciar y detener existentes y nuevas aplicaciones en tiempo de
ejecución. Beacon mostró sorprendentemente alto rendimiento, y fue capaz de
escalar linealmente con núcleos de procesamiento, manejo de 12,8 millones de
paquetes en mensajes por segundo con 12 núcleos, mientras que se construye
utilizando Java. Beacon aprovecha múltiple librerías de las bibliotecas en la
plataforma en un intento de maximizar la reutilización de código y para aliviar la
carga de desarrollo tanto del controlador en sí mismo, y las aplicaciones de usarlo.
La biblioteca más importante es la Spring, como se muestra en la Figura 2,
proporciona un marco para el control de los dispositivos de red utilizando el
protocolo OpenFlow, y un conjunto de aplicaciones integradas que proporcionan
funcionalidad de plano de control comúnmente necesario. (Erickson, The Beacon
OpenFlow Controller, 2015)

Administrador De Dispositivos (Device Manager): Visualizar las señales
de dispositivos en la red, tales como: direcciones (Ethernet e IP), últimos
vistos en la red, el interruptor y el puerto. El administrador de dispositivos
proporciona una interfaz (IDevice-Manager) para buscar los dispositivos
conocidos, y la posibilidad de registrarse para recibir eventos como adición
de nuevos dispositivos y actualización y eliminación de existentes.

Topología (Topology): Descubre enlaces entre switches OpenFlow
conectados. Su interfaz (ITopology) permite la recuperación de una lista de
dichos enlaces, y el registro de eventos para ser notificado cuando se
agregan o enlaces que se habían quitado.

Routing (Routing): Provee una capa más corta en el trayecto de
enrutamiento entre dos dispositivos en la red. Esta aplicación exporta la
interfaz de motor de enrutamiento, permitiendo implementaciones del motor
de enrutamiento intercambiables. La aplicación utiliza la ruta más corta
como método de cálculo. El enrutamiento depende tanto de Topología y el
Administrador de dispositivos.

Web. Proporciona una interfaz de usuario Web de Beacon. La aplicación
web proporciona la interfaz IWebManageable, permitiendo a los ejecutores
de la interfaz poder añadir sus propios elementos de la IU.
22
Enrutamiento
Administrador
de dispositivos
Topología
Aplicaciones
FIGURA 2. The Beacon OpenFlow Controller,
2015, Descripción general de Beacon, pág. 1,
http://yuba.stanford.edu/~derickso/docs/hotsdn15 -erickson.pdf
2.4.2 Controlador Floodlight
El controlador Floodlight es un controlador OpenFlow de clase empresarial, con
licencia de Apache, basada en Java. Es apoyado por una comunidad de
desarrolladores que incluyen una serie de ingenieros de redes de conmutación
grandes, como se muestra en la Figura 3 este trabaja entre el plano de datos y el
plano de control. (sponsored community project, 2015)
OpenFlow es un estándar abierto gestionada por la Fundación Open Networking
(ONF). Se especifica un protocolo a través del interruptor de un controlador remoto
puede modificar el comportamiento de los dispositivos de red a través de un
"conjunto de instrucciones de reenvío" bien definido. Floodlight está diseñado para
trabajar con el creciente número de switches, routers, switches virtuales, y los
puntos de acceso compatibles con el estándar OpenFlow, a partir de Floodlight
v1.0, Floodlight tiene soporte completo para todas las características OpenFlow
1.3. También es compatible con versiones anteriores de OpenFlow 1.0 (con
soporte experimental para OpenFlow 1.1 y 1.2). Expone todas las versiones
OpenFlow a través de una API común generado por el proyecto Loxigen llamado
OpenFlowJ-Loxi. (sponsored community project, 2015)
23
Ventajas, ¿porque trabajar con este controlador?

OpenFlow - funciona con interruptores físico y virtualización que hablan
con el protocolo OpenFlow.

Licencia Apache - permite utilizar Floodlight para casi cualquier propósito
de arquitectura.

Comunidad Abierta - Floodlight es desarrollado por una comunidad abierta
de desarrolladores. Todas las contribuciones de código de participantes
activos son compartidas abiertamente sobre el estado del proyecto, plan de
trabajo, bugs, etc.

Fácil de usar- Floodlight es de código simple de construir y correr.

Ofrece un sistema de módulo de carga que hace que sea fácil de extender
y mejorar

Probado y compatible - Floodlight es el núcleo de un controlador de
producto comercial de grandes Redes y está probado y mejorado de forma
activa por una comunidad de desarrolladores profesionales.

Fácil de configurar con dependencias mínimas.

Soporta una amplia gama de switches OpenFlow virtualización y físico.

Diseñado para ser de alto rendimiento - es el núcleo de un producto
comercial de grandes Redes.

Soporte para la plataforma OpenStack nube.
24
Aplicación de Nivel
Mas Aplicaciones Floodlight
API Dirección Norte
Nivel de plano de control
Controlador OpenFlow
Interfaz de plano de datos Indigo
Nivel de plano
de Datos
FIGURA 3. Project Floodlight Controller,
2015, Descripción general de Floodlight, pág. 1, http://www.projectfloodlight.org/floodlight/
25
2.4.3 Controlador NOX
Es una pieza del ecosistema de las redes definidas por software. En concreto, se
trata de una plataforma para la creación de aplicaciones de control de red. De
hecho, mientras que lo que ahora llamamos SDN creció de una serie de proyectos
académicos (quizás principalmente SANE and Ethane), la primera tecnología SDN
para obtener el reconocimiento el verdadero nombre era OpenFlow y NOX fue
desarrollado inicialmente en Nicira Redes de lado a lado con OpenFlow - NOX fue el
primer controlador OpenFlow. Nicira donó NOX a la comunidad de investigadores en
2008, y desde entonces, ha sido la base de muchos y diversos proyectos de
investigación en la exploración temprana del espacio SDN. (NOX, 2014)
Ventajas que NOX proporciona:

Proporciona un API 1.0 C ++ OpenFlow

Proporciona rápido, asíncrono IO

Está dirigido a las distribuciones recientes de Linux

Incluye componentes de ejemplo para:
o Descubrimiento de topología
o Interruptor de aprendizaje
o Interruptor de toda la red
2.4.4 Controlador POX
Es ideal para comenzar en SDN usando Python en Windows, Mac OS o Linux,
desde el mismo instante que se instala este controlando con OpenFlow en sólo unos
segundos después puede utilizar la potencia de este controlador. Está dirigido
principalmente a la investigación y la educación, y es usado para el trabajo en curso
sobre la definición de las abstracciones y técnicas clave para el diseño del
controlador. (POX, 2014)
26
POX es el hermano menor de NOX. En su esencia, es una plataforma para el rápido
desarrollo y creación de prototipos de software de control de red utilizando Python.
Es decir, en un nivel muy básico, que es uno de un número creciente de framework,
para ayudar a escribir un controlador OpenFlow.
POX también va más allá de esto. Además de ser un framework para interactuar
con switches OpenFlow, se está usando como base para algunos trabajos en
curso para ayudar a construir la disciplina emergente de Software Defined
Networking. Se está usando para explorar y distribuir prototipos, SDN depuración,
virtualización de redes, diseño del controlador, y modelos de programación.
Soporta los mismos GUI y herramientas de visualización como NOX. (POX, 2014)
2.4.5 Controlador TREMA
Es un framework para programar un controlador SDN, a gusto del programador,
en los lenguajes Ruby y C. Este entorno de programación genera un fichero de
configuración que después puede ser ejecutado por Trema para comportarse
como un controlador SDN. (Community Trema, 2015)
2.4.6 Controlador RYU
Es un componente para las redes definidas por software un framework. Ryu ofrece
componentes de software con API bien definidas que hacen que sea fácil para los
desarrolladores crear nuevas aplicaciones de gestión y control de la red. Ryu es
compatible con varios protocolos para la gestión de dispositivos de red, tales como
OpenFlow, Netconf, DE-config, etc. Ryu es totalmente compatible con v1.0, 1.2, 1.3,
1.4 y Nicira Extensiones. Todo el código está disponible gratuitamente bajo la
licencia Apache 2.0. (Ryu SDN Framework Community, 2014)
Ryu tiene una impresionante colección de librerías, que van desde el apoyo a
múltiples protocolos southbound y las operaciones de procesamiento de paquetes
diferentes de red. Con respecto a los protocolos southbound, Ryu soporta DECONFIG (Gestión OpenFlow y Configuration Protocol), OVSDB (Protocolo de
gestión de base de datos Openvswitch), NETCONF, X FLOW (NetFlow y sFlow) y
otros protocolos de terceros. NetFlow es apoyado por Cisco y otros, y es específico
para una IP. Los protocolos de muestreo de paquetes de soporte y agregación
NetFlow y sFlow, que se utilizan principalmente para la medición del tráfico de red.
(Ryu SDN Framework Community, 2014)
27
Las bibliotecas de terceros son vinculantes abrir vSwitch Python, la biblioteca de
configuración de Oslo y una biblioteca de Python para el cliente NETCONF. La
biblioteca de paquetes Ryu ayudan a analizar y construir varios paquetes de
protocolo, como VLAN, MPLS, GRE, etc. (Ryu SDN Framework Community, 2014)
2.4.7 Controlador Opendaylight
Es una plataforma abierta para la programación de redes para permitir la SDN y
NFV para redes en cualquier tamaño y escala. El segundo lanzamiento de la
comunidad " Helium" viene con una nueva interfaz de usuario y un proceso de
instalación mucho más simple y personalizable gracias a la utilización del
contenedor Apache Karaf. (OpenDaylight, a Linux Foundation Collaborative Project,
2015)
OpenDaylight es la combinación de componentes de software que incluye un
controlador totalmente conectable, las interfaces, protocolos de plug-ins y
aplicaciones. Con esta plataforma común Tanto los clientes como los proveedores
pueden innovar y colaborar con el fin de comercializar soluciones basadas en NFV
y SDN. (OpenDaylight, a Linux Foundation Collaborative Project, 2015)
En el comunicado de helio, la plataforma ha evolucionado OpenDaylight en otras
áreas clave, como la alta disponibilidad, clustering y seguridad, así como el
fortalecimiento y la adición de nuevos protocolos como OpenFlow tipo de tabla
Patrones, PacketCable MultiMedia, y el framework de políticas de aplicaciones y
herramientas para el servicio de función de encadenamiento. (OpenDaylight, a
Linux Foundation Collaborative Project, 2015)
OpenDaylight puede ser el componente central dentro de cualquier arquitectura
SDN. Basándose en una fuente abierta SDN y el controlador NFV Permite a los
usuarios reducir la complejidad operativa, extender la vida de la infraestructura de
hardware existente y permitir nuevos servicios y capacidades sólo disponibles con
NEE. Ya sea que la organización es un proveedor de TI de la empresa, un
proveedor de servicios de red o un proveedor de servicios en la nube, puede
comenzar a tomar ventaja de SDN y NFV utilizando un controlador de código
abierto impulsado por la comunidad disponibles en la actualidad. (OpenDaylight, a
Linux Foundation Collaborative Project, 2015)
28
2.5
ELEMENTOS A TENER EN CUENTA PARA LA SELECCIÓN DE
CONTROLADORES SDN
Saber elegir o seleccionar un controlador es vital en el diseño de una red SDN, ya
que no todos cumplen con los mismos objetivos o están limitados a tareas muy
específicas. A continuación se presentan las características más relevantes al
momento de tomar la decisión de cual controlador seleccionar, Los puntos a tener
presentes al evaluar un controlador SDN se describen de la siguiente manera:
(revistatelematica, 2014)

Soporte OpenFlow: Al elegir un controlador los administradores de red
necesitan conocer las características de las versiones de OpenFlow que el
controlador soporta, así como las posibilidades que ofrece el proveedor
para migrar a las nuevas versiones del protocolo, tales como la v1.3 y la
v1.4.

Virtualización de red: Debido a los beneficios que ofrece la virtualización
de red, un controlador SDN debe soportarla. Esta característica permite a
los administradores crear dinámicamente las redes virtuales basadas en
políticas, disociadas de las redes físicas, para satisfacer una amplia gama
de requisitos.

Funcionalidad de la red: Para lograr mayor flexibilidad en términos de
cómo los flujos son enrutados, es importante que el controlador SDN pueda
tomar decisiones de enrutamiento basado en múltiples campos de la
cabecera de OpenFlow.

Escalabilidad: Una consideración fundamental con respecto a la
escalabilidad de una red SDN es el número de conmutadores o switches
que un controlador SDN puede soportar.

Rendimiento: Una de las principales funciones de un controlador SDN es
establecer flujos. Por ello, dos de los indicadores claves de rendimiento
asociados con un controlador SDN son el tiempo de conformación de flujo y
el número de flujos por segundo que puede establecer el controlador.

Programación de red: Una de las características fundamentales de las
SDN es la existencia de interfaces para la programación del controlador, lo
que posibilita que este ofrezca varias funcionalidades.
29

Confiabilidad: Una de las técnicas que un controlador SDN puede utilizar
para aumentar la fiabilidad de la red, es la capacidad de descubrir múltiples
caminos desde el origen hasta el destino lo cual puede realizar si
continuamente controla la topología de la red. Si el controlador SDN
establece varias rutas entre el origen y el destino, la disponibilidad de la
solución no se ve afectada por la interrupción de un solo enlace.

Seguridad de la red: Con el fin de proporcionar seguridad a la red, un
controlador SDN debe ser capaz de soportar la autenticación y autorización.
Debido a que un controlador SDN es candidato para un ataque malicioso,
necesita poseer la capacidad de limitar las comunicaciones de control.

Monitorización centralizada y visualización: Un controlador SDN tiene
que ser capaz de utilizar los datos ofrecidos por el protocolo OpenFlow para
identificar los problemas en la red y, automáticamente, cambiar la ruta que
toma un flujo determinado.

Fabricantes de controladores SDN: Debido a la volatilidad del mercado
SDN en general, y del mercado del controlador SDN, en particular, las
organizaciones que deben evaluar controladores SDN para sus redes
deben centrarse no sólo en los atributos técnicos del controlador, sino
también en las características del vendedor o proveedor.

Soporte de plataformas: Los controladores SDN corren sobre sistemas
operativos siendo importante que el que se esté evaluando sea
multiplataforma. En muchas entidades es de gran interés que el controlador
corra sobre plataformas de código abierto.

Procesamiento: Al evaluar un controlador se debe conocer si el mismo
soporta procesos múltiples o no, pues esto puede repercutir en la
escalabilidad de los núcleos de la CPU.
30
2.6
INTRODUCCIÓN A MPLS REAL
MPLS quiere decir Conmutación de Etiquetas Multiprotocolo (Multiprotocol Label
Switching), es una tecnología relativamente nueva que se desarrolló para
solucionar la mayoría de los problemas que existen en la técnica actual de reenvío
de paquetes, asignando etiquetas a los paquetes en función de su prioridad de
despacho; permite construir redes virtuales privada (VPNs), flexibles y ampliables,
que respaldan la prestación de servicios en diferentes niveles. (SALVIAT, 2005)
Opera entre la capa de enlace de datos y la capa de red del modelo OSI tal como
se observa en la Figura 4, fue diseñado para unificar el servicio de transporte de
datos para las redes basadas en circuitos y las basadas en paquetes, puede ser
utilizado para transportar diferentes tipos de tráfico incluyendo tráfico de voz y de
paquetes IP. (Peralta, 2015)
FIGURA 4. Capa 2.5 Modelo OSI, exposición arquitectura MPLS,
2015, Clase de teoría de las telecomunicaciones, Ingeniera Line Yasmín Becerra,
Universidad Católica de Pereira
Según el énfasis que se tenga a la hora de explicar sus características y utilidad,
MPLS se puede presentar como un sustituto de la conocida arquitectura IP sobre
ATM, también como un protocolo para hacer túneles (sustituyendo a las técnicas
habituales de “tunneling”), o bien, como una técnica para acelerar el
encaminamiento de paquetes. (Peralta, 2015)
31
No obstante, se debe considerar MPLS como el avance más reciente en la
evolución de las tecnologías de Routing y Forwarding en las redes IP, lo que
implica una evolución en la manera de construir y gestionar las redes que se
requieren para esta época. (SALVIAT, 2005)
2.6.1 Descripción cabecera MPLS
En la Figura 5 se representa el esquema de los campos de la cabecera genérica
MPLS y su relación con las cabeceras de los otros niveles.
Como se observa en la figura, los 32 bits de la cabecera MPLS se reparten en: 20
bits para la etiqueta MPLS, 3 bits para identificar la clase de servicio en el campo
experimental llamado CoS, 1 bit de Stack para poder apilar etiquetas de forma
jerárquica (S) y 8 bits para indicar el TTL (time to live) que sustenta la funcionalidad
estándar TTL de las redes IP. De esta manera, las cabeceras MPLS permiten
cualquier combinación de tecnologías de transporte, con la flexibilidad que esto
supone para un proveedor IP a la hora de extender su red. (Castañeda, 2012)
FIGURA 5. Estudio y diseño de redes virtuales privadas (VPN) basadas en tecnología MPLS,
2004, Estructura de la cabecera genérica MPLS, pág. 54,
http://bibdigital.epn.edu.ec/bitstream/15000/5035/1/T2218.pdf
32
2.6.2 Arquitectura MPLS
En la arquitectura de la red MPLS se encuentran elementos muy importantes y
que cumplen con un papel valioso para el funcionamiento de la red. Se muestran
estos elementos a continuación Figura 6:
FIGURA 6. MPLS Multi Protocol Label Switching,
2010, Componentes de una red MPLS,
https://sites.google.com/site/3cuelectronica/home/ethernet/mpls
2.6.2.1 Router conmutador de etiquetas (LRS: Label Switch Router)
El LSR es un router conmutador de etiquetas que basa su funcionamiento de
envío en el chequeo de la etiqueta o pila de etiquetas que ha sido añadida a un
paquete IP en la frontera de ingreso al dominio MPLS.
No realiza funciones de chequeo de capa de red ya que para el envío basta con
analizar la etiqueta contenida en el paquete IP etiquetado, la cual le indica su
siguiente salto. El LSR remueve la etiqueta y asigna otra para indicar el siguiente
salto dentro de la red MPLS. (Canalis M. S., 2003)
33
2.6.2.2 Router de frontera de etiquetas (LER: Label Egde Router)
El LER es un router el cual se encuentra en la frontera de una red MPLS. Se
encarga de realizar y brindar funcionalidades de aplicaciones del cliente cuando
esté conectado a la red de un proveedor MPLS. Este elemento se encuentra
presente tanto en el ingreso como en el egreso de la red, cumpliendo las
funciones principales de la misma. Estos enrutadores cumplen funciones ya sea
para un Dominio MPLS como para un Dominio no MPLS. (Canalis M. S., 2003)
Cuando un paquete ingresa etiquetado a un LER de salida en la red MPLS, este
dispositivo de red le realiza el chequeo correspondiente y al consultar con su tabla
de etiquetas el LER de salida decide si el siguiente salto lo saca o no del dominio
MPLS. Si el siguiente salto lo saca de la nube, el LER de salida removerá la
etiqueta del paquete y lo enviara a su destino por enrutamiento convencional. Si el
siguiente salto es una nube MPLS (puede ser él mismo LER, u otro dominio
MPLS) el LER de salida mediante su tabla de etiquetas tomará la decisión
correspondiente. (Canalis M. S., 2003)
2.6.2.3 Clase equivalente de envió (FEC: Forwarding Equivalence Class)
La Clase Equivalente de Envío (FEC) hace referencia a un subconjunto de
paquetes IP que son tratados de la misma forma por un router (sobre la misma
ruta y con el mismo tratamiento de envío)
Se puede decir que en el enrutamiento convencional, cada paquete está asociado
a un nuevo FEC en cada salto. En MPLS la operación de asignar una FEC a un
paquete solo se realiza una vez que el mismo ingrese a la red. (Canalis M. S., 2003)
2.6.2.4 NHLFE (Next Hop Label Forwarding Entry)
Es una entrada a una tabla de envío en la que se indica la etiqueta del siguiente
hop. Por lo tanto, cuando un paquete entra a una red MPLS, se le asigna un
determinado FEC. (Canalis M. S., 2003)
34
2.6.3 Protocolos utilizados en MPLS
En esta sección se dará una descripción de los protocolos más utilizados en MPLS,
como hemos visto estos permiten la distribución de etiquetas entre los routers de
conmutación de etiquetas (LSR), permitiendo así la creación de LSP, dos de los
protocolos más difundidos son:
2.6.3.1 Protocolo LDP
El LDP es un protocolo creado específicamente para la distribución de información
concerniente a uniones FEC/etiqueta, dentro de una red MPLS. Es usado para
mapear FECs a etiquetas, lo cual consecuentemente creará LSPs. Las sesiones
LDP son creadas entre pares LDP de una red MPLS (pares no necesariamente
adyacentes). Los pares intercambian los siguientes tipos de mensajes LSP: (Cisco
Systems, Inc., 2007)

Mensajes de descubrimiento (discovery messages): anuncian y
mantienen la presencia de un LSR dentro de la red MPLS.

Mensajes de sesión (session messages): establecen, mantienen y
terminan sesiones entre pares LDP.

Mensajes de advertencia (advertisement messages): crean, cambian y
borran mapeos de etiquetas a FECs.

Mensajes de notificación (notification messages): proveen de
información de aviso y de información de error en la señal.
2.6.3.2 RSVP-TE
El protocolo RSVP-TE es una extensión del protocolo RSVP original, que fue
diseñado para ejecutar la distribución de etiquetas sobre MPLS. RSVP-TE soporta
además la creación de rutas explícitas con o sin reserva de recursos. Una de las
características adicionales más importantes de este protocolo es que permite el reenrutamiento de los túneles LSP, con el fin de dar una solución ante caídas de
red, congestión y cuellos de botella. (Dibildox, 2006)
35
Originalmente el IETF propuso a RSVP-TE como el protocolo de señalización
principal, ya que este era utilizado por la mayoría de las compañías de Internet en
MPLS y porque la tendencia es utilizar un protocolo de señalización RSVP. De aquí
en adelante la IETF recomendó profundizar más en el protocolo RSVP y dejar a un
lado CR-LDP. (Dibildox, 2006)
2.6.4 Componente de envío de etiquetas
El algoritmo de reenvío utilizado por el componente de envío de conmutación de
etiquetas se basa en el intercambio de etiqueta. El algoritmo funciona de la
siguiente manera. Cuando un LSR recibe un paquete, el router extrae la etiqueta
del paquete y lo utiliza como un índice en su tabla de reenvío. Una vez que se
encuentra la entrada indexada por la etiqueta (la entrada tiene su componente de
etiqueta de entrada igual a la etiqueta extraída del paquete), para cada subentrada
de la entrada se encuentra el router sustituye a la etiqueta en el paquete con la
etiqueta de salida de la subentrada y envía el paquete a través de la interfaz de
salida especificado por esta subentrada al siguiente salto especificado por esta
subentrada. (Farrel, MPLS: Next Steps, The Morgan Kaufmann Series in Networking,
2008)
Si la entrada especifica una cola de salida en particular, el router coloca el paquete
en la cola especificada. Supone que un LSR mantiene una única tabla de reenvío.
Sin embargo, un LSR también puede mantener una tabla de reenvío distinto para
cada una de sus interfaces. En este caso, la única modificación al algoritmo es
que después de que el LSR recibe un paquete, el LSR utiliza la interfaz en la que
se recibió el paquete para seleccionar una tabla de reenvío particular que se
utilizará para manejar el paquete. (Farrel, MPLS: Next Steps, The Morgan Kaufmann
Series in Networking, 2008)
El camino que sigue un paquete de datos a través de la red se define por la
transición en los valores de la etiqueta. Puesto que el mapeo en cada nodo es
constante, la ruta se determina únicamente por el valor de la etiqueta en el nodo
primero. Dicha ruta se denomina Switched Path Label (LSP). (Farrel, MPLS: Next
Steps, The Morgan Kaufmann Series in Networking, 2008)
Cada nodo en una red MPLS mantiene una tabla de consulta que permite
determinar el siguiente salto en el LSP. La tabla se conoce como la Base de
información Etiqueta de Reenvió (LFIB) y mapas (interfaz entrante, etiqueta
entrante) a (interfaz saliente, etiqueta saliente). (Farrel, MPLS: Next Steps, The
Morgan Kaufmann Series in Networking, 2008)
36
Esta es toda la información necesaria para enviar paquetes etiquetados. Una vez
que el LFIB ha sido ocupado no hay libertad de elección de los valores de la
etiqueta. El proceso de ocupar la LFIB se controla a través de la configuración o
por medio de los protocolos de distribución de etiquetas. En general, la elección de
los valores de etiqueta para poner en el LFIB se rige únicamente por la
consideración de que las etiquetas que ya están en uso, y las capacidades del
hardware / software que será cambiando paquetes basada en los valores de la
etiqueta. (Farrel, MPLS: Next Steps, The Morgan Kaufmann Series in Networking, 2008)
FIGURA 7. MPLS: Next Steps, The Morgan Kaufmann Series in Networking,
2008, Cambio de etiquetas en redes MPL S, pág. 15, http://www.amazon.com/MPLS -VolumeMorgan-Kaufmann-Networking/dp/0123744008
La Figura 7, ilustra dos LSP que transportan datos desde el Host A al Host B y
Host C. La red MPLS se compone de cuatro routers Label Switching (LSRs) para
reenviar los paquetes. Host A envía paquetes IP normales a LSR V utilizando su
ruta por defecto. LSR V es un ingreso LSR y clasifica los paquetes basados en el
destino final, los asigna a un LSP y los etiqueta. Esos paquetes dirigidos a Host B
se asignan a la LSP superior y están etiquetados con el valor 15; aquellos para
Host C se asignan a la LSP inferior y están etiquetados con el valor 10. Una vez
etiquetados, los paquetes se envían por la interfaz apropiada hacia LSR W. (Farrel,
MPLS: Next Steps, 2008)
En LSR W se examina cada paquete etiquetado para determinar la interfaz de
entrada y la etiqueta entrante. Estos se verifican en el LFIB para determinar la
etiqueta de salida y la interfaz de salida. Los valores de la etiqueta se intercambian
(entrante-reemplazado-saliente) y los paquetes se envían hacia las interfaces
designadas. En la Figura 7, los paquetes etiquetados 15 se envían por la interfaz
37
de salida para LSR X que lleva el nuevo valor 19; mientras el paquete 10 que
estaba etiquetado se envían por la interfaz de salida para LSR y llevar la nueva
etiqueta 62. (Farrel, MPLS: Next Steps, 2008)
LSR X e LSR Y son LSRs salida. También realizan una consulta en sus LFIBs,
pero las entradas indican que deberían eliminar la cabecera shim y reenviar el
paquete de forma normal. Este reenvío puede ser a través de la tabla de
enrutamiento IP normal, pero puede ser optimizado por el LFIB que indica la
interfaz de salida de modo que no se requiere el enrutamiento look-up. Así, en el
ejemplo, si LSR V asocia todos los paquetes para Host B con el LSP superior y los
etiqueta con el valor de 15, se remitirán con éxito a través de la red y se entregan
al Host B. (Farrel, MPLS: Next Steps, 2008)
La simplicidad del algoritmo de reenvío utilizado por el componente de envío de
etiquetas de conmutación facilita las implementaciones de bajo costo de este
algoritmo en hardware, que, a su vez, permite aumentar el rendimiento de reenvío
más rápido sin necesidad de hardware más caro. (Farrel, MPLS: Next Steps, 2008)
En lo que respecta a la decisión de reenvío, diferentes paquetes clasificados
dentro de un mismo FEC son considerados idénticos. Todos los paquetes
pertenecientes a un mismo FEC seguirán el mismo camino. (Farrel, MPLS: Next
Steps, 2008)
En el envío IP, un router considerará a dos paquetes dentro del mismo FEC si hay
algún prefijo de dirección X en la tabla de routing del router el cuál sea de mayor
concordancia para la dirección de destino de los paquetes. A medida que el
paquete sigue circulando por la red, cada router realiza la misma operación de
asignación en un FEC. (Farrel, MPLS: Next Steps, 2008)
En MPLS, esta asignación se efectúa solamente cuando el paquete entra en la
red, como se observa en la Figura 8 Tras esto, el FEC al que el paquete ha sido
asignado se codifica en un valor llamado Etiqueta. Cuando un paquete va a ser
enviado al siguiente nodo, se le añade la etiqueta. (Farrel, MPLS: Next Steps, 2008)
En el resto de los nodos del camino, no se necesitará realizar análisis de la
cabecera del paquete. La etiqueta que acompaña al paquete servirá para
encontrar el siguiente salto y una nueva etiqueta, procediendo a repetir el proceso
de envío. (Farrel, MPLS: Next Steps, 2008)
38
FIGURA 8. MPLS Multi Protocol Label Switching,
2003, Esquema funcional de MPLS, pág. 103,
http://exa.unne.edu.ar/informatica/SO/libmpls.PDF
2.6.5 Etiquetas
La etiqueta es un identificador corto de longitud fija de 32 bits, empleado para
asociar un determinado FEC; usualmente tiene significado local.
Cuando se habla de etiquetas MPLS se refiere a una percepción simplificada del
encabezado de un paquete IP, aun cuando una etiqueta contiene toda la
información asociada al direccionamiento de un paquete hasta su destino final en
la red MPLS. A diferencia de un encabezado IP, las etiquetas no contienen una
dirección IP, sino más bien un valor numérico acordado entre dos nodos
consecutivos para proporcionar una conexión a través de un LSP. (Castañeda, 2012)
39
2.6.6 Apilado de etiquetas
Una de las características más potentes de MPLS es la capacidad de apilar
etiquetas. Es útil tener un modelo más general en el que un paquete etiquetado
transporte cierto número de etiquetas, organizadas en una estructura de pila. A
esta estructura se le denomina “pila de etiquetas”, siendo esta una característica
fundamental de MPLS. Permitiendo a MPLS sea utilizado simultáneamente para
enrutar a un nivel fino y a un nivel mayor. Cada nivel en una pila de etiquetas
pertenece a algún nivel jerárquico. Esto facilita el modo de operación de túnel en
MPLS. (Castañeda, 2012)
Un paquete etiquetado puede llevar muchas etiquetas, las mismas que pueden
anidarse formando una pila con funcionamiento LIFO (Last-In, First-Out), ultimo en
entrar primero en salir. Esto permite ir agregando o segregando flujos. (Castañeda,
2012)
El procesamiento está siempre basado en la etiqueta superior, sin tener en cuenta
que cierto número de etiquetas pueda haber estado sobre ella en la pila,
anteriormente, o que otras tantas estén bajo ella actualmente. Un paquete sin
etiquetar se puede ver como un paquete con la pila de etiquetas vacía. Si la
profundidad de la pila de etiquetas es de profundidad m, a la etiqueta del fondo se
la nombra como 1 y a la de la cima como m. (nivel 1, nivel m) como se observa en
la Figura 9. Cabe destacar que cualquier LSR puede añadir una etiqueta a la pila
(operación push) o puede remover la misma (operación pop). (Castañeda, 2012)
El apilamiento de etiquetas hace posible la agregación de LSPs en un solo LSP
gracias a la creación de un túnel para una porción de la ruta a través de una red.
Al inicio de un túnel el LSR asigna la misma etiqueta a los paquetes de un número
de LSPs, colocando la etiqueta sobre la pila de cada paquete. Al final del túnel,
otro LSR es el encargado de extraer la etiqueta de la cima de la pila. MPLS se
destaca debido a que soporta una pila ilimitada, logrando de esta manera una
considerable flexibilidad en la transmisión de la información. (Castañeda, 2012)
40
FIGURA 9. Análisis de la red de la cnt ep para la implementación de servicios integrados
mediante tecnología MPLS,
2008, Apilamiento de etiquetas, pág. 44,
http://dspace.unach.edu.ec/bitstream/123456789/340/1/FI -IET -40A019.pdf
En la Figura 10 se ilustra cómo se utilizan pilas de etiqueta en la red. LSR P toma
el tráfico de Host A dirigido al Host D e impone una etiqueta (5). Del mismo modo,
el tráfico C de Host a Host E se maneja a LSR R donde se impone una etiqueta
(8). En el W de LSR, tanto LSP se someten a label swapping (5-3 y 8-7) y se
transmite por un túnel en un nuevo LSP donde una etiqueta adicional (9) es
empujada en la pila. La expedición a lo largo de la ruta de acceso W-X-Y-Z como
se describe antes, la etiqueta superior en la pila se intercambia y se reenvía el
paquete. Tenga en cuenta que las etiquetas más abajo de la pila no son
examinados o procesado. En el LSR Z, la etiqueta que define el túnel se extraen
de la pila, y el tráfico se reenvía utilizando la siguiente etiqueta en la pila. (Farrel,
MPLS: Next Steps, 2008)
41
FIGURA 10. MPLS: Next Steps, The Morgan Kaufmann Series in Networking,
2008, Apilamiento de etiquetas en redes MPLS, pág. 21, http://www.amazon.com/MPLS Volume-Morgan-Kaufmann-Networking/dp/0123744008
Las medidas necesarias para hacer un túnel pueden ser codificadas en la LFIB
utilizando una columna adicional.
La LFIB en la Figura 11, muestra cómo el proceso en la salida del túnel (LSR Z) es
un poco torpe. En primer lugar, se hace una búsqueda en la LFIB para el permiso
recibido (6), y luego se realizará una segunda búsqueda para procesar las
etiquetas de los LSPs tunelizados (3 y 7) para determinar cómo reenviar los
paquetes. La segunda búsqueda puede ser difícil de realizar en las
implementaciones de hardware y no es realmente necesario si el nodo anterior
realiza el penúltimo salto.
42
Interfaz de
entrada
Etiqueta
entrada
Acción
Interfaz de
salida
Etiquetas
de salida
FIGURA 11. MPLS: Next Steps, The Morgan Kaufmann Series in Networking, 2008, Proceso
de apilamiento de etiquetas en redes MPLS ,
cuadro de interfaces de la red , pág. 21, http://www.amazon.com/MPLS -Volume-MorganKaufmann-Networking/dp/0123744008
2.7
Aplicaciones de MPLS
Entre las aplicaciones más importantes que maneja MPLS tenemos las siguientes:



Ingeniería de trafico MPLS TE 

Implementación de QoS en MPLS 

Redes Privadas Virtuales (VPN)
43
2.7.1 Ingeniería de tráfico en MPLS
Ingeniería de tráfico es el proceso de mapear la demanda de tráfico sobre la
topología de la red. Es la habilidad de controlar el flujo de tráfico sobre la red. Se
establece que la ingeniería de trafico concierne a la optimización de la
performance de una red e involucra diversas áreas: mediciones de tráfico,
modelado de tráfico y redes, control del tráfico en Internet, evaluación de
performance. (Farrel, MPLS: Next Steps, 2008)
Se establece que los principales objetivos de TE son:

Mover el tráfico del camino establecido por el IGP(Protocolo de pasarela
interno) a un camino menos congestionado

Utilizar el exceso de ancho de banda sobre los enlaces sub-utilizados

Maximizar la utilización de los enlaces y nodos de la red.

Aumentar la confiabilidad del servicio

Alcanzar requerimientos impuestos
Los requerimientos pueden ser:

Orientados al tráfico: pérdidas de paquetes, retardos, etc.

Orientados a los recursos: básicamente utilización de capacidad de la red.
Las acciones de control tomadas al realizar TE pueden involucrar:

Modificación de los parámetros de gestión de tráfico

Modificación de los parámetros asociados al ruteo

Modificación de los parámetros y atributos asociados con los recursos
44
En general se busca también minimizar la intervención manual para tomar
acciones de control. La ingeniería de tráfico debe resolver tres problemas básicos:

Cómo mapear paquetes en FEC

Cómo mapear FEC en troncales tráfico.

Cómo mapear troncales en la red física
2.7.2 Implementación de QoS en MPLS
Es la habilidad para diferenciar diversas clases de servicio y asignarles prioridades
sobre cada enrutador en la red. El primer paso para la implementación de QoS es
identificar las distintas clases de tráfico que la red va a soportar. El tráfico puede
ser clasificado basado en el tipo como voz, aplicaciones, datos, etc., y sobre las
propiedades de patrones de tráfico, luego de que el tráfico ha sido clasificado el
próximo paso es identificar que operaciones de QoS serán llevadas a cabo para
cada uno de esos tipos sobre el enrutador local. (Lobo, 2005)
La calidad de servicio garantiza el valor de uno o varios de los parámetros que
definen la calidad de servicio que ofrece la red. El contrato que especifica los
parámetros de calidad de servicio acordados entre el proveedor y el usuario se
denomina SLA. (Lobo, 2005)
Donde MPLS tiene el campo EXP para poder propagar la clase de servicio en la
correspondiente LSP. Los parámetros típicos que se deben cumplir en una red
que tenga calidad de servicio son los siguientes:
1. Disponibilidad: tiempo mínimo que el operador asegura que la red esté en
funcionamiento.
2. Ancho de Banda: indica el ancho de banda mínimo que el operador
garantiza al usuario dentro de su red.
3. Pérdida de paquetes: Máximo de paquetes perdidos (siempre y cuando el
usuario no exceda el caudal garantizado).
4. Round Trip Delay: el retardo de ida y vuelta medio de los paquetes.
45
5. Jitter: la fluctuación que se puede producir en el retardo de ida y vuelta
medio.
MPLS y las redes de nueva generación permiten asignar QoS a un cliente o a un
tipo de tráfico una FEC a la que se asocie un LSP que discurra por enlaces con
bajo nivel de carga. (Lobo, 2005)
MPLS QoS fue diseñado para soportar a IP QoS por lo que no difieren en mucho
de los beneficios que provee el simple IP QoS, pues no modifica
fundamentalmente el modelo de calidad de servicio de IP. Pero hace importante el
uso de MPLS QoS, dado que a diferencia de IP, no es un protocolo que corre
entre los terminales (end to end). (Lobo, 2005)
Las redes de nueva generación se convertirán en futuro próximo a MPLS lo que
motiva para soportar QoS, integrando de esta manera los servicios. Tomando en
cuenta que la calidad de servicio tiene importancia entre equipos, lo cual se
adapta mejor a MPLS que a IP. (Lobo, 2005)
46
3
EMULACIÓN DE MPLS MEDIANTE UN EMULADOR DE REDES
DEFINIDAS POR SOFTWARE
En la siguiente sección se tiene como objetivo realizar la emulación de MPLS en
dos topologías sencillas SDN seleccionadas como prueba, que permita evidenciar
el funcionamiento de la red con el protocolo MPLS, para ello se dará una
conceptualización sobre simulación, emulación y se describirán diferentes
herramientas existentes para emular redes definidas por software.
3.1
HERRAMIENTAS DE SIMULACIÓN
DEFINIDAS POR SOFTWARE
Y
EMULACIÓN
DE
REDES
3.1.1 Simulación
La simulación es el desarrollo de un modelo lógico matemático de un sistema el
cual permite la imitación del proceso en un intervalo de tiempo de un modelo físico
(real), ya sea realizado manualmente o computacionalmente, donde se involucra
la historia artificial de un sistema y la observación de dicha historia mediante la
experimentación con las cuales se pueden inferir las características operacionales
de tal sistema. (Azarang M., 2006)
En la simulación existen dos parámetros fundamentales que son:

Desarrollo del modelo: hace referencia al modelo matemático lógico y sus
ecuaciones que serán una representación del sistema y la preparación de
un software.

Experimentación: En la experimentación se tomaran en cuenta las variables
de entrada del sistema para analizar el comportamiento de dicho sistema.
En el ámbito de la educación la simulación es una herramienta muy usada en
cuanto a la realización de laboratorios o prácticas se refiere, puesto que con la
simulación se podrá recrear el funcionamiento de muchos elementos usados en el
proceso de aprendizaje de una ciencia y a su vez proporciona a la entidad
educativa un ahorro económico al no tener que adquirir equipos reales los cuales
pueden ser muy costosos. (Azarang M., 2006)
47

Ventajas
o Una vez construido, el modelo puede ser modificado de manera
rápida con el fin de analizar diferentes políticas o escenarios.
o Generalmente es más barato mejorar el sistema vía simulación, que
hacerlo directamente en el sistema real.
o Es mucho más sencillo comprender y visualizar los métodos de
simulación que los métodos puramente analíticos.
o Los métodos analíticos se desarrollan casi siempre, para sistemas
relativamente sencillos donde suele hacerse un gran número de
suposiciones o simplificaciones, mientras que con los modelos de
simulación es posible analizar sistemas de mayor complejidad o con
mayor detalle.
o En algunos casos, la simulación es el único medio para lograr una
solución.

Desventajas
o Los modelos de simulación en una computadora son costosos y
requieren mucho tiempo para desarrollarse y validarse.
o Se requiere gran cantidad de corridas computacionales para
encontrar "soluciones óptimas", lo cual repercute en altos costos.
o Es difícil aceptar los modelos de simulación.
o Los modelos de simulación no dan soluciones óptimas.
o La solución de un modelo de simulación puede dar al analista un
falso sentido de seguridad.
3.1.2 Emulación
Un emulador es un software que permite ejecutar programas en un entorno
diferente al propio es decir consiste en tomar algo ya creado y adaptarlo para que
funcione o imite las funciones de otro sistema, un emulador tiene como fin el de
imitar lo más preciso al sistema real en muchas ocasiones superando el
desempeño del modelo original. (Beuran, 2012)
Emulación, como tal, no es un nuevo concepto en ciencias de la computación, y ni
siquiera en un sentido más amplio, ya que este enfoque ya está bien establecido
en varios dominios, como se señala en (Beuran, 2012).
48
A pesar de que la idea de la emulación de la red apareció hace casi 30 años, y
que la emulación de red, como tal, ha existido durante más de 10 años, todavía no
existe un acuerdo total sobre lo que la emulación de la red como debe ser
definida, y con frecuencia hay confusión con la técnica relacionada de simulación
de la red. (Beuran, 2012)
La mayoría de los investigadores parecen estar de acuerdo que la emulación
implica elementos reales utilizados junto con los componentes simulados. Sin
embargo, se requieren propiedades adicionales en algunas labores. Por ejemplo,
(Guruprasad, 2002) presenta "que se ejecuta en tiempo real" como una propiedad
definitoria de emuladores. (S. Guruprasad, 2005) Sin embargo, el trabajo más
reciente de Gokturk reconoce que el tiempo es más que otra parte de la realidad
que se puede simular en un experimento de emulación. (A stance on emulation
and testbeds, 2007)
3.1.3 NCTUns (EstiNet)
El NCTUns es una herramienta de alta fidelidad y simulador de red extensible y
emulador, capaz de simular diferentes protocolos utilizados en ambas redes IP
cableadas e inalámbricas. Su tecnología central se basa en la metodología de
volver a entrar en el kernel inventado por el Prof. SY Wang, cuando él estaba
persiguiendo su PhD. grado en la Universidad de Harvard. Debido a esta nueva
metodología, NCTUns proporciona muchas ventajas únicas que no se puede
conseguir fácilmente por simuladores de redes tradicionales. La herramienta de
simulación NCTUns se comercializa en la actualidad con el nombre EstiNet 7.0.
Esta versión implementa todas las mejores aplicaciones de NCTUns 6.0. Esta
herramienta es open-source y se plantea como uno de los mejores simuladores en
las comunidades Networking en cuanto a su alta fiabilidad.
Wang, Wang, Li, y Lau (2011) describen el alto potencial que se encuentra en la
herramienta, ya que utilizan la implementación de VANET y describen como la
herramienta permite, por medio de una interfaz gráfica, hacer un esquema de
simulación muy fácilmente. Por otro lado, Khan, Zaman, y Reddy (2008) indican
que el software de simulación NCTUns provee una interfaz de usuario integrada y
profesional; por todo ello, la herramienta es catalogada con un alto nivel de
interfaz gráfica. (NCTUns, 2013)
49
3.1.4 DieCast
Es emulador trabaja muy cercano al comportamiento de la red real y utiliza pocos
recursos físicos. Permite trabajar amplias redes que
incluyen miles de
dispositivos, ejecuta protocolos heterogéneos y configuraciones de software que
se distribuye a través de cientos de redes físicas. Diecast no se centra en la
ampliación de los recursos de hardware, como memoria principal y el disco, emula
SDN y fue desarrollado para el área académica. (Deepak Kumar, 2014)
3.1.5 ModelNet
Es un emulador escalable que proporciona la emulación de redes a gran escala. El
punto principal que hace a ModelNet diferente de otro emulador, es que se centra
en la emulación de topología de redes de gran tamaño. En ModelNet no es
necesario contar con recursos de maquina altos para emular la red. El ModelNet
incluye cinco fases: Create, Distill, Assign, Bind and run. La emulación en
ModelNet se basa en tiempo real, por lo tanto, cada paquete que se envía a través
de la red emulada lleva un intervalo de tiempo igual, con el mismo retardo y la
misma tasa de pérdida de paquetes como si se tratara de una red real, fue
desarrollado para el área académica. (Deepak Kumar, 2014)
3.1.6 Mininet
Mininet es un emulador de red que crea una red de hosts virtuales, switches,
Routers, y enlaces. Un anfitrión Mininet ejecuta software de red estándar de Linux,
y sus switches soportan OpenFlow para el enrutamiento altamente flexible y redes
definidas por software. Un anfitrión Mininet se comporta como una máquina real;
se puede iniciar ssh en ella y ejecutar programas arbitrarios (incluyendo cualquier
cosa que se instala en el sistema Linux subyacente.) (Mininet Team, 2015)
Los programas que se ejecuta pueden enviar paquetes a través de la interfaz
Ethernet, con una velocidad de enlace dada. Los paquetes se procesan por lo que
parece ser un interruptor Ethernet, Routers, o middlebox, con una cantidad dada
de cola. Cuando dos programas, como un cliente iperf y el servidor, se comunican
a través de Mininet, el rendimiento medido debe coincidir con el de dos (más lento)
máquinas nativas.
50
En resumen, hosts virtuales, conmutadores, enlaces, y los controladores de
Mininet son la reales, que sólo se crean utilizando software en lugar de hardware y
en su mayor parte su comportamiento es similar a los elementos de hardware
discretos. Por lo general, es posible crear una red Mininet que se asemeja a una
red de hardware, o una red de hardware que se asemeja a una red Mininet, y
ejecutar el mismo código binario y aplicaciones en cualquier plataforma.
3.2
HERRAMIENTA DE
EMULACIÓN
DESARROLLO DEL PROYECTO
SELECCIONADA
PARA
EL
Mininet fue la herramienta elegida para el desarrollo de nuestro trabajo puesto que
se ajustó a la necesidad de un emulador que soportara redes SDN, además
cuenta con una amplia flexibilidad, Mininet es un emulador para la extensión de
redes en los limitados recursos de un solo ordenador o de una máquina virtual.
Una de las características relevantes en la elección de MiniNet para este proyecto
es que este emulador permite correr el código sin modificar de manera interactiva
en el hardware virtual de un ordenador, proporcionando comodidad, veracidad,
facilidad de uso, rendimiento y precisión escalabilidad.
Mininet no tiene la necesidad de modelar hosts, conmutadores, enlaces y
Controladores SDN / OpenFlow. Permite la creación de topologías de gran tamaño
hasta la escala de miles de nodos y realizar pruebas en ellos con mucha facilidad.
Tiene herramientas muy simples de línea de comandos y API. MiniNet permite al
usuario crear fácilmente, personalizar, compartir y probar redes SDN. Figura 12.
MiniNet está disponible gratuitamente y es un software de código abierto que
emula dispositivos OpenFlow y controladores SDN lo que es una ventaja en el
desarrollo de un trabajo académico. MiniNet puede emular redes SDN, puede
ejecutar un controlador para experimentos. Permite emulando verdadero mundo
de escenarios de red de controladores, SDN está incluido con MiniNet en VM. Los
controladores predeterminados son buenos, pero para la implementación de los
conceptos de anticipo, POX se utiliza de controlador.
51
FIGURA 12. Mininet Testing Platform Controller,
2014, Emulating Real Networks in Mininet, pág. 1,
http://www.sbsstc.ac.in/icccs2014/Papers/Paper29.pdf
3.3
CONTROLADOR
PROYECTO
SELECCIONADO
PARA
EL
DESARROLLO
DEL
Saber elegir o seleccionar un controlador es muy importante en el diseño de una
red SDN tal como se explicó en el numeral 2.5, ya que no todos cumplen con los
mismos objetivos o están limitados a tareas muy específicas. Validando las
características más relevantes de los controladores existentes actualmente, nos
llevó a elegir el mejor controlador para el desarrollo de este proyecto, el
controlador seleccionado en este caso fue Floodlight el cual es un controlador
OpenFlow de clase empresarial con una comunidad de desarrolladores a nivel
mundial y con muy buen soporte para diseño de redes SDN.
52
3.3.1 Floodlight
Floodlight es un controlador OpenFlow desarrollado en Java. Aparece como
evolución del controlador Beacon (Erickson, The Beacon OpenFlow Controller, 2011),
por lo que igualmente comparten similar estructura. Java brinda soporte
multiplataforma y sencillez de programación. El usuario puede hacer uso de
herramientas típicas de Java, como son threads, temporizadores, sockets, etc.
Floodlight incluye la librería OpenFlowJ para trabajar con mensajes OpenFlow.
Esta librería es una implementación Java orientada a objetos de la especificación
de la versión 1.3 de OpenFlow. Los listeners se utilizan para notificar cuando los
conmutadores son añadidos o eliminados (IOFSwitchListener), y para recibir
distintos tipos de mensajes específicos OpenFlow (IOFMessageListener).
Además, Floodlight contiene aplicaciones básicas de referencia las cuales
constituyen el core. Esta API adicional es la que se muestra en la Figura 13. (Izard,
2015).
FIGURA 13. Pipeline del thread IOFMessageListener de Beacon,
Emulating Controlador Openflo w Beacon, pág. 3,
http://yuba.stanford.edu/~derickso/docs/hotsdn15 -erickson.pdf
Las aplicaciones básicas disponibles son:

Device Manager: muestra los dispositivos que aparecen en la red,
incluyendo sus direcciones (Ethernet e IP), fecha de último uso, el
conmutador y el puerto que han sido vistos por última vez. El Device
Manager provee una interfaz (IDeviceManager) para buscar dispositivos
conocidos y la habilidad de registrarlos para recibir eventos cuando nuevos
dispositivos sean incluidos, actualizados o eliminados. (Izard, 2015).

Topology: descubre los enlaces entre los conmutadores OpenFlow. Su
interfaz (ITopology) permite la recuperación de una lista de los enlaces y el
registro de eventos para ser notificados cuando los enlaces son incluidos o
eliminados. (Izard, 2015).
53


Routing: provee enrutamiento de la capa L2 con el camino más corto entre
dos dispositivos de la red. Esta aplicación exporta la interfaz
IRoutingEngine, permitiendo implementaciones con diferentes lógicas de
encaminamiento. La implementación incluida usa todos los métodos de
computación de camino más corto entre dos pares. Esta aplicación
depende tanto de la Topology como del Device Manager. (Izard, 2015).
Web: provee una Web User Interface (UI) para Floodlight. La aplicación
web provee la interfaz IWebManageable, permitiendo a los desarrolladores
añadir sus propios elementos UI. (Izard, 2015).
Por otro lado, Floodlight contiene funciones adicionales como se muestra en la
Figura 14. Se presenta un Java API para el desarrollo de aplicaciones que residen
dentro del controlador y requieren alta eficiencia de procesamiento (por ejemplo,
procesamiento de paquetes tipo PACKET_IN). Adicionalmente, el REST API (por
las siglas de Representational State Transfer) está disponible para configuración
remota (puerto 8080 por defecto) de los diferentes servicios del controlador. De
esta manera, los usuarios pueden crear aplicaciones que invoquen servicios del
controlador mediante peticiones web (HTTP REST). (Izard, 2015).
FIGURA 14. API de Floodlight, The cont roller,
2015, https://floodlight.atlassian.net/wiki/display/floodlightcontroller/The+Controller
54
3.4
VENTAJAS DEL PROCESO DE CONMUTACIÓN Y APILAMIENTO DE
ETIQUETAS DE MPLS
Dentro de las características más importantes que tiene MPLS es el apilamiento
de etiquetas que maneja, un paquete etiquetado puede contener varias etiquetas
organizadas en modo: Ultimo en Entrar Primero en Salir (LIFO). El procesado de
etiquetas en MPLS siempre se basa en la etiqueta superior, por lo que en
cualquier LSR se puede añadir (push) o remover (pop) una etiqueta. La ventaja
principal del apilamiento de etiquetas es que permite añadir rutas parciales dentro
de la red a un LSP existente, creando así túneles. (E. Rosen, 2001).
Al principio de cada túnel los LSR asignan la misma etiqueta a los paquetes que
van entrando mediante la operación push. Al final de cada túnel pasa lo inverso, el
LSR de salida remueve la etiqueta superior (añadida a la entrada del túnel) para
mostrar la etiqueta original con el fin de que siga su trayectoria original. Esta
operación se puede realizar indefinidamente formando así una red de túneles
dentro de cada LSP original. (E. Rosen, 2001).
MPLS permite aumentar la velocidad de envió ya que cuando los paquetes se
envían a los Routers no tienen que leer la cabecera de los paquetes completa
para leer la dirección destino de los paquetes, sino que leen la cabecera MPLS y
la etiqueta para enviar al siguiente salto y el enrutamiento no está basado en la
dirección destino sino en el intercambio de etiquetas, esto hace que la velocidad
de envió incremente. (BELLESSA, 2015).
El apilamiento de etiquetas permite crear túneles y por tanto reducir la utilización
de etiquetas, ya que uno de los problemas de MPLS es que al tener el campo de
etiqueta de 20 bits solo puede enviar 2 a la 20 posibles comunicaciones, esto lo
limita para redes grandes, además las etiquetas deben ser únicas para las
comunicaciones cuando se asignan, no pueden haber dos comunicaciones
diferentes con la misma etiqueta, por eso es necesario utilizar menos etiquetas,
esto se resuelve con los túneles. (BELLESSA, 2015).
55
3.5
ANTECEDENTES DE EMULACIÓN Y/O SIMULACIÓN DE MPLS CON
REDES DEFINIDAS POR SOFTWARE
En el proyecto de implementación de MPLS con etiquetas con redes definidas por
software. (BELLESSA, 2015) Nos habla que el esquema de conmutación basada
en etiquetas, tales como MPLS, ha sido conocido por ser un mecanismo eficaz
para superar muchos desafíos en redes definidas por software, mientras que un
desarrollo mucho más reciente, se considera que tienen el potencial de
revolucionar la creación de redes. Sin embargo, algunos investigadores de redes,
incluso dentro de la comunidad SDN, creen que las redes SDN para poder
prosperar, debe adoptar un modelo más estructurado con un borde inteligente y
una etiqueta rápida simple de conmutación central. Este es un caso de uso
excelente para MPLS en OpenFlow. Nos explica (BELLESSA, 2015) Pero, aunque
ha habido otras implementaciones de MPLS en OpenFlow, abandonan el
OpenFlow al requerir hardware sofisticado. Este sistema discute nuestra
implementación híbrida OpenFlow de MPLS que sólo requiere de hardware de los
productos básicos en la red central. Logramos esto compilando las etiquetas
MPLS que habrían sido encontradas a lo largo de un camino a través de la red en
una sola etiqueta, que se almacena en el campo de dirección MAC de destino de
los paquetes. (BELLESSA, 2015).
En esta tesis, (BELLESSA, 2015) nos presenta una implementación híbrida de
OpenFlow con MPLS, construida con una técnica sencilla de mapeo de etiquetas
en capa 2. Debido a que las etiquetas no requieren ninguna modificación en la
estructura de paquetes, se puede implementar utilizando sólo los interruptores de
la red central.
La conclusión de esta tesis, fue que se llevó a cabo la implementación de la
funcionalidad MPLS en un controlador de red OpenFlow, capaz de correr en un
hardware simple sin tanto recurso. (BELLESSA, 2015) Esto lo logramos mediante
la asignación de las etiquetas MPLS que se impulsaron en paquetes a una sola
etiqueta estática que se almacena en el destino campo de dirección MAC del
paquete y permanece inalterado, ya que el paquete viaja entre los bordes de la
red.
Los resultados del proyecto de implementación de MPLS, mostrado en
(BELLESSA, 2015) señala que evaluaciones son muy prometedores, demostrando
que somos capaces de avanzar de manera eficiente en él envió de grandes
cantidades de tráfico a través de la red principal con un único hardware simple, en
términos de funcionalidad disponible. (BELLESSA, 2015).
56
Según (Ali Reza Sharafat, 2011) nos muestra la Ingeniería de Tráfico (MPLS-TE) y
Redes Privadas Virtuales basada en (MPLS VPN) utilizando OpenFlow y NOX. La
manifestación es el resultado de un experimento de ingeniería que responde a las
siguientes preguntas:
¿Es difícil de implementar un plano de control complejo en la parte superior de un
controlador de red tales como NOX?
¿El punto de vista global en NOX hace la aplicación más fácil que el método
tradicional de su aplicación en cada Switch, incrustado en el plano de datos?
Implementaron cada característica importante de MPLS-TE y MPLSVPN en tan
sólo 2.000 líneas de código, en comparación con líneas mucho más grandes de
código en el enfoque más tradicional, como Quagga-MPLS. Debido a que NOX
mantiene un mapa coherente de topología actualizada, las características del
plano de control MPLS son bastante simples de implementar. Y su simplicidad
hace que sea fácil de extender: Hemos añadido fácilmente varias características
nuevas (Ali Reza Sharafat, 2011); algo que un operador de red que podía hacer
para personalizar su red para satisfacer las necesidades de sus clientes. La demo
consta de dos partes: los servicios MPLS-TE y después MPLS VPN impulsado por
una GUI.
James Kempf (James Kempf, 2011) nos habla que la conmutación de etiquetas por
multiprotocolo (MPLS) es un protocolo ampliamente utilizado en redes de
operadores comerciales para reenviar paquetes acompañado por etiquetas de
enlace específico en la cabecera del paquete de salida enlaces en lugar mediante
el cotejo prefijo más largo del estándar IP. Sin embargo, en las redes existentes,
MPLS es implementado por completo en IP Routers, ya que los protocolos del
plano de control MPLS como LDP utilizan el enrutamiento IP para configurar la
etiqueta en el cambió de caminos, a pesar de que el plano de datos MPLS no
requiere enrutamiento IP. OpenFlow 1.0 es una interfaz para el control de una ruta
o una caja de conmutación insertando especificaciones de flujo en tabla de flujo de
la caja. Mientras OpenFlow 1.0 no soporta MPLS1, basado en etiqueta MPLS el
reenvío parece conceptualmente un buen partido con OpenFlow basado en el flujo
del paradigma de enrutamiento. A esta nota se describe el diseño y la
implementación de una extensión experimental de OpenFlow 1.0 para apoyar
MPLS. La extensión permite que un interruptor de OpenFlow sin capacidad de
enrutamiento IP sirva para reenviar MPLS en el plano de datos. (James Kempf,
2011).
(James Kempf, 2011) También describe la aplicación de una fuente abierta de
prototipo Etiqueta MPLS conmutada de router, basado en la plataforma de
57
hardware NetFPGA, utilizando OpenFlow MPLS. El prototipo es capaz del reenvío
de paquetes del plano de datos a velocidad de expedición de línea sin reenvío IP,
aunque el reenvío IP aún se utiliza en el plano control. Ofrecemos algunas
medidas de rendimiento que comparen el prototipo con los Routers de software.
Las mediciones indican que el prototipo es un instrumento adecuado para lograr la
velocidad de expedición de línea en bancos de pruebas y otras redes
experimentales donde la flexibilidad es un atributo clave, como un sustituto para
los Routers de software.
El Departamento de Ciencias de la Computación e Ingeniería, del Instituto Indio de
Tecnología, dice que: Los proveedores de servicios están experimentando un
desafío que es causado por el crecimiento explosivo de la demanda de
conexiones de alta velocidad a través de redes metropolitanas, regionales y
centrales. (Vishal Negi, 2012) Los operadores están bajo presión para aumentar la
capacidad de sus redes para cumplir con estos requisitos cada vez mayores. Para
mejorar la agilidad del servicio y eficiencia de la red y reducir los costos a lo largo
de toda su infraestructura, los proveedores están evaluando maneras de utilizar el
transporte de paquetes en todas partes. Carrier Ethernet es un nuevo mecanismo
que se propone consolidar la red de transporte óptico de paquetes. Multiprotocol
Label Switching-Transporte el Perfil (MPLS-TP) - una variante del Carrier Ethernet
ofrece una adición potencialmente importante dentro del conjunto de herramientas
de transporte de paquetes. Operaciones, administración y mantenimiento (OAM) la
funcionalidad es indispensable para esta nueva norma. Esto ayuda a la creación
de servicios y el aseguramiento proporcionando así una extensión de las
capacidades de transporte de paquetes dentro de las arquitecturas emergentes de
infraestructura de múltiples capas. (Vishal Negi, 2012).
En 2014 IEEE Conferencia Internacional sobre Ingeniería de Nube, nos muestra
que las Redes definidas por software se ha convertido en una solución
prometedora para apoyar las funciones de las red dinámicas y aplicaciones
inteligentes a través del desacoplamiento del plano de control de la transmisión de
plano de datos. OpenFlow es la primera interfaz de gestión abierta estandarizada
de la arquitectura SDN. Pero no es realista simplemente intercambiando las redes
convencionales de nueva infraestructura. ¿Cómo integrar OpenFlow con las redes
existentes? sigue siendo un serio desafío. Xiaogang Tu y su equipo nos proponen
un mecanismo de túnel de empalme para red heterogénea con MPLS y Routers
OpenFlow. Sugirieron dos mecanismos fundamentales: primero, resumen de los
dispositivos de red subyacentes en nodos uniformados con el fin de proteger los
detalles de varios equipos; segundo, despojar la manipulación de la tabla de flujo y
la tabla de etiqueta del controlador y realizar en un módulo independiente. Este
nuevo paradigma se ha desarrollado en el sistema Linux y pruebas se han llevado
a cabo en las redes de experimentación. (Xiaogang Tu, 2014).
58
3.6
DESARROLLO DE LA EMULACION DE MPLS
EMULADOR DE REDES DEFINIDAS POR SOFTWARE
MEDIANTE
UN
La siguiente sección tiene como objetivo realizar la emulación de MPLS en dos
topologías de prueba distintas topologías SDN seleccionadas como prueba, que
permita evidenciar el funcionamiento de la red con el protocolo MPLS y sin el
protocolo MPLS, para ello se utilizara la herramienta Mininet la cual es un
emulador de redes SDN, sumado al controlador Floodlight y el protocolo
OpenFlow 1.3 ambos por tener soporte para el protocolo MPLS como se observó
en capítulos anteriores. Se proporciona una explicación de cada una de las
instrucciones que permiten la programación de una topología de red en Python
(lenguaje en el que trabaja Mininet), así como la secuencia requerida para
habilitar los protocolos y funcionalidades requeridas para cada una de las pruebas.
3.6.1 Arquitectura de la topología de prueba 1 sin MPLS
En la Figura 15, se muestra el diseño de la topología de red a emular para esta
primera prueba, se puede ver claramente una estructura con dos (2) switches y
cuatro (4) host interconectados, a su vez los switches están conectados a un
controlador nativo de Mininet (Erickson, The Beacon OpenFlow Controller, 2011), al
llegar un paquete a los switches estos los trasmiten a los dispositivos finales, esta
topología inicial se diseña para conocer el funcionamiento de la red y su estructura
básica.
FIGURA 15. Topología de red prueba 1 .
Imagen diseñada en miniedit de Mininet y Paint, “Elaboración propia”
59
3.6.2 Topología de la emulación prueba 1 diseñada en Python
El código para esta topología de red esta implementado en Python, en este caso
se utilizara un editor de Python el cual ya viene incluido con el sistema operativo
Ubuntu 14.04 el cual se utiliza en este proyecto, gedit es el editor de texto libre
oficial del escritorio GNOME. Este editor se caracteriza principalmente por su
facilidad de uso, además permite trabajar programación en Python esto es algo
muy importante ya que las SDN se desarrollan en este código, en Mininet se
puede exportar un API de Python para crear redes personalizadas con pocas
líneas de código, en la Figura 16A y 17B, podemos observar el código utilizado
para esta topología, primero se diseñó una topología sin la utilización del protocolo
MPLS para realizar una prueba de conectividad inicial.
FIGURA 16-A, Código Python Topología de red prueba 1.
“Elaboración propia”
60
FIGURA 17-B, Código Python Topología de red prueba 1.
“Elaboración propia”
En el código presentado se muestra lo siguiente: se tienen cuatro (4) host y dos 2
switches. Los host están repartidos por cada Switch en la red, el Switch 1 (s1)
tiene conectado los host (h1, h2) y el Switch 2 (s2) tiene conectado los host (h3,
h4). Lo primero en el código es importar las librerías de Mininet para usar el API,
seguidamente definimos una topología, es decir, instanciamos un objeto “Mininet”
como se muestra en el código. Luego creamos los nodos, todos los host y los
switches, después agregamos las relaciones entre ellos y finalmente inicializamos
todos los dispositivos. Al terminar de programar toda la topología de red esta debe
ser guardada en la carpeta custom de Mininet, donde se llamará posteriormente a
la topología para trabajar con ella. (Mininet Team, 2015).
Al ejecutar el archivo prueba1.py en Mininet, se crea en la máquina virtual las
interfaces virtuales y al mismo tiempo se compila el código de la emulación que
hemos desarrollado, en la Figura 18 se muestra como se realiza el llamado de la
topología con el comando de Mininet, se puede apreciar cómo se añaden y activan
todos los dispositivos incluyendo el controlador por defecto de Mininet. (MininetGitHub, 2015).
61
FIGURA 18. Llamado en Mininet del código Python.
Captura de pantalla terminal Mininet
“Elaboración propia”
De esta manera podemos interactuar con la red, utilizando los comandos que
Mininet posee para observar el comportamiento de la red.
3.6.3 Pruebas de conectividad con los host y Switch
Mininet posee un variedad de comandos los cuales permiten interactuar fácilmente
con la topología de red y verificar su comportamiento ya que MiniNet incluye una
interfaz de línea de comandos (CLI) que puede ser llamada en una red, y ofrece
una variedad de comandos útiles, así como la capacidad de mostrar ventanas
xterm y ejecutar comandos en nodos individuales en la red. (Mininet-Wiki, 2015).
62
FIGURA 19. Verificación de conectividad de red
Captura de pantalla terminal Mininet , “Elaboración propia”
En la Figura 19, vemos la utilización de la línea de comandos (CLI), en este caso
utilizando el comando pingall para verificar la conectividad de la red. Como se
observa hubo respuesta entre todos los dispositivos sin pérdida de paquetes, 12
paquetes enviados por la red 12 paquetes recibidos.
FIGURA 20. Verificación de conectividad entre h1 y h4.
Captura de pantalla terminal Mininet , “Elaboración propia”
En la Figura 20, se observa la utilización de otro comando de Mininet, en este
caso utilizamos ping –c este permite hacer ping entre los dispositivos de la red, la
manera de uso en este ejemplo seria: h1 ping-c 5 h4. El host 1 está haciendo ping
al host 4, le está enviando cinco (5) mensajes, la cantidad de mensajes puede ser
63
configurada indicando el número de mensajes después del comando ping –c igual
que la prueba anterior este tiene respuesta sin pérdida de paquetes.
FIGURA 21. Verificación de los nodos de la red.
Captura de pantalla terminal Mininet , “Elaboración propia”
Otros comando muy utilizados en Mininet son los siguientes: Para verificar los
nodos de la red podemos utilizar el comando nodes tal como se muestra en la
Figura 21, nos indica cuales nodos están activos en la topología actual, si lo que
necesitamos es ver los enlaces que tiene la red, utilizamos el comando net tal
como se muestra en la Figura 22, podemos observar cómo están conectados los
host a los switches y los puestos de enlace.
FIGURA 22. Enlaces que tiene la red topología de red 1 .
Captura de pantalla terminal Mininet , “Elaboración propia”
Por último, veremos otro comando muy útil en Mininet, este es dump este
comando permite ver la información de todos los nodos como se aprecia en la
Figura 23.
64
FIGURA 23. Verificar la información de los nodos de la red 1.
Captura de pantalla terminal Mininet , “Elaboración propia”
3.7
FUNCIONAMIENTO DE MPLS EN TOPOLOGÍA DE PRUEBA 1
Para ver el funcionamiento de la arquitectura MPLS, inicialmente se seleccionó
una topología de red sencilla en la cual se pueda ver el etiquetado MPLS en cada
Switch, el acceso a esta red es a través de los switches que cumplen la función
de un router programándolos manualmente para que puedan realizar el etiquetado
de paquetes que pasan por estos, cada vez que un paquete ingresa a un Switch
añade la etiqueta MPLS y en la salida del paquete en los extremos se quita esta y
envía el paquete a su destino.
Cuando un paquete llega a un Switch de borde que no tiene definida una regla de
flujo el Switch solicita instrucciones del controlador. El controlador determinara
entonces el camino para este paquete y de todos los paquetes que lleguen de cuál
será su ruta, pero en la arquitectura de red utilizada, estos flujos de datos son
programados manualmente desde un terminal xterm llamado por el comando de
Mininet para tener un control sobre el enrutamiento.
La topología vista en el punto 3.6.1, se creó inicialmente para verificar su
funcionamiento sin etiquetado MPLS, en esta sección veremos esta misma
topología activando el controlador y protocolos necesarios para el uso de MPLS en
la red, en la Figura 24, podemos observar la topología a utilizar en esta prueba,
tenemos un controlador que funciona con Floodlight y este a su vez conectado a
dos switches que utilizan OpenFlow 1.3 y en los extremos tenemos dos host por
cada Switch.
65
FIGURA 24. Topología de prueba 1 configurada con Floodlight y OpenFlo w 1.3.
Imagen diseñada en miniedit de Mininet y Paint, “Elaboración propia”
3.7.1 Importancia del controlador Floodlight para la topología de prueba 1
Floodlight es un controlador de redes SDN que constantemente se actualiza para
dar mayor soporte a estas redes y es apoyado por la comunidad de
desarrolladores más grande del mundo para los controladores SDN. Fue diseñado
en 2012 para ser de fácil configuración y sin altos requisitos del sistema. Por
soportar una amplia gama de switches virtuales basados en hipervisor como Open
vSwitch (OVS) y ofsoftswitch, lo hace ideal para trabajar con nuestro proyecto,
además Floodlight actualmente está en su versión 1.1 y tiene soporte completo
para el protocolo OpenFlow 1.0 y 1.3 el cual es utilizado en las pruebas ya que
MPLS funciona sobre el protocolo OpenFlow 1.3. (Izard, 2015).
66
3.7.1.1 Activación del controlador Floodlight en Mininet
Cuando se utiliza el controlador Floodlight debemos activarlo antes de realizar el
llamado a la topología, ya que esto lleva a que el controlador se posicione en un
estado de escucha a la espera de paquetes a través del puerto 6653 como se
observa en la Figura 25, así como también activa el protocolo OpenFlow 1.3 y
establece el envío de los paquetes LLDP (Protocolo de descubrimiento de capa de
enlace) periódicos para descubrir los dispositivos que eventualmente se conecten,
además se puede ver la conexión del controlador con OVS, como se muestra en la
Figura 26, desde un terminal de Ubuntu 14.04 con el comando $ cd floodlight (se
ingresa a la carpeta de Floodlight) y para su activación utilizamos el comando $
java -jar target/floodlight.jar. Por defecto, Floodlight tiene activado los módulos
LearningSwitch y Forwading que le permiten al Switch reenviar los paquetes entre
origen y destino. (Izard, 2015).
FIGURA 25. Floodlight en modo escucha puerto 6653.
Captura de pantalla terminal Mininet , “Elaboración propia”
67
FIGURA 26. Mensajes generados por Floodlight.
Captura de pantalla terminal Mininet , “Elaboración propia”
68
3.7.2 Importancia de OpenFlow 1.3 para la topología de prueba 1
OpenFlow es el protocolo encargado de la comunicación entre el plano de control
y de datos, maneja el concepto de flujos que proporciona el camino a los paquetes
a través de los switches de la red; este camino está determinado por el conjunto
estandarizado de instrucciones o reglas en el software del controlador SDN. En
caso de no existir una regla para enrutar un paquete de datos, el dispositivo de red
consulta al controlador para obtener una que se aplique a dicho tráfico, dando
como resultado una modificación de las tablas de control de los dispositivos de
red. El controlador maneja el protocolo OpenFlow y es mediante éste con el cual
se comunica con los otros equipos. El protocolo OpenFlow indica al tráfico como
fluir por la red; Las reglas son definidas para cada flujo, con lo que se mantiene un
control más exhaustivo de la red. (CPqD, 2015).
Los siguientes componentes están disponibles en OpenFlow 1.3:





Ofdatapath: implementación de Switch
Ofprotocol: canal seguro para conectar el Switch al controlador
Oflib: una biblioteca para la conversión a formato 1.3
Dpctl: una herramienta para configurar el Switch de la consola
Soporte: MPLS Labels
Para la captura de tráfico se utiliza la herramienta Wireshark la cual se llama
mediante el comando $ sudo wireshark en Mininet el cual se activa, en la Figura
27 se observa la captura de tráfico donde OpenFlow 1.3 se encuentra activo; y
que desde el controlador funciona sin problema.
69
FIGURA 27. Captura con Wireshark del protocolo OpenFlow 1.3.
“Elaboración propia”
3.7.3 Topología de prueba 1 con MPLS diseñada en Python
En el punto 3.6.2, se observó cómo crear una topología de red en Python, en este
punto utilizaremos el mismo código de la topología de red prueba 1, realizando
una adición de los protocolos a utilizar y realizando el llamado al controlador, tal
como se observa en la Figura 28, como se explicó anteriormente esta topología
fue programada en Python, lo cual nos permite modificar fácilmente el código para
la siguiente prueba.
70
FIGURA 28. Código Python de la topología de red prueba 1 para utilizar MPLS.
“Elaboración propia”
En el código que se muestra vemos lo siguiente: se tienen cuatro (4) host y dos 2
switches. Los host están repartidos por cada Switch en la red, el Switch 1 (s1)
tiene conectado los host (h1, h2) y el Switch 2 (s2) tiene conectado los host (h3,
h4). Lo primero en el código es importar las librerías de Mininet para usar el API,
seguidamente definimos una topología, es decir, instanciamos un objeto “Mininet”
como se muestra en el código. Luego creamos los nodos, todos los host, al crear
los switches se añade el protocolo a utilizar en este caso OpenFlow 1.3 y al crear
el controlador se le añade la IP donde estará activo para este ejemplo la IP
127.0.0.1 y la puerta de enlace, después agregamos las relaciones entre ellos y
71
finalmente inicializamos todos los dispositivos. Al terminar de programar toda la
topología de red esta debe ser guardada en la carpeta custom de Mininet, donde
se llamará posteriormente a la topología para trabajar con ella. (Mininet-Wiki,
2015).
Al ejecutar el archivo topoprueba1.py en Mininet, se crea en la máquina virtual las
interfaces virtuales y al mismo tiempo se compila el código de la emulación que
hemos desarrollado, en la Figura 29 se muestra como se realiza el llamado de la
topología con el comando de Mininet, aquí se debe también llamar al controlador
remoto previamente activado y añadir el puerto de escucha, el Switch a utilizar y
los protocolos que se emplearan, en este caso se llama a OpenFlow 1.3 y MPLS
con esto nos aseguramos que se activen para realizar la prueba, se puede
apreciar cómo se añaden y activan todos los dispositivos. (Mininet-GitHub, 2015).
FIGURA 29. Llamado en Mininet del código Python de la topología de prueba 1 MPLS.
Captura de pantalla terminal Mininet , “Elaboración propia”
72
3.7.4 Asignación manual de flujo y etiquetado MPLS
En el escenario presentado de la topología de prueba 1, se realiza manualmente
la asignación del flujo de datos, para ello se llama un xterm desde Mininet con el
comando $ xterm s1 para añadir desde el Switch 1 el comportamiento del flujo y
etiquetado MPLS tal como se muestra en la Figura 30.
FIGURA 30. Asignación manual de Flujo MPLS en los Switches.
Captura de pantalla xterm , “Elaboración propia”

El comando # ovs-vsctl set bridge s1 protocols=[“OpenFlow13”], nos
permite verificar que el protocolo OpenFlow 1.3 este activo y funcione en el
Switch, además permite que el bridge esté funcionando correctamente con
el protocolo.
73

El comando # set-fail-mode bridge standalone permite que si el controlador
falla, el flujo de información continúe en cuyo caso OVS se encargará de
enviar los paquetes.

El comando # ovs-vsctl set bridge s1 datapath_type=netdev crear un puente
entre los switches, como se puede observar en la Figura 30. (Pica8 Inc.,
2015)
ovs-ofctl: es una herramienta de línea de comandos para la supervisión y
administración de switches OpenFlow. También puede mostrar el estado actual de
un interruptor de OpenFlow, incluyendo características, configuración y entradas
de la tabla. Se puede trabajar con cualquier interruptor de OpenFlow, no sólo
Open vSwitch.
Add-flow: es un comando que permite añadir flujo dentro de un switch
Para realizar el etiquetado MPLS del flujo que pasa por los switches utilizaremos
los siguientes comandos:
ovs-ofctl add-flow <bridge>,in_port=<port>,actions=push_mpls:
<ethertype>,set_field:<value>-\>mpls_label,output:<port>
Con la siguiente línea de código añadimos la etiqueta MPLS al flujo en el Switch 1
puerto entrante 1 al puerto de salida 3:
ovs-ofctl –O OpenFlow13 add-flow s1 in_port=1,ip,actions=push_mpls:0x8847,
set_field:11-\>mpls_label,output:3
Para quitar la etiqueta MPLS del flujo que pasa por los switches al host destino
utilizaremos los siguientes comandos:
ovs-ofctl add-flow <bridge> in_port=<port>, dl_type=<ethertype>,mpls_label=
<label>actions=pop_mpls:<ethertype>,output:<port>
Con la siguiente línea de código quitamos la etiqueta MPLS al flujo en el Switch 2
puerto entrante 3 al puerto de salida 1:
ovs-ofctl –O OpenFlow13 add-flow s2 in_port=3,dl_type=0x8847,mpls_label=11,
actions=pop_mpls=0x0800,output:1
74
Para verificar las interfaces si se asoció al bridge virtual (s1) se comprueba la
creación del bridge s1 con sus respectivos puertos donde deben estar incluidas las
interfaces respectivas, como se muestra en la Figura 31, para ello se emplea el
comando # ovs-vsctl show se observa a Open vSwitch con la ruta hacia el
controlador IP 127.0.0.1 puerto 6653. (Pica8 Inc., 2015).
FIGURA 31. Resultados de ovs -vsctl show.
Captura de pantalla xterm , “Elaboración propia”
75
En la Figura 32, se puede apreciar el etiquetado MPLS que se le da a cada
paquete que pasa por el Switch 1, para este caso el host 1 envía un paquete, al
llegar al Switch 1 este le asigna la etiqueta 11 y lo envía al siguiente salto el cual
es el Switch 2, cuando este llega el Switch 2 quita la etiqueta y envía el paquete
sin MPLS al host 3 destino.
Para este ejemplo se realizó un ping de host 1 a host 3, la repuesta al ping de host
3 fue el siguiente: host 3 envía un paquete, cuando llega al Switch 2 este le asigna
la etiqueta 33 y lo envía al siguiente salto el cual es el Switch 1 este quita la
etiqueta y envía el paquete sin MPLS al host 1.
FIGURA 32. Envío de paquetes por la red MPLS h1 – h3.
Imagen diseñada en miniedit de Mininet y Paint , “Elaboración propia”
En la siguiente Figura 33, podemos observar como es el paso de un paquete y su
etiquetado en la misma topología de prueba 1, para este caso el host 2 envía un
paquete, al llegar al Switch 1 este le asigna la etiqueta 22 y lo envía al siguiente
salto el cual es el Switch 2, cuando este llega el Switch 2 quita la etiqueta y envía
el paquete sin MPLS al host 4 destino; cuando este da respuesta el host 4 envía
un paquete, cuando llega al Switch 2 este le asigna la etiqueta 44 y lo envía al
siguiente salto el cual es el Switch 1 este quita la etiqueta y envía el paquete sin
MPLS al host 2.
76
FIGURA 33. Envío de paquetes por la red MPLS h2 – h4.
Imagen diseñada en miniedit de Mininet y Paint , “Elaboración propia”
En la siguiente tabla 2, se puede observar la asignación de etiquetas en los
switches y la llegada a cada interfaz, también la acción que el Switch realiza al
paquete.
Tabla 2. Asignación de etiquetas en los switches.
La tabla presentada permite ver de una forma más ordenas el flujo que pasa por la red,
programado en el numeral 3.7.4. Elaboración propia
77
3.7.4.1 Captura de tráfico en Wireshark topología de prueba 1
Como se vio en el numeral 3.7.2 se utiliza la herramienta Wireshark para ver el
tráfico de la red, para este ejemplo lo activaremos para verificar el comportamiento
de MPLS en la topología de prueba 1.
En la figura 34 y 35, se observa como es el etiquetado MPLS de un paquete al
pasar por un Switch, como se explicó anteriormente se envía un ping entre host 1
host 3.
FIGURA 34. Captura de tráfico con protocolo MPLS y Wireshark host 1 – host 3.
“Elaboración propia”
78
FIGURA 35. Captura de trafico Wireshark entre host 3 – host 1.
“Elaboración propia”
3.7.4.2 Verificación del flujo de datos con Floodlight
Floodlight tiene una interfaz web sencilla incorporada. La cual permite ver qué
nodos están conectados al Switch y que reglas se encuentran activas en los
mismos. Para acceder a esto abrimos el navegador web e ingresamos la URL de
Floodlight http://localhost:8080/ui/index.html, La interfaz gráfica de usuario tiene
una herramienta en la cual se muestra la topología actual como se observa en la
Figura 36, en la parte superior se puede ver que mostrará los switches y los hosts,
además se puede percibir el tráfico que se envía a través de la red, en la Figura
37 se puede ver que la versión OpenFlow que se está utilizando es la 1.3 en este
caso del Switch 1. Floodlight nos permite tener una mejor idea sobre cómo se
transmite el tráfico en la realidad, en la Figura 38 se puede observar la ventana
principal de Floodlight web.
79
FIGURA 36. Topología actual de red vista desde Floodlight Web.
Captura de pantalla del navegador web, “Elaboración propia”
FIGURA 37. Floodlight web versión de OpenFlow 1.3 utilizada en Switch 1.
Captura de pantalla del navegador web , “Elaboración propia”
80
FIGURA 38. Página principal de Floodlight.
Captura de pantalla del navegador web , “Elaboración propia”
3.7.4.3 Verificación de MPLS en Floodlight web
Como se observó en el numeral 3.7.4.1 con respecto a la captura de tráfico a
través de Wireshark, Floodlight también permite ver ese flujo de paquetes y el
etiquetado MPLS, en la Figura 39 se aprecia que en este caso en el Switch 1 se
puede ver la acción que se le aplicó al paquete al pasar por la puerta 1, donde al
llegar con el protocolo IP al Switch 1 este le agrega la etiqueta 11 para enviarlo por
la puerta de salida 3. Aquí se puedes observar todo el flujo de la red que pasa por
el Switch 1 de extremo a extremo.
También en la Figura 40, se observa el etiquetado MPLS del paquete enviado del
host 3 al host 1, donde se le asigna la etiqueta 33.
81
FIGURA 39. Verificación de Floodlight web en la asignación de etiqueta MPLS Switch 1.
Captura de pantalla del navegador web , “Elaboración propia”
FIGURA 40. Verificación de Floodlight web en la asignación de etiqueta MPLS Switch 2.
Captura de pantalla del navegador web , “Elaboración propia”
82
3.8
ARQUITECTURA DE LA TOPOLOGIA DE PRUEBA 2 SIN MPLS
En la Figura 41, se muestra el diseño de la topología de red a emular para esta
segunda prueba, se puede ver claramente una estructura con tres (3) switches y
doce (12) host interconectados, a su vez los switches están conectados a un
controlador nativo de Mininet (Erickson, The Beacon OpenFlow Controller, 2011), al
llegar un paquete a los switches estos los trasmiten a los dispositivos finales, esta
topología se diseña para conocer el funcionamiento de la red y su estructura
básica.
FIGURA 41. Topología de red prueba 2.
Imagen diseñada en miniedit de Mininet y Paint, “Elaboración propia”
3.8.1 Topología de la emulación prueba 2 diseñada en Python
El código para esta topología de red esta implementado en Python, como se
evidencio en el numeral 3.6.2, en la Figura 42-A, 43-B y 44-C, podemos observar
el código utilizado para esta topología, primero se diseñó una topología sin la
utilización del protocolo MPLS para realizar una prueba de conectividad inicial.
83
FIGURA 42-A. Topología en Python prueba 2 sin MPLS.
“Elaboración propia”
FIGURA 43-B. Topología en Python prueba 2 sin MPLS.
“Elaboración propia”
84
FIGURA 44-C. Topología en Python prueba 2 sin MPLS.
“Elaboración propia”
En el código presentado se muestra lo siguiente: se tienen doce (12) host y tres 3
switches. Los host están repartidos por cada Switch en la red, el Switch 10 (s10)
tiene conectado los host (h1, h2, h3, h4), el Switch 20 (s20) tiene conectado los
host (h12, h13, h14, h15) y el Switch 30 (s30) tiene conectado los host (h24, h25,
h26, h27). Lo primero en el código es importar las librerías de Mininet para usar el
API, seguidamente definimos una topología, es decir, instanciamos un objeto
“Mininet” como se muestra en el código. Luego creamos los nodos, todos los host
y los switches, después agregamos las relaciones entre ellos y finalmente
inicializamos todos los dispositivos. Al terminar de programar toda la topología de
red esta debe ser guardada en la carpeta custom de Mininet, donde se llamará
posteriormente a la topología para trabajar con ella. (Mininet-Wiki, 2015)
Al ejecutar el archivo topoh12h3s.py en Mininet, se crea en la máquina virtual las
interfaces virtuales y al mismo tiempo se compila el código de la emulación que
hemos desarrollado, en la Figura 45 se muestra como se realiza el llamado de la
topología con el comando de Mininet, se puede apreciar cómo se añaden y activan
todos los dispositivos. (Mininet-GitHub, 2015).
FIGURA 45. Llamado en Mininet del código Python topología de prueba 2.
Captura de pantalla terminal Mininet, “Elaboración propia”
85
De esta manera podemos interactuar con la topología de red 2, utilizando los
comandos que Mininet posee para observar el comportamiento de la red.
3.8.2 Pruebas de conectividad topología de red 2
Tal como se vio en el numeral 3.6.3 Mininet posee una variedad de comandos los
cuales permiten interactuar fácilmente con la topología de red y verificar su
comportamiento. (Mininet-Wiki, 2015).
FIGURA 46. Verificación de conectividad de red con el comando pingall.
Captura de pantalla terminal Mininet , “Elaboración propia”
En la Figura 46, vemos la utilización de la línea de comandos (CLI), en este caso
utilizando el comando pingall para verificar la conectividad de la red. Como se
observa hubo respuesta entre todos los dispositivos sin pérdida de paquetes, 132
paquetes enviados por la red 132 paquetes recibidos.
86
FIGURA 47. Verificación de conectividad ent re h1 y h27.
Captura de pantalla terminal Mininet , “Elaboración propia”
En la Figura 47, se observa el ping utilizado: h1 ping-c 5 h27. El host 1 está
haciendo ping al host 27, le está enviando cinco (5) mensajes, la cantidad de
mensajes puede ser configurada indicando el número de mensajes después del
comando ping –c igual que la prueba anterior este tiene respuesta sin pérdida de
paquetes.
3.9
ARQUITECTURA DE LA TOPOLOGIA DE PRUEBA 2 CON MPLS
Para la segunda prueba del funcionamiento de la arquitectura MPLS, se
seleccionó una topología con 3 switches y 12 host, para realizar el etiquetado
MPLS en cada Switch y validar su funcionamiento en la red SDN, como fue
mencionado anteriormente el acceso a esta red es a través de los switches que
cumplen la función de un router programándolos manualmente para que puedan
realizar el etiquetado MPLS.
Cuando un paquete llega a un Switch de borde que no tiene definida una regla de
flujo el Switch solicita instrucciones del controlador. El controlador determinara
entonces el camino para este paquete y de todos los paquetes que lleguen cuál
será su ruta, pero en la arquitectura de red utilizada, estos flujos de datos son
programados manualmente desde un terminal externo para tener un control sobre
el enrutamiento.
87
En la Figura 48 podemos observar la topología a utilizar en esta prueba 2,
tenemos un controlador que funciona con Floodlight y este a su vez conectado a
dos switches que utilizan OpenFlow 1.3, y en los extremos tenemos doce host.
FIGURA 48. Topología de red prueba 2 con MPLS.
Imagen diseñada en miniedit de Mininet y Paint , “Elaboración propia”
3.9.1 Topología de red prueba 2 diseñada en Python
Como ya se ha mencionado anteriormente Mininet puede exportar un API de
Python para crear redes personalizadas pero en este caso se utilizará el editor de
Python Gedit, en la Figura 49-A, 50-B, 51-C, podemos observar el código utilizado
para esta.
88
FIGURA 49-A. Topología en Python prueba 2 con MPLS.
“Elaboración propia”
FIGURA 50-B, Topología en Python prueba 2 con MPLS.
“Elaboración propia”
89
FIGURA 51-C. Topología en Python prueba 2 con MPL S.
“Elaboración propia”
En el código presentado se muestra lo siguiente: se tienen doce (12) host y tres 3
switches. Los host están repartidos por cada Switch en la red, el Switch 10 (s10)
tiene conectado los host (h1, h2, h3, h4), el Switch 20 (s20) tiene conectado los
host (h12, h13, h14, h15) y el Switch 30 (s30) tiene conectado los host (h24, h25,
h26, h27). Lo primero en el código es importar las librerías de Mininet para usar el
API, seguidamente definimos una topología, es decir, instanciamos un objeto
“Mininet” como se muestra en el código. Luego creamos los nodos, todos los host
y los switches se añade el protocolo a utilizar en este caso OpenFlow 1.3 y al
crear el controlador se le añade la IP donde estará activo para este ejemplo la IP
127.0.0.1 y la puerta de enlace, después agregamos las relaciones entre ellos y
finalmente inicializamos todos los dispositivos. Al terminar de programar toda la
topología de red esta debe ser guardada en la carpeta custom de Mininet, donde
se llamará posteriormente a la topología para trabajar con ella. (Mininet-Wiki, 2015)
Al ejecutar el archivo topoh12h3s.py en Mininet, se crea en la máquina virtual las
interfaces virtuales y al mismo tiempo se compila el código de la emulación que
hemos desarrollado, en la Figura 52 se muestra como se realiza el llamado de la
topología con el comando de Mininet, aquí se debe también llamar al controlador
remoto previamente activado y añadir el puerto de escucha, el Switch a utilizar y
los protocolos que se emplearan, en este caso se llama a OpenFlow 1.3 y MPLS
con esto nos aseguramos que se activen para realizar la prueba, se puede
apreciar cómo se añaden y activan todos los dispositivos. (Mininet-GitHub, 2015).
90
FIGURA 52. Llamado de la topología personalizada de prueba 2 y pingall de conectividad.
Captura de pantalla terminal Mininet , “Elaboración propia”
En la Figura 52 podemos observar cómo se llama la topología personalizada en
Mininet tal como se vio en el numeral 3.7.1.1, inicialmente debe realizarse un
llamado al controlador remoto el cual vamos a utilizar, en un terminal con el
comando $ cd floodlight (se ingresa a la carpeta de Floodlight) y para su activación
utilizamos el comando $ java -jar target/floodlight.jar, esto lleva a que el
controlador se posicione en un estado de escucha a través de los puerto 6653,
que para este caso está en la IP : 127.0.0.1 y el puerto 6653 que utiliza Floodlight,
importante realizar también el llamado a los protocolos OpenFlow13 y MPLS para
que estos estén funcionando con nuestra topología tal y como se muestra en la
figura, aquí también realizamos un pingall para verificar la conectividad entre los
dispositivos se verifica que no hay perdida de paquetes.
91
3.9.2 Funcionamiento de MPLS en topología de prueba 2
Como se mencionó en el numeral anterior en primer lugar activamos el controlador
Floodlight desde un terminal de Ubuntu 14.04 como se muestra en la Figura 53.
FIGURA 53. Activación controlador Floodlight en Mininet.
Captura de pantalla terminal Mininet , “Elaboración propia”
Como se observa en la Figura 54-A y 55-B, se activa el protocolo OpenFlow 1.3 y
establece el envío de los paquetes LLDP (Protocolo de descubrimiento de capa de
enlace) periódicos para descubrir los dispositivos que eventualmente se conecten,
además se puede ver la conexión del controlador con OVS.
FIGURA 54-A. Mensajes generados por Floodlight.
Captura de pantalla terminal Mininet , “Elaboración propia”
92
FIGURA 55-B. Mensajes generados por Floodlight.
Captura de pantalla terminal Mininet , “Elaboración propia”
3.9.2.1 Asignación manual de flujo y etiquetado MPLS en la topología de prueba 2
En el escenario presentado de la topología de prueba 2 se realiza manualmente la
asignación de flujo, para ello se llama un xterm desde Mininet con el comando $
xterm s10 para añadir desde el Switch 10 el comportamiento del flujo y etiquetado
MPLS tal como se muestra en la Figura 56-A, 57-B.
93
FIGURA 56-A. Asignación manual de Flujo MPLS en los switches.
Captura de pantall a xterm, “Elaboración propia”
94
FIGURA 57-B. Asignación manual de Flujo MPLS en los switches de red 2.
Captura de pantalla xterm , “Elaboración propia”
Tal como se vio en el numeral 3.7.4, en cada Switch verificamos que el protocolo
OpenFlow13 este activo para ello utilizamos el comando # ovs-vsctl set bridge s10
protocols=[“OpenFlow13”] esto permite que el bridge esté funcionando
correctamente con el protocolo, después de esto utilizamos el comando # set-failmode bridge standalone este permite que si el controlador falla el flujo de
información continúe; con el comando # ovs-vstl set bridge s10
datapath_type=netdev crear un puente entre los switches, como se puede
observar en la Figura 56-A.
Podemos verificar la configura de los switches desde un xterm de Ubuntu 14.04
con el comando # sudo ovs-vsctl show, cada Switch está conectado al controlador
Floodlight que se encuentra en la IP 127.0.0.1 puerto 6653 y las conexiones de los
switches con los host los cuales fueron añadidos manualmente.
En la Figura 58, se puede apreciar el etiquetado MPLS que se le da a cada
paquete que pasa por el Switch 10 luego por el Switch 20, para este caso el host 1
envía un paquete, al llegar al Switch 10 este le asigna la etiqueta 101 y lo envía al
siguiente salto el cual es el Switch 20, este le quita la etiqueta 101 y le asigna una
nueva etiqueta en este caso la 20, este es enviado por la red al siguiente salto que
95
es el Switch 30 al llegar el paquete este le quita la etiqueta 20 y envía el paquete
sin MPLS al host 24 destino.
Para este ejemplo se realizó un ping de host 1 a host 24, la repuesta al ping de
host 24 fue el siguiente: host 24 envía un paquete, cuando llega al Switch 30 este
le asigna la etiqueta 301 y lo envía al siguiente salto el cual es el Switch 20, este le
quita la etiqueta 301 y le asigna una nueva que es la 201, por ultimo este paquete
llega al Switch 10 donde se le retira la etiqueta y se envía el paquete sin MPLS al
host 1.
101
20
20
301
201
201
FIGURA 58. Envío de paquetes por la red MPLS h1 – h24 cambio de MPLS.
Imagen diseñada en miniedit de Mininet y Paint , “Elaboración propia”
En la siguiente Figura 59, podemos observar como es el paso de un paquete y su
etiquetado en la misma topología de prueba 2, para este caso el host 4 envía un
paquete, al llegar al Switch 10 este le asigna la etiqueta 404 y lo envía al siguiente
salto el cual es el Switch 20, cuando este llega el Switch 20 quita la etiqueta y le
asigna una nueva en este caso 206, y se envía por la red MPLS al Switch 30, al
llegar este quita la etiqueta y envía el paquete sin MPLS al host 27 destino;
cuando este da respuesta el host 4 envía un paquete, cuando llega al Switch 30
este le asigna la etiqueta 403 y lo envía al siguiente salto el cual es el Switch 20,
este toma el paquete y le asigna una nueva etiqueta 205 quitando la anterior,
luego envía este al último Switch el cual quita la etiqueta y envía el paquete sin
MPLS al host 4.
96
404
206
206
403
205
205
FIGURA 59. Envío de paquetes por la red MPLS h4 – h27 cambio de etiquetas MPLS.
Imagen diseñada en miniedit de Mininet y Paint , “Elaboración propia”
En la siguiente tabla 3, se puede observar la asignación de etiquetas en los
switches y la llegada a cada interfaz, también la acción que el Switch realiza al
paquete.
Tabla 3. Asignación de etiquetas en los switches en la topología de prueba 2.
La tabla presentada permite ver de una forma más ordenas el flujo que pasa por la red,
programado en el numeral 3.9.2.1, Elaboración propia
97
3.9.2.2 Captura de tráfico en Wireshark topología de prueba 2
Utilizamos la herramienta Wireshark para ver el tráfico de la red, para este ejemplo
lo activaremos para verificar el comportamiento de MPLS en la topología de
prueba 2, desde un terminal en Ubuntu 14.04 escribimos el comando sudo
Wireshark.
En las Figuras 60, 61, 62 y 63, se observa como es el etiquetado MPLS de un
paquete al pasar por un Switch, como se explicó anteriormente se envía un ping
entre host 4 al host 27.
FIGURA 60. Captura de trafico Wireshark entre host 27 – host 4, primer salto en Switch 30.
“Elaboración propia”
98
FIGURA 61. Captura de trafico Wireshark entre host 27 – host 4, segundo salto en Switch
20.
“Elaboración propia”
FIGURA 62. Captura de trafico Wireshark entre host 4 – host 27, Respuesta host 4 en Switch
10.
“Elaboración propia”
99
FIGURA 63. Captura de trafico Wireshark entre host 4 – host 27 respuesta host 4 en Switch
20.
“Elaboración propia”
3.9.2.3 Verificación del flujo de datos con Floodlight
Floodlight tiene una interfaz web sencilla incorporada. La cual permite ver qué
nodos están conectados al Switch y que reglas se encuentran activas en los
mismos. Para acceder a esto abrimos el navegador web e ingresamos la URL de
Floodlight http://localhost:8080/ui/index.html, La interfaz gráfica de usuario tiene
una herramienta en la cual se muestra la topología actual como se observa en la
Figura 64, en la parte superior se puede ver que mostrará los switches y los hosts,
además se puede percibir el tráfico que se envía a través de la red, en la Figura
65 se puede ver que la versión OpenFlow que se está utilizando es la 1.3 en este
caso del Switch 30. Floodlight nos permite tener una mejor idea sobre cómo se
transmite el tráfico en la realidad, en la Figura 66 se puede observar la ventana
principal de Floodlight web, se puede apreciar todos los módulos que carga
Floodlight para trabajar con la red.
100
FIGURA 64. Topología de prueba 2 vista desde Floodlight Web.
Captura de pantalla del navegado r web, “Elaboración propia”
FIGURA 65. Floodlight web versión de OpenFlow 1.3 utilizada en Switch 30.
Captura de pantalla del navegador web , “Elaboración propia”
101
FIGURA 66. Página principal de Floodlight topología de prueba 2.
Captura de pantalla del navegador web , “Elaboración propia”
3.9.2.4 Verificación de MPLS en Floodlight web
Tal como se captura de tráfico a través de Wireshark, Floodlight también permite
ver ese flujo de paquetes y el etiquetado MPLS, en la Figura 67 se aprecia que en
este caso en el Switch 10 se puede ver la acción que se le aplico al paquete al
pasar por la puerta 1, donde al llegar con el protocolo IP al Switch 10 este le
agrega la etiqueta 101 para enviarlo por la puerta de salida 5. Aquí se puedes
observar todo el flujo de la red que pasa por el Switch 10 de extremo a extremo.
También en la Figura 68, se observa el etiquetado MPLS del paquete enviado del
host 27 al host 4, donde se le asigna la etiqueta 403.
102
FIGURA 67. Flujo del Switch 10 etiquetado MPLS.
Captura de pantalla del navegador web , “Elaboración propia”
FIGURA 68. Flujo del Switch 30 etiqu etado MPLS respuesta del host 27 al host 4.
Captura de pantalla del navegador web , “Elaboración propia”
103
3.10 ANALISIS DE RESULTADOS
La implementación de SDN en un ambiente MPLS puede simplificar
considerablemente la complejidad en el plano de control y permitir la incursión de
servicios flexibles.
Normalmente en las operaciones del plano de control los protocolos como LMP,
LDP RSVP-TE, OSPF-TE, RSVP-TE, LMP, MP-BGP y I-BGP, tienen como función
la creación de LSP, para la reserva del ancho de banda con ingeniería de tráfico,
deben por obligación hacer la búsqueda de disponibilidad de rutas, así como un
monitoreo constante de rutas para la distribución de etiquetas a los Routers y la
comunicación de los sistemas autónomos.
Regularmente la ficha técnica de los Routers deben ser robusto respecto a
memoria y carga de CPU, con el fin de que no queden cortos en el cargue de los
diferentes protocolos. Los procesos de actualización a nivel de software pueden
ser críticos ya que deben de hacerse cada que se presenten mejoramientos de
fallas en los diferentes módulos del Router.
En la evolución a Redes SDN desaparece el requerimiento de agregación de los
protocolos existentes en los Routers. Esta tarea la asume el controlador que
específicamente refiriéndonos a nuestro Proyecto es Floodlight, el cual establece
las rutas de la red, es decir la interfaz del controlador asume las funciones antes
sujetas a los protocolos que albergaban al Router (la implementación de servicio
que requiera la red se llevara estableciendo código para el software de aplicación
de la interfaz con el protocolo OpenFlow). Es así como el Router reduce su
requerimiento técnico de capacidad de cálculo, memoria, CPU y procesos de
actualización.
En la evaluación del proceso de etiquetado MPLS pudimos observar cómo
controlar el flujo de datos y programar la red desde un controlador para SDN, para
ello se realizó una configuración manual de etiquetas en los switches, por tanto no
se puedo utilizar los protocolos de distribución de etiquetas ni establecimiento de
LSPs, el controlador Floodlight utilizado en este proyecto soporta el protocolo LDP,
pero no hay suficiente documentación al respecto de su uso además para su
utilización se debe desarrollar una API para utilizar desde el controlador lo cual no
estaba como alcance del proyecto.
El uso de etiquetado hace que se pueda controlar la ruta de envió más fácil que el
modo convencional IP, en el enrutamiento IP convencional se hace el
enrutamiento distribuido, en cada router se toma la decisión de la conmutación de
los paquetes mediante la inspección de la cabecera del paquete y obteniendo la
104
dirección destino. En MPLS ya no es necesario inspeccionar toda la cabecera IP
en cada router para obtener la dirección destino y enviar los paquetes esto solo se
haría una vez en el router de borde y luego ya se conmutaría los paquetes
mediante intercambio de etiquetas. En SDN la determinación de las rutas y control
de enrutamiento se hace en forma centralizada desde el controlador y este le
indica a los switches o enrutadores como se debe hacer esa conmutación. La
pretensión que se tenía en este proyecto era poder evaluar este comportamiento
centralizado de MPLS en SDN y compararlo con el enrutamiento convencional,
pero fue complicado debido a que aunque el controlador Floodlight soporta
protocolos de distribución de etiquetas, no se encontró la forma de hacerlo
interactuar automáticamente con MPLS para poder hacer dichas pruebas y no se
encontró información al respecto por tanto estas pruebas se dejaron para trabajos
futuros que dan continuidad a este estudio.
Se pudo hacer una configuración de etiquetas manuales que permitieron apreciar
la conmutación de paquetes mediante etiquetas, donde se aprecia un
comportamiento en el enrutamiento similar en el trayecto de los paquetes
aparentemente, pero internamente el proceso se está haciendo centralizado al
usar SDNs. Las ventajas de MPLS en las redes convencionales sugieren un
aumento en la velocidad de enrutamiento, se necesitaría en trabajos futuros poder
realizar unas pruebas en las que se pueda comprobar los tiempos de enrutamiento
de paquetes comparando redes convencionales con SDNs pero teniendo las
mismas condiciones de enrutamiento dinámico, usando protocolos de
enrutamiento y de distribución de etiquetas.
Entre las ventajas teóricas que se encontraron de las posibles ventajas que trae la
combinación SDN-MPLS están:

La simplificación del plano de control IP / MPLS que a su vez reduce la
carga del protocolo en la CPU del router (una preocupación real en las
redes de transporte en los que no todo el hardware se actualiza al mismo
tiempo).

Dentro de los beneficios de SDN con MPLS es el de optimizar la función o
servicio de red (en oposición a las optimizaciones locales posibles hoy en
día) ya que todo está centralizado desde un controlador, ya que al poder
programar el flujo de datos y los protocolos a utilizar hace menos
dispendioso el trabajo actual de los administradores de red quienes realizan
estas labores en cada nodo de la red.
105
En cuanto a las ventaja que tienen los túneles MPLS en redes convencionales,
nos encontramos con la reducción de usos de etiquetas y se podría suponer que
en las redes MPLS igualmente se tendría la misma ventaja teniendo en cuenta
que se usaría también los mismos requisitos establecidos en el estándar MPLS
para el uso de etiquetas, en cuanto a lograr verificar las ventajas de los túneles
MPLS no se pudo comprobar por las mismas razones expuestas anteriormente
con respecto al uso de los protocolos de distribución de etiquetas lo que sugiere el
desarrollo de una API, lo que también queda para futuros trabajos.
106
4
CONCLUSIONES

En la ejecución de las pruebas del Proyecto nos encontramos con algunas
dificultades importantes por mencionar, para iniciar la herramienta MiniNet
es muy sensible a la sintaxis a través del lenguaje de programación Python,
debido a esto tuvimos que invertir mucho tiempo en la validación de las
instrucciones escritas llevándonos a retrasos en la obtención de resultados.

Cabe destacar que existen pocos emuladores que soporten la tecnología
SDN en el mercado, la mayoría son desarrollos académicos como lo son
Modelnet, DieCast y Mininet, excepto EstiNet que es de uso comercial.
Además, existen sitios de pruebas en línea que han ido incorporando
soporte de la tecnología SDN como Emulab. Para este proyecto se eligió el
emulador Mininet.

Mininet también presenta desventajas a la hora de trabajar. La capacidad
de Mininet de emular redes a gran escala es limitada por los recursos
disponibles en la máquina en donde corre. En este sentido, los tiempos
dependen de la capacidad de procesamiento del computador, y estos
aumentan exponencialmente al aumentar el número de nodos, mientras
que el uso de memoria aumenta de forma lineal. Esto limita claramente la
escalabilidad que se puede alcanzar con Mininet.

En la ejecución de las pruebas del Proyecto nos encontramos con algunas
dificultades importantes por mencionar, para iniciar, la herramienta MiniNet
es muy sensible a la sintaxis a través del lenguaje de programación Python,
debido a esto tuvimos que invertir mucho tiempo en la validación de las
instrucciones escritas llevándonos a retrasos en la obtención de resultados.

Dentro de los beneficios de SDN con MPLS teóricamente encontramos que
es el de optimizar la función o servicio de red, ya que todo está centralizado
desde un controlador, ya que al poder programar el flujo de datos y los
protocolos a utilizar hace menos dispendioso el trabajo actual de los
administradores de red quienes realizan estas labores en cada nodo de la
red. Mediante una exploración del estado del arte de MPLS se pudo
determinar teóricamente las ventajas del proceso de conmutación y
apilamiento de etiquetas en redes MPLS.

Por otro lado la documentación respecto a Redes SDN en combinación con
MPLS en las diferentes líneas de información (Sitios Web, Páginas, Libros,
Tesis, Trabajo de grado, artículos y juicio de expertos) es hallada de
107
manera muy general respecto a nuestra meta en este proyecto, si es
posible apreciar su innovación, arquitectura, funcionamiento, ventajas,
proyecciones, de manera individual pero la combinación de ambos
conceptos SDN y MPLS es muy limitada lo que nos llevó a trabajar en el
principio prueba y error para ir obteniendo resultados.

Este proyecto generó una metodología para configurar y activar MPLS en
una red definida por software utilizando el protocolo OpenFlow 1.3 y el
controlador Floodlight. Se dieron aportes valiosos para la instalación y
utilización del emulador Mininet, el controlador Floodlight, el protocolo
OpenFlow 1.3, que puede ser muy útil y servir como apoyo para futuras
investigaciones en el tema.
108
ANEXOS
A. Instalación MiniNet con OpenFlow 1.3
Opción uno (1) de instalación MiniNet VM
Instalación de máquina virtual es la manera más sencilla de la instalación de
MiniNet. En la práctica, la diferencia de velocidad es mínima y la instalación es
mucho más simple, puesto que no es necesario volver a compilar el kernell del
sistema operativo o remplazar para añadir soporte de red para espacio de
nombres. Para realizar una instalación personalizada, se explicara en la siguiente
sección o se puede consultar MininetVMCreationNotes ó los archivos README /
INSTALL de las fuentes MiniNet.
Pasos para una instalación VM:
1. Descargar la imagen de la máquina virtual desde MiniNet, disponible en:
https://github.com/mininet/mininet/wiki/Mininet-VM-Images . El archivo tiene
un tamaño de 1GB, comprimido.
2. Descargar e instalar el VirtualBox (libre, GPL) para Windows o Linux.
Disponible en: https://www.virtualbox.org/wiki/Downloads
3. Se
recomienda
suscribirse
a
la
lista
de
correo-MiniNet
https://mailman.stanford.edu/mailman/listinfo/mininet-discuss . Esta fuente
ofrece ayuda a investigadores.
4. Ejecutar a través de los MininetVMSetupNotes para iniciar sesión en la
máquina virtual e instalar el código MiniNet en el.
5. Siga el MininetWalkthrough para familiarizarse con los comandos de
MiniNet y el uso típico.
109
Opción dos (2) de instalación MiniNet Nativo
Esta opción funciona muy bien para VM local EC2 a distancia, y la instalación
nativa.
Se asume que el punto de partida es desde un nuevo Ubuntu (o, de forma
experimental, Fedora).
Se recomienda utilizar la versión más reciente de Ubuntu liberada, porque esto
apoya a las nuevas versiones de Abrir vSwitch, Fedora también es compatible con
las versiones más recientes de MiniNet.
Para instalar de forma nativa desde la fuente, en primer lugar se necesita obtener
el código fuente:
1. Abrir un nuevo terminal en Ubuntu
git://github.com/mininet/mininet
y
luego
digitar
git
clone
2. Cuando se halla descargado el paquete de instalación procedemos a
ejecutar el siguiente comando ./mininet/util/install.sh –a
-a: instala todo lo que se incluye en el MiniNet VM, incluyendo dependencias como
Open vSwitch así las adiciones como el Wireshark, OpenFlow y POX.
3. Después de que la instalación se haya completado, probar la funcionalidad
básica de MiniNet con el siguiente comando sudo mn --test pingall
110
B. Instalación de Floodlight 1.0
Floodlight está basado en java y corre bajos las herramientas JDK, se debe
instalar JDK 1.7 y Ant. Opcionalmente, se puede optar por instalar el eclipse, pero
no es obligatorio.
Pasos para la instalación:
1. Desde un terminal de Ubuntu 14.04, escribimos los siguiente: sudo apt-get
install build-essential default-jdk ant python-dev eclipse
2. Desde el terminal abierto vamos a realizar la descarga, escribimos lo
siguiente: $ git clone git://github.com/floodlight/floodlight.git
3. Una vez terminada la descarga ingrasamos a la carpeta de Floodlight con el
siguiente comando: $ cd floodlight
4. Entando dentro de la carpeta escribimos lo siguiente: $ ant
5. Luego escribimos lo siguiente: $ sudo mkdir /var/lib/floodlight
6. Por ultimo escribimos el siguiente comando: $ sudo chmod 777
/var/lib/floodlight
En este momento ya tenemos instalado Floodlight para trabajar con el.
Floodlight también tiene una máquina virtual pre-configurada con MiniNet,
Openvswitch y Floodlight v1.1. la cual se puede usar sin ningún problema se
puede
descargar
de
la
siguiente
página
web:
https://floodlight.atlassian.net/wiki/display/floodlightcontroller/Floodlight+VM
111
BIBLIOGRAFÍA
A stance on emulation and testbeds, a. a. (2007). folk.uio.no/erek/publications.
Retrieved
16
de
Septiembre
de
2015
from
erek/publications:
folk.uio.no/erek/publications/07ecms-gokturk-1.02.ps.gz
Alejandro Garcia Centeno, C. M. (Diciembre de 2014). revistatelematica.
Retrieved 16 de Noviembre de 2015 from revistatelematica.cujae.edu.cu:
http://revistatelematica.cujae.edu.cu/index.php/tele/article/viewFile/164/153
Ali Reza Sharafat, S. D. (2011). MPLS-TE and MPLS VPNs with OpenFlow.
Retrieved 18 de Septiembre de 2015 from klamath.stanford.edu:
http://klamath.stanford.edu/~nickm/papers/mpls-sigcomm11.pdf
Awduche, D. (Diciembre de 2001). Applicability Statement for Extensions to RSVP
for LSP-Tunnels . Retrieved 01 de Junio de 2015 from tools.ietf.org:
https://tools.ietf.org/html/rfc3210
Azarang M., G. E. (2006). Simulación y análisis de modelos estocásticos.
Retrieved 16 de Septiembre de 2015 from Universidad de Mérida:
http://www.unamerida.com/archivospdf/337%20Lectura6.3.1.pdf
BELLESSA, J. (30 de Abril de 2015). IMPLEMENTING MPLS WITH LABEL
SWITCHING IN SOFTWARE-DEFINED NETWORKS. Retrieved 02 de DIciembre
de
2015
from
assured-cloud-computing.:
http://assured-cloudcomputing.illinois.edu/files/2015/02/Bellessa_John.pdf
Beuran, R. (2012). Network Emulation 101. In R. Beuran, Introduction to Network
Emulation (p. 426). Singapore: Pan Stanford Publishing.
Braden, R. (Septiembre de 1997). Resource ReSerVation Protocol (RSVP).
Retrieved 01 de Junio de 2015 from tools.ietf.org: https://tools.ietf.org/html/rfc2205
Canalis, M. S. (2003). Una Arquitectura de Backbone para la Internet del Siglo
XXI.
Retrieved
05
de
Junio
de
2015
from
exa.unne.edu.ar:
http://exa.unne.edu.ar/informatica/SO/libmpls.PDF
Canalis, M. S. (2003). Una Arquitectura de Backbone para la Internet del Siglo
XXI. Retrieved 16 de Noviembre de 2015 from exa.unne.edu.ar:
http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/libmpls.PDF
112
Castañeda, F. G. (Octubre de 2012). ANÁLISIS DE LA RED DE LA CNT EP
PARA LA IMPLEMENTACIÓN DE SERVICIOS INTEGRADOS MEDIANTE
TECNOLOGÍA MPLS. Retrieved 05 de Junio de 2015 from dspace.unach.edu.ec:
http://dspace.unach.edu.ec/bitstream/123456789/340/1/FI-IET-40A019.pdf
Chodorek, R. (07 de Febrero de 2015). RSVP Extensions for Dynamic
Reservation. Retrieved 01 de Junio de 2015 from datatracker.ietf.org:
http://datatracker.ietf.org/doc/draft-chodorek-tsvwg-rsvp-dynamicresv/?include_text=1
Christian Esteve Rothenberg, M. R. (Junio de 2011). OpenFlow e redes definidas
por software: um novo paradigma de controle e inovação em redes de pacotes.
Retrieved
30
de
Abril
de
2015
from
cpqd.com.br:
http://www.cpqd.com.br/cadernosdetecnologia/Vol7_N1_jul2010_jun2011/pdf/artig
o6.pdf
Cisco Systems, Inc. (Octubre de 2007). LDP Specification. Retrieved 22 de
Novuembre de 2015 from tools.ietf.org: https://tools.ietf.org/html/rfc5036
Community Trema. (22 de Mayo de 2015). Full-Stack OpenFlow Framework in
Ruby.
Retrieved
22
de
Mayo
de
2015
from
github.com:
https://github.com/trema/trema
Cornell University. (2015). www.cs.cornell.edu. Retrieved 16 de Septiembre de
2015 from cornell.edu: http://www.cs.cornell.edu/skeshav/real/overview.html
Deepak Kumar, M. S. (2014). Software Defined Networking: A Concept and
Related Issues. Retrieved 28 de Noviembre de 2015 from ijana.in:
http://www.ijana.in/papers/V6I2-5.pdf
Dibildox, L. M. (16 de Mayo de 2006). Protocolo MPLS. Retrieved 22 de
Noviembre
de
2015
from
catarina.udlap.mx:
http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/morales_d_l/capitulo2.pdf
Dynamics, C. V.-D. (25 de Marzo de 2013). SDN, LA EVOLUCIÓN QUE
NECESITABA LA RED. Retrieved 18 de Enero de 2016 from
datacenterdynamics.es:
http://www.datacenterdynamics.es/focus/archive/2013/03/sdn-la-evolución-quenecesitaba-la-red
E. Rosen, C. S. (Enero de 2001). RFC 3031 MPLS Architecture . Retrieved 18 de
Septiembre de 2015 from tools.ietf.org: http://tools.ietf.org/html/rfc3031#section-
113
3.27
Erickson, D. (14 de Mayo de 2015). The Beacon OpenFlow Controller. Retrieved
14
de
Mayo
de
2015
from
yuba.stanford.edu:
http://yuba.stanford.edu/~derickso/docs/hotsdn15-erickson.pdf
Farrel, B. S. (2008). MPLS: Next Steps, The Morgan Kaufmann Series in
Networking (Vol. 1). Burlington, USA: Morgan Kaufmann is an imprint of Elsevier.
Farrel, B. S. (2008). MPLS: Next Steps. AMSTERDAM: Morgan Kaufmann
Publishers is an imprint of Elsevier.
FELDMAN, A. D. (Enero de 2001). LDP Specification. Retrieved 30 de Mayo de
2015 from Network Working Group: https://www.rfc-editor.org/rfc/rfc3036.txt
gns3. (2007). gns3. Retrieved 16 de Septiembre de 2015 from gns3:
http://www.gns3.com/
Guruprasad, S. (2002). An Integrated Experimental Environment for Distributed
Systems and Networks. Retrieved 16 de Noviembre de 2015 from cs.cornell.edu:
http://www.cs.cornell.edu/People/egs/cornellonly/syslunch/fall02/emulabtr02.pdf
Hervás, O. R. (2914). Software Defined Networking. From upcommons.upc.edu:
http://upcommons.upc.edu/bitstream/handle/2099.1/21633/Memoria.pdf
Jacobs, D. B. (Octubre de 2014). Control de redes: planos dinámicos más simples
con MPLS-TP y SDN. Retrieved 22 de Enero de 2016 from searchdatacenter:
http://searchdatacenter.techtarget.com/es/cronica/Control-de-redes-planosdinamicos-mas-simples-con-MPLS-TP-y-SDN
James Kempf, S. W. (2011). OpenFlow MPLS and the Open Source Label
Switched Router. Retrieved 18 de Septiembre de 2015 from yuba.stanford.edu:
http://yuba.stanford.edu/~peyman/docs/ofmpls.pdf
Jim Metzler, N. W. (15 de Noviembre de 2012). Explicación técnica: Software
Defined Networking (SDN). Retrieved 05 de Abril de 2015 from http://cioperu.pe:
http://cioperu.pe/articulo/11606/explicacion-tecnica-software-defined-networkingsdn/
Karamjeet Kaur, J. S. (2014). Mininet as Software Defined Networking Testing
Platform.
Retrieved
22
de
Abril
de
2015
from
sbsstc.ac.in:
http://www.sbsstc.ac.in/icccs2014/Papers/Paper29.pdf
114
Lobo, L. (2005). MPLS Configuration on Cisco IOS Software. (I. Cisco Systems,
Ed.) Indianapolis, Indiana, USA: Cisco Press.
Millan, R. (2015). MPLS (MultiProtocol Label Switching). Retrieved 30 de Mayo de
2015 from ramonmillan: http://www.ramonmillan.com/tutoriales/mpls.php
Mininet Team. (2015). mininet overview. Retrieved 16 de Septiembre de 2015
from mininet.org: http://mininet.org/overview/
Mininet Team. (2015). Mininet Overview. Retrieved 22 de Abril de 2015 from
mininet.org: http://mininet.org/overview/
Mininet-GitHub. (2015). GitHub. Retrieved 22 de Enero de 2016 from github.com:
https://github.com/mininet/mininet/tree/master/examples
Mininet-Wiki. (17 de Diciembre de 2015). Github. Retrieved 22 de Enero de 2016
from Introduction to Mininet: https://github.com/mininet/mininet/wiki/Introduction-toMininet#creating
NCTUns. (Febrero de 2013). NCTUns 6.0 Network Simulator and Emulator .
Retrieved
16
de
Septiembre
de
2015
from
nctu.edu.tw:
http://nsl.cs.nctu.edu.tw/NSL/nctuns.html
NOX. (24 de Mayo de 2014). About NOX. Retrieved 22 de Mayo de 2015 from
noxrepo.org: http://www.noxrepo.org/nox/about-nox/
nsnam. (2011). nsnam.org. Retrieved 16 de Septiembre de 2015 from NS-3:
https://www.nsnam.org/overview/what-is-ns-3/
Open Networking Foundation. (13 de Abril de 2012). Software-Defined
Networking: The New Norm for Networks. Retrieved 5 de Abril de 2015 from
opennetworking.org:https://www.opennetworking.org/images/stories/downloads/sd
n-resources/white-papers/wp-sdn-newnorm.pdf
OpenDaylight, a Linux Foundation Collaborative Project. (2015). OPENDAYLIGHT
“HELIUM” -- THE RISE OF OPEN SDN. Retrieved 22 de Mayo de 2015 from
opendaylight.org: http://www.opendaylight.org/software
Peralta, R. M. (14 de Mayo de 2015). Emulación de SNDs usando Mininet.
Retrieved
14
de
Mayo
de
2015
from
profesores.elo.utfsm.cl:
http://www.profesores.elo.utfsm.cl/~agv/elo323/2s14/projects/reports/RodrigoManr
iquez/RodrigoManriquez.pdf
115
POX. (17 de Diciembre de 2014). About POX. Retrieved 22 de Mayo de 2015 from
noxrepo.org: http://www.noxrepo.org/pox/about-pox/
revistatelematica. (Septiembre de 2014). Controladores SDN, elementos para su
selección y evalución. Retrieved 14 de Mayo de 2015 from
revistatelematica.cujae.edu.cu:
http://revistatelematica.cujae.edu.cu/index.php/tele/article/viewFile/164/153
Riverbed Technology. (2015). riverbed. Retrieved 16 de Septiembre de 2015 from
OPNET: http://www.riverbed.com/products/steelcentral/opnet.html?redirect=opnet
ROMERO, G. (16 de Agosto de 2012). ENRUTAMIENTO ÓPTIMO EN REDES IP
CASO INTRADOMINIO. Retrieved 05 de Junio de 2015 from riuc.bc.uc.edu.ve:
http://www.riuc.bc.uc.edu.ve/bitstream/123456789/686/1/gromero.pdf
Ryu SDN Framework Community. (22 de Mayo de 2014). COMPONENT-BASED
SOFTWARE DEFINED NETWORKING FRAMEWORK Build SDN Agilely.
Retrieved 22 de Mayo de 2015 from osrg.github.io: http://osrg.github.io/ryu/
S. Guruprasad, R. R. (2005). Integrated network experimentation using simulation
and emulation. Conf. on Testbeds and Research Infrastructures for Development
of Networks and Communities. TRIDENT- COM’05.
SALVIAT, L. M. (Octubre de 2005). REDES MPLS: FUNDAMENTOS,
APLICACIÓN Y GESTIÓN DE RECURSOS. Retrieved 16 de Noviembre de 2015
from
cybertesis.uach.cl:
http://cybertesis.uach.cl/tesis/uach/2005/bmfcic828r/sources/bmfcic828r.pdf
Santamaría, S. R. (26 de Febrero de 2012). Proyecto fin de carrera, universidad
de Cantabria: mecanismos de control de las comunicaciones en la internet del
futuro a través de OpenFlow. Retrieved 05 de Abril de 2015 from
repositorio.unican.es:
http://repositorio.unican.es/xmlui/bitstream/handle/10902/1165/Sergio%20Rodrigu
ez%20Santamaria.pdf.txt?sequence=8
sponsored community project. (2015). Floodlight Is an Open SDN Controller.
Retrieved
22
de
Mayo
de
2015
from
projectfloodlight.org:
http://www.projectfloodlight.org/floodlight/
The Network Simulator ns-2. (Septiembre de 1997). www.isi.edu. Retrieved 16 de
Septiembre de 2015 from isi.edu: http://www.isi.edu/nsnam/ns/
116
Vargas, W. A. (14 de Mayo de 2015). Emulación de una red definida por software
utilizando MiniNet. Retrieved 14 de Mayo de 2015 from academia.edu:
http://www.academia.edu/5730624/Emulación_de_una_red_definida_por_softwar
e_utilizando_MiniNet
Vishal Negi, U. K. (Enero de 2012). Building an MPLS-TP Simulator. Retrieved 18
de
Septiembre
de
2015
from
researchgate.net:
https://www.researchgate.net/profile/Tulika_Pandey/publication/261427536_Buildi
ng_an_MPLS-TP_simulator/links/5510f20b0cf2a8dd79bf47b7.pdf
Xiaogang Tu, X. L. (2014). Splicing MPLS and OpenFlow Tunnels Based on SDN
Paradigm. Retrieved 18 de Septiembre de 2015 from infona.pl:
https://www.infona.pl/resource/bwmeta1.element.ieee-art-000006903516
117
Descargar