Académique Documents
Professionnel Documents
Culture Documents
FACULTAD DE INFORMÁTICA
Máster en Nuevas
Tecnologías en Informática
Jbg3@um.es
Tutores:
D. Pedro Martínez-Juliá
“Piensa de OpenFlow como el conjunto de instrucciones x86. ¿Es el conjunto x86 la mejor
repuesta? No, es lo suficientemente bueno para que lo usemos, ¿entonces porque cambiarlo?
Esto es un símil a lo que ocurre con OpenFlow. Es el conjunto de instrucciones que se ha
desarrollado para utilizar, nosotros no vamos a quedarnos atascados en conseguir que sea
el estrictamente mejor. “– Scott Shenker UC Berkely
* * * *
“Think of OpenFlow as the x86 instruction set. Is the x86 instruction set the right answer? No,
its good enough for what we use it for, then why bother changing. Thats what OpenFlow is. It’s
the instruction set that we happen to use, but we shouldn’t get hung up on getting it exactly
right.” – Scott Shenker UC Berkely
ÍNDICE GENERAL
RESUMEN ..................................................................................................................................... 8
ABSTRACT .................................................................................................................................... 9
PRÓLOGO ................................................................................................................................... 10
1. INTRODUCCIÓN .......................................................................................................... 11
5. REFERENCIAS .............................................................................................................. 82
APÉNDICE: ......................................................................................................................... 88
ÍNDICE DE ILUSTRACIONES:
ILUSTRACIÓN 1: .......................................................................................................................................... 13
ILUSTRACIÓN 2: .......................................................................................................................................... 16
ILUSTRACIÓN 3: .......................................................................................................................................... 19
ILUSTRACIÓN 4:. ......................................................................................................................................... 20
ILUSTRACIÓN 5: .......................................................................................................................................... 23
ILUSTRACIÓN 6: .......................................................................................................................................... 28
ILUSTRACIÓN 7: .......................................................................................................................................... 30
ILUSTRACIÓN 8: .......................................................................................................................................... 32
ILUSTRACIÓN 9: .......................................................................................................................................... 33
ILUSTRACIÓN 10: ........................................................................................................................................ 34
ILUSTRACIÓN 11: ........................................................................................................................................ 35
ILUSTRACIÓN 12: ........................................................................................................................................ 37
ILUSTRACIÓN 13: ........................................................................................................................................ 39
ILUSTRACIÓN 14: ........................................................................................................................................ 39
ILUSTRACIÓN 15:. ....................................................................................................................................... 40
ILUSTRACIÓN 16: ........................................................................................................................................ 42
ILUSTRACIÓN 17: ........................................................................................................................................ 44
ILUSTRACIÓN 18: ........................................................................................................................................ 47
ILUSTRACIÓN 19: ........................................................................................................................................ 48
ILUSTRACIÓN 20: ........................................................................................................................................ 49
ILUSTRACIÓN 21: ........................................................................................................................................ 50
ILUSTRACIÓN 22: ........................................................................................................................................ 51
ILUSTRACIÓN 23: ........................................................................................................................................ 52
ILUSTRACIÓN 24: ........................................................................................................................................ 52
ILUSTRACIÓN 25: ........................................................................................................................................ 54
ILUSTRACIÓN 26: ........................................................................................................................................ 55
ILUSTRACIÓN 27: ...................................................................................................................................... 56
ILUSTRACIÓN 28: ........................................................................................................................................ 58
ILUSTRACIÓN 29: ........................................................................................................................................ 58
ILUSTRACIÓN 30: ........................................................................................................................................ 60
ILUSTRACIÓN 31: ........................................................................................................................................ 61
ILUSTRACIÓN 32: ........................................................................................................................................ 61
ILUSTRACIÓN 33: ........................................................................................................................................ 63
ILUSTRACIÓN 34: ........................................................................................................................................ 63
ILUSTRACIÓN 35 : ....................................................................................................................................... 64
ILUSTRACIÓN 36: ........................................................................................................................................ 65
ILUSTRACIÓN 37: ........................................................................................................................................ 66
ILUSTRACIÓN 38: ........................................................................................................................................ 67
ILUSTRACIÓN 39: ........................................................................................................................................ 68
ILUSTRACIÓN 40: ........................................................................................................................................ 70
ILUSTRACIÓN 41: ........................................................................................................................................ 71
ILUSTRACIÓN 42: ........................................................................................................................................ 71
RESUMEN
La expansión de los dispositivos móviles y el contenido digital, la virtualización de
servidores y la llegada de los servicios en “la nube”, son algunas de las tendencias que
impulsan la industria del networking a reexaminar las arquitecturas de red tradicionales.
Redes convencionales jerárquicas, con capas de switches Ethernet dispuestos en una
estructura arbórea.
Sometidos a la continua mejora de la virtualización de sistemas y los hábitos de consumo
del modelo actual de Internet [5][6][10], surgieron diversos proyectos cuyo objetivo era
abstraerse de los niveles de red y formar una capa virtual distribuida por encima de las
heterogeneidades de la red física ( concepto Overlay Networks).
En el desarrollo del proyecto que aquí presentamos, analizaremos algunos de las
herramientas que surgieron de este concepto, capaces de abstraer y manejar los servicios
de nivel de enlace sobre el sistema operativo. Este avance complementa a la virtualización
de sistemas añadiendo la flexibilidad y escalabilidad de añadir recursos virtuales desde una
perspectiva uniforme, sencilla y estandarizada.
El trabajo está orientado al estudio y análisis técnico de las herramientas de virtualización
del nivel de enlace distribuidas, con el propósito de plantear una evolución del modelo
convencional de la red de una forma no disruptiva. Nos introduciremos en la virtualización
distribuida del nivel de enlace a la red, teniendo en cuenta los nuevos desafíos: el modelo
multi-arrendamiento de los recursos, servicios extremo a extremo, el agotamiento de
direcciones y la coexistencia IPv4 e IPv6. Estos son los frentes para experimentar hacia el
Internet del futuro.
OpenFlow es la propuesta tangible al nuevo paradigma de la red definida por software.
Complementando al estudio teórico veremos con escenarios prácticos la evaluación de las
herramientas. Conclusiones de los ejemplos son válidas para experimentación con nuevos
protocolos, transición e interconexión con redes convencionales, implantación de
mecanismos extremo a extremo, la extensión de la red sobre nuevos medios, etc... Tales que
comencemos a considerar estas herramientas o complementos a estas para nuevos desafíos
sirviendo de nexo a un modelo de futuro.
* * * *
ABSTRACT
The explosion of mobile devices and content, server virtualization, and advent of cloud
services are among the trends driving the networking industry to reexamine traditional
network architectures. Many conventional networks are hierarchical, built with tiers of
Ethernet switches arranged in a tree structure.
Subjected to continuous improvement of system virtualization and consumption habits of
the current Internet model, emerged several projects aimed to get an abstraction of link
layer to create a virtual layer distributed over the heterogeneities of the physical network
(Overlay networks layers).
In developing the project shown here review some of the tools that emerged from this
concept, able to abstract and manage the link layer services on operating system
application. This progress complements the system virtualization adding flexibility and
scalability to add virtual resources where we connect.
This job is oriented to study with a technical analysis the virtualization distributed link level
tools, in order to raise an evolution of the conventional model of the network in a non-
disruptive. We introduce virtualization distributed link level to the system, taking into
account new challenges: multi-tenancy model of resources, end to end services and address
exhaustion IPv4 and IPv6 coexistence. These are the mainly fronts to tackle experience the
future internet (FI).
Based on actual proposal OpenFlow as implementation as the paradigm of software defined
network, we will complement the theoretical study with practical scenarios to evaluate
tools. The conclusions of the examples are valid to experiment with new protocols,
transition and interconnection with conventional networks, implementation of end-to-end
mechanisms for the extension of the network on new media, and so on. Those who begin to
consider these tools or additions to these serving as a link to a future model.
* * * *
PRÓLOGO
Este trabajo de investigación tecnológica está estructurado en cuatro bloques. En el primer
capítulo, se presenta el estado del arte y contextualiza la situación en el ámbito de la
virtualización, enfocada a solventar los problemas del modelo de red tradicional. El
segundo capítulo, concreta el ámbito para el cual competen las necesidades y desarrolla un
análisis- teórico de las herramientas para alcanzar esas propuestas, mitigar y/o paliar los
desafíos planteados. Profundizamos en cómo utilizar estas herramientas software y que
nos brinda el hardware para hacer frente a los desafíos que se plantean con escenarios
prácticos en el capítulo tercero, correspondiente al bloque empírico-analítico; con
herramientas concretas que giran en torno a OpenFlow y sus posibilidades. En este último
desarrollo pretendemos recrear escenarios de experimentación con dos herramientas:
MININET para un laboratorio local y OFELIA como ejemplo de despliegue físico.
Finalizando con el cuarto capítulo de conclusiones y vías de investigación futuras que abre
esta línea de trabajo y nuevas que se proponen.
El alcance de este proyecto es realizar un estudio profundo de las tecnologías de
virtualización en el nivel de enlace para escenarios distribuidos, del funcionamiento de
estas y de sus componentes o módulos, que nos permitirán abordar los desafíos expuestos.
Entre las novedades que este trabajo recoge destaca, la investigación y el seguimiento de
cómo han evolucionado los diferentes proyectos y asociaciones en torno a estos. Con la
intención de que sirva como trabajo de referencia para futuras investigaciones así como
reflexión para la planificación del internet del futuro.
Trabajos de investigación se han complementado y extrapolado del ámbito de la
investigación a entornos reales en muy poco tiempo dadas las grandes expectativas que
despierta la red definida por software (Software-Defined Networks) sufragados y
potenciados por las grandes compañías del sector y universidades. Al mismo tiempo que
esto potencia el rápido avance también puede llevar a una fragmentación por intereses
propios de un modelo que se planteó inicialmente abierto. Aquí pretendemos establecer un
rigor y a la vez concretar el nexo entre los modelos disruptivos que investigan el futuro
Internet y los desafíos actuales que se pretenden mitigar, teniendo en cuenta que el futuro
surge de como abordemos estos en el presente.
Estos modelos plantean un nivel de abstracción sobre la tecnología subyacente con capas
que ofrecen servicios extremo a extremo, la virtualización de los recursos no solo nos puede
proveer de laboratorios gigantes como GENI u OFELIA (con el cual trabajaremos en el
apartado práctico) sino que pueden causar el efecto “ARPANET contemporáneo” en la forma
de concebir la red.
1. INTRODUCCIÓN
El significado de la palabra “virtual” tiene entre sus acepciones la que se refiere a algo que
físicamente no existe pero lo aparenta, es decir, parece real. En la ciencia de la computación
entendemos por virtualización cuando una herramienta software no está ejecutándose
directamente sobre el hardware sino sobre una abstracción del mismo, que veremos como
una máquina virtual.
Los méritos hardware de la computación actual con altas prestaciones para virtualización
y la adecuación de los recursos en busca de la máxima eficiencia de los mismos se implantan
o explotan hoy día. Concretamente la virtualización frente a la emulación consigue un
rendimiento más próximo al que ofrecería el sistema operativo directamente sobre el
hardware del equipo anfitrión, permitiendo albergar según la capacidad de esta máquina
más VMs (Virtual Machines), dando más rendimiento a nuestro hardware y haciéndolo más
flexible.
La virtualización ofrece a cada programa que se ejecuta sobre la máquina virtual la ilusión
de que tiene su propio hardware para ejecutarse (procesador, memoria, unidades de
almacenamiento, etc.). Para esto, la VM es dependiente de esta tecnología de virtualización.
Cada máquina virtual reside finalmente en lo que se conoce como un Hypervisor o Virtual
Machine Monitor (VMM), que abstrae los recursos físicos de forma lógica para presentarlos
a las distintas máquinas virtuales (también llamados huéspedes) de los cuales tiene que
gestionar la coexistencia y seguridad en el mismo entorno hardware. [2][42]
Las técnicas de virtualización de CPU (central processor unit) han evolucionado
rápidamente en la última década pero no tanto la virtualización de dispositivos para redes
que ha quedado en la zaga. La premisa de conseguir la virtualización completa, donde la VM
se comporta idealmente como si todos los componentes funcionaran sobre el propio
hardware que se le presta, permanece en el trasfondo de los avances que se realizan en éste
área. En busca de que la interacción con el resto de dispositivos sea lo más “real” posible
evitando así emulaciones e indirecciones. Hay importantes avances en el sector de los
microprocesadores con soporte de instrucciones específico para mejorar el rendimiento
con dispositivos de entrada – salida virtualizados. [40][41].
Complementando a las herramientas software de virtualización de sistemas surgen nuevos
proyectos, algunos en acuerdo con fabricantes de electrónica de red otros fruto de
proyectos universitarios, con el objetivo de virtualizar los recursos de electrónica de red
principalmente de nivel 2-3. Este punto de vista añade nuevas posibilidades principalmente
de flexibilidad a los entornos con máquinas virtualizadas.
Actualmente en los centros de datos se ofrecen servicios que tienen que ser ampliables bajo
demanda, de manera que se optimice desde el consumo energético del centro hasta los
propios recursos de los equipos anfitrión según el desempeño. Es probable que un centro
necesite coordinarse o recurrir a otra sede para cubrir con este propósito en ciertas
ocasiones como por ejemplo desplegar nuevas VMs ante un incremento estacionario en la
demanda de sus servicios, ofrecer mejor disponibilidad de sus servicios en un nuevo
mercado lejos del habitual o recurrir a una rápida recuperación ante desastres por medio
de servicios de respaldo. Estos recursos que no tienen por qué estar físicamente conectados
en el mismo CPD (centro de procesamiento de datos) pueden estar ubicados
estratégicamente o por otras circunstancias por acuerdos establecidos en otro lugar,
obligando en estos casos a establecer relaciones inter-dominio seguras y aislados a la vez
de otros procesos distribuidos que concurren por el mismo hardware.
La interconexión virtual brinda la posibilidad de obtener una vista de los recursos en una
capa de red elevada sobre la red física existente. Esto es lo que nos ofrecen las herramientas
de virtualización de nivel de enlace distribuidas. Esto complementa a los sistemas de
virtualización, permitiendo conectar VMs físicamente distantes. Este concepto de plano
virtual que se abstrae de los mecanismos de interconexión subyacentes, a través del cual
estemos conectados es a lo que nos referiremos con extender la red que veremos
detenidamente cuando hablemos de Overlay Networks.
Nos referiremos generalmente al término en inglés switch en lugar de conmutador de red a
lo largo del documento, por ser un concepto genérico muy acuñado en la técnica que
estudiamos.
La virtualización a nivel de enlace surge para “virtualmente” conectar cada VM a un puerto
de ese switch virtual que podremos implementar en software o hardware como
estudiaremos.
En el desarrollo del proyecto analizaremos algunos de las herramientas que surgieron de
este concepto, capaces de abstraer y manejar los servicios de nivel de enlace sobre el
sistema operativo. Este avance complementa a la virtualización de sistemas añadiendo la
flexibilidad y escalabilidad de añadir recursos virtuales donde conectarnos.
El trabajo está orientado al estudio y análisis técnico de las herramientas de virtualización
a nivel de enlace distribuidas con el propósito de construir Virtual Distributed Networks
towards Future Internet. Añadiendo con la realización de escenarios prácticos conclusiones,
teniendo en cuenta escenarios que cumplan con los requisitos del Futuro Internet, tales que,
sirvan para considerar o adoptar un tipo de herramienta o complementos a estas según el
tipo de red subyacente y el esquema final.
Veamos los precedentes de las tecnologías a las que nos referiremos en el estudio y
contrastaremos los propósitos de uso actuales con los principales para los que fueron
diseñados para considerar las tendencias de estas.
Así centrar el objetivo de este proyecto en el que las tecnologías de virtualización y la red
convergen con perspectivas a corto y largo plazo para un modelo de Internet de futuro y la
investigación con nuevos escenarios.
1.1. VIRTUALIZACIÓN
A mediados de los años 60, IBM desarrolló el sistema operativo CP-67 que ya introdujo el
concepto de máquina virtual, era el primer intento de IBM, que fue el precursor de la
tecnología del VM/370, producto que maduraba esta tecnología ya por los años 70. El
objetivo era claro, dividir lógicamente los recursos de los sistemas mainframe para
ofrecerlos con la misma interfaz que el hardware real, esta interfaz se ejecutaba sobre el
software de control Control Program, encargado de comunicarse con la máquina real de
forma segura y manteniendo aislado el espacio del usuario, evitando que pudiera causar
daños a otros.
En sus primeros años la virtualización daba varias copias del sistema anfitrión con recursos
limitados, asegurando la compatibilidad del software de forma aislada y con un rendimiento
comparable con el original. Pero años después con la introducción de los sistemas
operativos multiusuario, la madurez de la arquitectura x86 y el modelo cliente servidor que
tuvieron mucha aceptación en los años 80, junto a la proliferación de los equipos personales
relegaron el concepto de virtualización. Este concepto surgió de nuevo con la tecnología
Java, que abordaba el acoplamiento para los desarrolladores de software a una arquitectura
concreta con el concepto de Java de multiplataforma. Actualmente muy extendido el código
Java se compila para un intérprete Java llamado Java Virtual Machine (JVM) que traducirá
en tiempo de ejecución las solicitudes a la arquitectura concreta del host. Esto permite
portar el software a cualquier plataforma que tenga la JVM. Este concepto tiene una filosofía
compartida ya que hay una capa intermedia entre el sistema operativo y el hardware para
las aplicaciones que se desarrollan con esta tecnología, pero no al mismo ámbito de la
virtualización de los recursos hardware del concepto de máquina virtual de los 70.
Pero de nuevo en los años 90 nos encontramos que estaba llegando al momento en que la
unidad de proceso central empezaba a desaprovechar recursos. Llegando a una situación
similar al de los años 60 con la excepción de que el hardware se había abaratado, pero las
posibilidades de virtualizar sistemas obsoletos, entornos de desarrollo para pruebas de
otros entornos ganaba interés. Aquí es donde la virtualización se retoma de nuevo.
VMware se hizo popular con la virtualización de servidores x86 en 1999 [42]. Desarrollando
una técnica que interfiere, adapta y convierte en instrucciones seguras aquellas que puedan
comprometer el espacio de usuario para la VM, dejando el resto de instrucciones trabajar
de forma original en binario sobre el hardware.
La virtualización ofrece grandes mejoras y ventajas respecto a un sistema de hardware
nativo que destacamos:
Ahorro: Mejora substancialmente el aprovechamiento de los recursos de hardware,
lo que se traduce en un gran ahorro en cuanto a coste del hardware y también un
ahorro en cuanto a energía consumida y espacio.
GreenIT: Al reducir el número de máquinas, reducimos la cantidad de energía
utilizada, no sólo en alimentar el servidor sino que también se reduce el consumo de
refrigeración tanto eléctrico como las emisiones de aire caliente.
Flexibilidad: En una misma máquina podemos tener funcionando juntos un sistema
operativo Windows y un sistema basado en GNU Linux.
Escalabilidad y tiempo de funcionamiento: La virtualización ofrece un sistema
totalmente homogéneo a las máquinas virtuales.
Dependiendo del hardware y del sistema operativo podemos distinguir hasta cuatro tipos
de virtualización diferentes:
Emulación o simulación: el sistema operativo padre simula un hardware completo,
esta simulación hace que el rendimiento de la máquina virtual sea bastante menor.
Virtualización a nivel de Sistema Operativo: Algunas comunidades no lo incluyen
dentro de la definición de virtualización como tal, porque se basa en crear celdas de
usuarios independientes, sin acceso entre ellas pero que comparten el mismo
sistema operativo y aplicaciones.
Paravirtualización: la máquina virtual no simula un hardware, sino que ofrece una
interfaz al sistema que sólo puede usarse mediante la modificación del kernel del
sistema operativo de la máquina virtual. . La paravirtualización se utiliza
únicamente con sistemas operativos basados en GNU/Linux y BSD, ya que estos
permiten la modificación del kernel, en el caso de Windows y MAC OSX no es posible
ya que al ser propietario no es posible estas modificaciones.
Virtualización nativa o completa: la máquina virtual simula un hardware
subyacente completo para permitir instalar un sistema operativo sin modificar en
la máquina virtual. La Máquina Virtual desconoce la existencia del entorno
virtualizado y como no requiere ser modificado es posible instalar cualquier sistema
operativo compatible con el hardware.
Las mejoras en el hardware con propósito específico (virtualización asistida por hardware)
han permitido que una máquina virtual se ejecute en un anfitrión sin incurrir en
penalizaciones de emulación y sin hacer modificaciones en el sistema operativo huésped.
El panorama de las herramientas de virtualización ahora es muy amplio y con diferentes
posibilidades tales como virtualización completa de sistemas operativos o virtualizaciones
parciales para procesos concretos. [2][7][25]
1.2. LA RED
Entre los significados de la palabra red reseñamos el de conjunto de elementos organizados
para determinado fin. Sin embargo, a aquellos que estén familiarizados con las nuevas
tecnologías (no necesariamente en el ámbito de la ciencia) hablar de la red, seguramente
estarían refiriéndose a Internet.
En nuestro propósito vamos a concretar la definición general refiriéndonos a la
interconexión de redes o al término suficientemente acuñado networking para definir red
como un conjunto de dispositivos (interconectados) que pueden comunicarse los unos con
los otros mediante el uso de algún protocolo.
Mucho han cambiado las expectativas de uso de Internet desde su desarrollo en la década
de los 70. El protocolo IP (Internet Protocol) recogido el RFC 791, es el que
organiza/estructura a los elementos que conforman la Red. Se diseñó utilizando
direcciones de 32 bits, que permiten identificar hasta unos 4 mil millones de terminales
diferentes. Terminales que antes no se pensaron fueran a cambiar en la infraestructura de
forma continua. Señalamos esto porque, aproximadamente un 71% de la población mundial
tiene teléfono móvil (cinco mil millones de personas), vemos una rápida evolución si lo
comparamos con años anteriores destacando que a finales de 2008 esta cifra rondaba el
cincuenta por ciento y que actualmente el número de estos usuarios con conexión a Internet
móvil es de aproximadamente de 2 mil millones y crece diariamente [105]. Este
crecimiento ha repercutido en las necesidades de ancho de banda (que ha sido el
Comenzando por los contras actuales, a continuación se enumeran los puntos más
relevantes que nos conducen a cambiar el planteamiento del actual modelo masivamente
implantado:
Direccionamiento
Además de NATs, se han introducido otros elementos intermedios, como por ejemplo,
los firewalls, proxys y cachés transparentes, que introducen aún más problemas para el
diseño y correcto funcionamiento de muchas aplicaciones.
Privacidad
Internet está compuesto por dos espacios de nombres, direcciones IP y nombres FQDNs
(Fully Qualified Domain Names) que utilizan los DNS (Domain Name Server) para
resolver la dirección IP asociada. Las direcciones IP son usadas tanto para referenciar
las interfaces de red como los nombres de las localizaciones de los servicios o equipos.
Además, las distintas interfaces de los dispositivos disponen de distintas direcciones
IPs, y estas IPs pueden variar cada vez que el terminal se conecta a la red. Los espacios
de nombres actuales acarrean tres problemas principalmente:
Multihoming
Host Movility
Control de Acceso
Privacidad
El actual uso de una dirección IP para identificar origen y destino además de para
encaminarlo (localizador) presenta hoy día problemas de privacidad ya que la
información de emisor y receptor viaja en el mensaje que puede ser trazado e incluso
interceptado, esto puede tener consecuencias con respecto a la integridad de los datos
o a la seguridad que esta información puede revelar a atacantes.
La masiva implantación de este modelo, desde el punto de vista de la ciencia lastra la mejora
de una arquitectura de Internet que desde las perspectivas de consumo actual necesita un
rediseño, las necesidades son distintas a las de su origen. Visto desde otro ángulo con la
explotación masiva de la infraestructura actual resurge la necesidad de plantear soluciones
acorde al uso que hacemos de la red hoy y que haremos en el futuro. Finalmente acaban
adoptándose “parches” que requieren modificaciones y compatibilidad hacia atrás para una
evolución del modelo, ahora móvil y que demanda flexibilidad, como reflejan las cifras
anteriores de usuarios conectados a servicios a la red.
La convergencia a que todo sea accesible desde Internet esta acoplada a la dirección IP que
tienen asignada los terminales que participan en la red. En escenarios que requieren
cambios (posición, medio de trasmisión, domino, etc.), supone que, reiteradamente estemos
Una red a nivel superior overlay que resuelva los problemas subyacentes y prorrogar
la adaptación de forma progresiva hacia niveles inferiores, dependiendo del éxito.
Hoy en día conocemos algunos modelos de redes con un fin concreto (centradas en la
información que trasportan) superpuestas sobre la capa de transporte sobre un red
subyacente heterogénea. Esta abstracción del nivel IP, conocida como redes overlay
también funcionan aplicando almacenamiento y reenvío de paquetes entre agentes de
la red overlay. Ejemplos de este tipo de redes conocidos fueron creados con el propósito
de diseminar información como Akamai CDN, BitTorrent, Skype, Joost, etc.
Virtual Networks
El punto de vista que este trabajo plantea es el de Virtual Networks, este concepto como
mencionábamos presenta desafíos para abordar nuevos escenarios y para mitigar el
impacto hacia un modelo de futuro. Es importante seguir fomentando la evolución del
Internet actual, teniendo un impacto positivo en la forma como millones de personas viven,
trabajan y se comunican.
La principal razón del éxito del modelo actual de internet es que la red no tiene
conocimiento acerca de las aplicaciones, es decir las funciones de aplicación reside en
los nodos finales. Internet interconecta muchas tecnologías diferentes e IP es el protocolo
de trasporte mejor soportado.
Esto deja puerta abierta a la innovación por un lado, es bueno si realmente el operador de
la red no le interesa que la red tenga conocimiento de las aplicaciones, pero sin embargo
esto puede ser un factor importante con motivos de optimizar el rendimiento según la
aplicación, dispositivo cliente, mejoras de seguridad, asuntos legales entre otros.
Con estos puntos en cuenta analizamos la tendencia de uso del actual modelo y los focos
emergentes en vías de aplicar una heurística con la que plantear una adaptación menos
disruptiva que la tendencia clean slate.
Vemos como la red con diferencia de lo ocurrido con el hardware en los centros de datos no
ha sufrido una transición profunda. Esto, genera un cuello de botella a las mejoras que
aporta la virtualización y el actual despliegue de Internet. Actualmente el paradigma está
obligando al modelo a evolucionar la manera de definir las redes. La comunidad que
investiga en el desarrollo de alternativas a las redes tradicionales trabaja en el concepto de
Software-Defined Networking que rompe con el modelo convencional donde la red decide
qué acciones lleva a cabo, desacoplando plano de control (control plane) que administra
toda la información correspondiente a la red en sí misma y hace operativo el plano de
datos, aquel en el que se ejecutan las operaciones necesarias para el reenvío de tráfico
(forwarding plane). Planteando una transición del modelo basada en la virtualización de
la red y la extensión de esta según el concepto de Overlay Networks mencionado
anteriormente.
El concepto de red virtual distribuida puede ser entendido como una red virtualmente
extendida a de nivel de enlace según el modelo de referencia OSI, desplegada sobre los
sistemas operativos de una infraestructura física distribuida geográficamente, pudiendo ser
esta pública o privada. Esta capa “elevada” compatible con Ethernet es compatible con la
virtualización de sistemas que pueden utilizar estos nuevos recursos virtuales para
interconectarse.
La virtualización de aquellos subsistemas necesarios para networking surge como una
tecnología complementaria a la virtualización de sistemas ; permitiendo de manera más
sencilla movilidad de equipos entre redes dentro de un mismo host, escalabilidad,
flexibilidad de crecimiento, una herramienta genérica para montar escenarios de pruebas
para modelos de red y producción, reconfigurable, superpuesta a la capa de aplicación,
capaz de dividirse a su vez con VLANs (Virtual Local Area Networks), con preservación de
la privacidad, con usos en entornos de aplicación que interconectan de forma transparente
con otras redes (virtuales o físicas), desafiar a los problemas de mantener sistemas que
requieren de redes con direccionamiento IPv4 que coexistan sobre redes IPv6 , mitigar la
fragmentación de la red y otras que pueden surgir con redes de nueva generación y la
tendencia actual de trasladarlo todo a servicios y disponibilidad móvil.
Los Hypervisors 80x86 introducidos en los noventa implementan puentes de red en
software. Estos bridges no permiten habilitar o aplicar políticas al tráfico, es decir, el tráfico
entre máquinas en el mismo host físico pasa directamente de VM a VM, por lo que los
administradores de toda red no tienen oportunidad de manejar o controlar el tráfico por las
VIF (virtual interfaces).
Nuestro objetivo hace hincapié en el concepto distribuido que nos permite crear estos
espacios de red, conectar, desconectar y ampliar sencillamente por software, creando redes
escalables y distribuidas a la vez. Tal que, podamos construir una red virtual extremo a
extremo superando las heterogeneidades del nivel subyacente.
Las primeras propuestas que hablan de capas aisladas, elevadas en el nivel de aplicación y
extremo a extremo, surgen de los precursores de modelos disruptivos al modelo Internet
diseñado hace más de treinta años [5], con fines de llegar a soluciones para propósitos
concretos y generales. Así las primeras propuestas de Overlay Networks como RON [38],
VIOLIN [35], VIGO [37] entre otras.
Con las mejoras del kernel para Linux y las primeras técnicas de virtualización surgen para
escenarios de laboratorio proyectos como User Mode Linux (UML). Son adoptados para el
modelado de escenarios de laboratorio ahorrando en recursos hardware en un mismo host,
con el proyecto VNUML (Virtual Network UML) y que consigue un mayor alcance en
colaboración de la herramienta EDIV [34] para laboratorios distribuidos y su última versión
ya que utiliza virtualización VNX [33]. Este último salto (en el que nos encontramos hoy
día), se consigue con el manejo de la para- virtualización y virtualización de hardware de
entrada salida, Libvirt [39], LibNetVirt [104 ], Virt-IO [28] y UMView [11] son algunos de
estos importantes avances de este campo.
Actualmente el equipo del proyecto virtualsquare sobre el eje principal de VDE (Virtual
Distributed Ethernet) [2] ha desarrollado un framework de componentes y herramientas
para crear redes virtuales compatibles con Ethernet que son desplegadas sobre equipos
físicos aislados o distribuidos por Internet. Es un proyecto de código abierto impulsado
principalmente por la universidad de Bolonia (Italia) y que es ya soportado para la
virtualización de sistemas con herramientas como KVM [24][28] (Kernel Based Virtual
Machine proyecto emergente de Red Hat™) y VirtualBox™[18] ( adquirida por Oracle™ con
una importante comunidad de desarrolladores para la versión de código abierto) ambas
sobre sistemas GNU/Linux. Este proyecto tiene un importante valor didáctico y práctico
para construir redes virtuales distribuidas compatibles con el hardware existente, quizás
por esta causa ha sido que no ha calado al sector de la industria que realiza sistemas para
electrónica de red y circuitos integrados para aplicaciones específicas (ASICs). Un
compromiso más “cercano” entre software (ya sea este de virtualización o no) y hardware
aporta generalmente mejor eficiencia en el rendimiento además de cuanto más específico
sea para el propósito que quiere desempeñar. No es un tema que se discuta aquí pero que
comprendemos es una premisa a la hora de adoptar soluciones y tendremos presente para
hallar un compromiso según el ámbito (investigación o producción) de rendimiento y
compatibilidad.
A grandes rasgos la otra gran vertiente al concepto de virtual distributed networking la
ofrecen el tándem formado por la compañía de virtualización VMware™[8] y el fabricante
mundial de hardware y software para telecomunicaciones Cisco Systems™. Juntos, ofrecen
su solución más completa en el producto VMware vSphere 5.0 Enterprise Plus Edition [29]
en la que Cisco incorpora su switch virtual con capacidad para conexiones distribuidas
Cisco 1000V [62] y VMware [17] añade mejoras de comunicación para interfaces virtuales
e integración con este switch distribuido. Entre las novedades de la última versión cabe
destacar el uso del protocolo de enlace LLDP (Link Layer Discovery Protocol) de
descubrimiento de red estándar del IEEE ya que en versiones anteriores únicamente
permitían el uso de CDP (Cisco Discovery Protocol) para integrarse con dispositivos Cisco
virtuales y físicos. Esta solución además de los costes de hardware y electrónica de red Cisco
para un mejor aprovechamiento del Hypervisor, tiene un coste de licencia muy elevado por
tratarse del producto más avanzado y completo de la compañía estadounidense.
La opción opensource al tandem VMware y Cisco es la apuesta que proviene la fundación
Apache formada por XEN Server 6.0 con Open vSwitch [19]. Concretamente este switch
virtual opensource contiene muchas de las características deseables para una nueva
generación de edge switches [3]. Open vSwitch se diseña para permitir flexibilidad en la
asignación de recursos, permite visibilidad y control del tráfico que maneja, aplicar políticas
y una gestión centralizada entre otras. Este último y relativamente reciente proyecto ha
evolucionado rápidamente, revolucionando e implicando a industria tecnológica y
universidades en la estandarización del protocolo OpenFlow (concepto previamente
introducido por Ethane orientado a redes empresariales en 2007) [9] con el objetivo de
definir redes definidas por software o SDN (Software Defined Networks) para
experimentación de nuevas arquitecturas y que supone un esfuerzo de hacer más flexible la
infraestructura de red del modelo rígido y “osificado” por el protocolo TCP/IP,
estandarizado en 1981.
Sistema Operativo
Hardware reenvío Sistema Sistema Sistema Sistema Sistema
especializado Operativo Operativo Operativo Operativo Operativo
Sistema Operativo
Hardware reenvío
especializado HW reenvío simple
Ilustración 5: Transición conceptual del modelo convencional al modelo de red definida por software.
Hay numerosos proyectos que participan en la evolución del Internet actual, teniendo un
impacto positivo en la forma como millones de personas viven, trabajan y se comunican. Y
como se deben prestar estos servicios para hacerlos más eficientes ininterrumpidos y
seguros.
Esta transición implica mejorar no solo las prestaciones sino la calidad en la gestión y
organización de la red de forma que resulte más eficiente y adecuada al consumo actual de
servicios. Estos retos serán con mayor certeza factores decisivos para grandes proveedores
de servicios, que participan activamente en la investigación crear y simplificar grandes
redes virtuales distribuidas.
Buscamos una solución que permita la escalabilidad en entornos multi-tenant, que una
máquina virtual pueda desplegar sus servicios en cualquier ubicación del centro de
datos, sin verse preocupados por las restricciones y limitaciones de las subredes a las
que están conectados los servidores.
Hoy día con los entornos virtualizados, aumentan las exigencias de tablas de
encaminamiento de switches. En lugar de una sola capa de enlace en cada dirección, la
infraestructura de red debe aprender las direcciones de enlace de las VMs
individualmente que podrían llegar a 100 por servidor. Esto es un requisito, ya que el
tráfico desde/hacia las máquinas virtuales al resto de la red física que conecta la
infraestructura.
Esto requiere más capacidad en el desempeño de los switches para gestionar estas
tablas, en comparación con los entornos no virtualizados. Causando más inundación de
paquetes y desbordamientos cuando las direcciones en uso sobrepasan la capacidad de
las tablas de encaminamiento.
Los operadores del centro de datos deben ser capaces de alcanzar una alta utilización
de los recursos de sus servidores y de las capacidades de la red. Para una asignación
eficiente y flexible, debemos ser capaces de extender una instancia virtual a través de
los servidores en cualquier rack del centro de datos. Esto se puede lograr extendiendo
las VLAN (hay trabajos sobre este asunto como TRILL o OTV) [46].
Sin embargo, con el fin de limitar el dominio de difusión (broadcasting) de cada VLAN,
las tramas multi-destino dentro de la misma VLAN deben estar optimizadas para que
solo circulen por aquellos dispositivos que tienen configurada esa VLAN. Con la
migración por cargas de trabajo, la red física puede necesitar reconfiguraciones que
típicamente requieren tiempo y son propensas a errores (ej. Listas de control de acceso,
encaminamiento, etc.).
Dentro de los centros de datos no todas las comunicaciones serán VM-VM. Continuarán
utilizando para propósitos específicos servidores físicos, routers tradicionales para
proveer servicios VPN de nivel 2 y 3, balanceadores de carga, firewalls, sistemas de
detección de intrusiones, etc. Esto no podemos obviarlo y considerar que la capa de red
virtualizada debe ser compatible con los sistemas existentes.
Es evidente que no puede actualizarse todo Internet en un día, es como cambiar las alas
a un avión en pleno vuelo. Es obligatorio garantizar un periodo de coexistencia e incluso
tener en cuenta servicios que deban extinguirse sin migrarse.
Extender el ámbito de la red y concepto de extremo a extremo son aptitudes que se abstraen
del uso actual de internet y saca a la luz los problemas de diseño que lastran el desarrollo
actual de internet [6] [2] [7]. Considerar estas herramientas tiene un importante papel para
la investigación y la transición del modelo actual al modelo de Futuro Internet [4], como se
llama en investigación a los desarrollos en investigación para el Internet de Futuro. Para
esto será necesario crear dominios de pruebas y la coexistencia de las redes de nueva
generación con las actuales.
Durante los últimos años han surgido diferentes enfoques para extender la red creando
redes Overlay Networks y/o virtualizar a nivel de enlace para cubrir las limitaciones del
modelo actual. Regidos en su comportamiento por la osificación sobre la pila de protocolo
IP resultando poco flexibles. Señalar algunos proyectos para extender la red como VXLAN
(Virtual eXtensible LAN), L2VPNs (Level 2 Virtual Private Networks) y que destacan en busca
de un desacoplamiento lógico y físico de la red como VLAN (Virtual Local Area Network) con
hasta 4096 (12bits) para identificadores VLAN. TRILL (Transparent Interconnection of Lots
of Links) interesante proyecto basado en Routing Bridges pero con inconvenientes de
aplicabilidad [55 ] y LISP (Locator/Identifier Separation Protocol) como alternativa de
encaminamiento que destaca los problemas del acoplamiento identificador y localizador en
la red del modelo IP soportado por CISCO. [46]
Ilustración 7: Slicing de la la red: Separación del tráfico del producción del de experimentación a su vez subdivididle
en subespácios.
¿Por qué esta arquitectura va a tener más calado que otros proyectos para su implantación
en una infraestructura tan grande como Internet? El principal punto a favor de SDN es que
cuenta con el apoyo del sector industrial. Fabricantes de hardware, electrónica de red,
telefonía y proveedores de servicios participan. Esto puede considerarse relativamente
bueno en algunos aspectos y negativo en otros, como en el de la estandarización y el
desarrollo de interfaces abiertas. Con la creación de proyectos alternativos propietarios en
torno al mismo concepto pueden surgir intereses propios en lugar de aunar un interés
común ante un desafío tan grande como el FI (Internet del Futuro).
La red definida por software o Software Defined Network, es el modelo reglado que tras un
profundo estudio antes y durante el desarrollo de este documento hemos escogido como
nexo con las redes de nueva generación y futuro de Internet.
Disponemos de software y equipamiento hardware con prestaciones duales para explorar
con esta arquitectura de red y desplegar un sencillo servicio de ingeniería de tráfico de
red centralizado utilizando el protocolo OpenFlow. Otras perspectivas para el mismo
problema puramente virtualizadas no han implicado al sector industrial y no han tenido el
calado de SDN aunque el marco teórico sea muy coherente. Veremos además que
tecnologías soportan este marco teórico y porque SDN permite la coexistencia y renovación
del modelo IP siendo una solución compatible “hacia atrás y hacia adelante”.
Los primeros testbeds o bancos de pruebas han surgido en torno a las universidades
formando lo que habíamos bautizado en la introducción el ARPANET contemporáneo de la
arquitectura de red definida por software. Proyectos como VIOLIN, PlanetLab, Emulab VINI,
GENI, OFELIA o FIBRE. [35][36][51] son algunos ejemplos. Concretamente nos extenderemos
en el siguiente capítulo en el proyecto europeo Ofelia.
A la hora de buscar escenarios ventajosos “no experimentales” donde pueda adoptarse el
modelo de red definida por software puede parecer evidente si miramos las necesidades
que cubre. Grandes centros de datos, proveedores de servicios en la nube (término acuñado
que hemos repetido para servicios distribuidos disponibles en Internet) o proveedores de
servicios ISPs que requieran de un alto grado de disponibilidad de sus servicios están
obligados a mantener una infraestructura de red flexible de área extensa. Aquellos que
pretendan innovar en mejorar la gestión reduciendo la complejidad y los costes para crecer
o disminuir las prestaciones de los mismos, optarán por la abstracción del control de la red.
Otros escenarios menos evidentes pueden ser interconectar redes para propósitos
específicos a Internet, refiriéndonos a redes de sensores, redes vehiculares o redes
comerciales.
Estos principales nodos proveedores de servicios distribuidos además de balancear las
necesidades de sus usuarios y garantizar la disponibilidad de los mismos se extienden
geográficamente adoptando un esquema de red virtualizado como el de la figura 10
estableciendo grandes planos transversales de control de la red. Esta abstracción de la
tecnología de encaminamiento permite con las modificaciones en las tablas de flujo
correspondientes reconducir el tráfico para reducir costes energéticos, desconectar
equipamiento en horas valle, mantenimientos en el plano de encaminamiento y/o mejorar
la tecnología hardware subyacente preparada para el Internet del Futuro (por ejemplo
mejorando la implantación del protocolo IPv6) o mejorando la eficiencia del plano de
conmutación para propósito más específico.
La gestión de la red como un tejido virtual en lugar de como una colección de cajas
individuales nos enseña la vista horizontal de esta arquitectura, esta abstracción de Overlay
Networks independientes del protocolo, basadas en un estándar de interconexión
(OpenFlow es el candidato más avanzado en esta área), con gestión centralizada, que facilite
el crecimiento y la interconexión, es la ruptura con la osificación del modelo tradicional IP
y es un importante paso de transición.
En SDN quizás el dispositivo del que más se habla es el switch de red, de los switches
ethernet en particular. Por años, los switches ethernet han crecido en velocidad y densidad,
proporcionando a los centros de datos uplinks para sus hosts, blade centers y
almacenamiento a través de ethernet. Con el advenimiento de la virtualización de servidores
gracias a los hipervisores, el switch software también se ha hecho importante, agregando
tráfico y sacándolo fuera del hypervisor hacia la red física.
SOFTWARE-DEFINED NETWORK
Ilustración 8: Diagrama general arquitectura SDN, el plano de control que tiene toda la lógica SDN que separa
la infraestructura de encaminamiento de las aplicaciones.
SDN básicamente se auto define con tres abstracciones: abstracción distribuida, reenvío
o forwarding distribuido y configuración distribuida. OpenFlow concretamente es una
implementación o un detalle para implementar este modelo de redes definidas por
software. Veamos con detalle las principales propiedades de la arquitectura SDN:
automáticamente con programas SDN que pueden ser escritos por los propios
administradores y no dependen de software propietario.
o Basada en estándares abiertos e independientes de fabricantes: Cuando se
implementan estándares abiertos, las instrucciones del controlador SDN pueden ser
entendidas a múltiples aplicaciones y dispositivos compatibles con el estándar
independientemente del fabricante.
OPENFLOW
En una red OpenFlow puede haber un controlador (OpenFlow Controller o OFC) por
switch o un mismo controlador puede estar ligado múltiples switches para gestionar
una red completa. Esta red OpenFlow puede ser virtualizable de forma que cada
aplicación reciba parte de los recursos del switch OpenFlow, que serán un grupo de
puertos y parte del espacio de encaminamiento del termino flow space. Varios switches
virtuales conectados entre ellos se denomina una porción o rodaja de la red, del termino
slice of network que utilizaremos indistintamente y encontramos en la documentación
en este ámbito. Esto por ejemplo nos permitirá utilizar un slice para tráfico en
producción y otro slice (1...N) para experimentación con nuevos protocolos, gestión de la
red, otras redes de carácter Overlay o diseñar mejoras sin comprometer una proporción
de red a la otra.
Este controlador tiene al menos una tabla de entradas Flow Table con la que comprará
el tráfico que reciba, comparándolo con las entradas o flow entries. Un mismo OFC puede
manejar varias tablas según los espacios virtuales que gobierne.
Ilustración 10: Arquitectura SDN plano de Control y Datos, esquema de red definida por software con
centralización y agente o bróker para la ingeniería del tráfico definida por software para la interconexión
de sitios a gran escala. [57]
Ilustración 11: Ejemplos de entradas de encaminamiento según los campos que maneja de cada tipo de equipo
y las acciones que determina. En términos de flows manejamos para decidir por donde encaminar información
de distintos niveles del modelo IP, esta abstracción es muy potente para simplificar la gestión de
encaminamiento y la seguridad.
Experimentar con escenarios de red, crear laboratorios con un cierto realismo con el
propósito de recrear el modelo SDN es posible utilizando equipos PC con tarjetas de red
multi-puerto o varias tarjetas de red, que podría alcanzar a una capacidad conmutación
aproximada de hasta 5 Gbps [81]. Otra alternativa son las tarjetas programables tipo
NetFPGA para investigación, aunque el desarrollo e implementación es difícil y el entorno
tiene sus limitaciones, OpenFlow se ha desplegado en estas tarjetas y esta trabajado y
documentado [61], existen espacios de experimentación SDN con esta tecnología (el
proyecto GENI comenzó así y algunos centros universitarios que participan en la red
Europea Ofelia utilizan equipamiento con NetFPGA en sus islas).
Ilustración 12: Vista de conmutación de paquetes con soporte hardware para la virtualización de interfaces de
red.
Cisco System por ejemplo mejora con una solución hardware-based en combinación
del software hypervisor que el tráfico de las VMs pase por el dispositivo conectado a la
red directamente. Distribuye tarjetas controladoras de red optimizadas para
virtualización [61] (basado en el mismo estándar que VN-Tag). Los equipos anfitrión que
las equipan en conjunto con VMware ESX® mejoran la integración y prestaciones del
switch virtual software de este hypervisor, es la solución Cisco Nexus 1000V ® que
reemplazó al VMware’s distributed switch. Si no se utiliza este equipamiento hardware
específico de Cisco, el hipervisor intermedia las conexiones entre las VMs y el switch
virtual Cisco Nexus perdiendo eficiencia.
Regresando a OpenFlow, hemos visto que es el protocolo que actúa entre el plano de
control y el de datos. Los llamaremos indistintamente plano de conmutación, de datos
o datapath, en él podemos encontrarnos con lo siguiente:
Elegir hardware preparado para SDN a día de hoy no es cuestión baladí. Debido
principalmente a que hardware de la red actual no está diseñado para un plano de
control desacoplado. Sin embargo el lanzamiento de la especificación OpenFlow v1.0
junto con la demanda de aplicar esta tecnología ha llevado a fabricantes a proveer
equipos de networking OpenFlow. Utilizando plataformas hardware ya existentes, los
fabricantes han realizado modificaciones en sus sistemas operativos de red (NOS)
analizando e interrumpiendo el proceso comprendido de fases secuenciales normal y
bifurcando su flujo de comportamiento para flow packets que se procesaran
independientemente. Esta arquitectura llamada comúnmente en pipeline en el ámbito
de arquitectura de computadores separada se llama OpenFlow pipeline, el proceso de
encaminamiento normal se lleva a cabo en el pipeline del equipo de nivel 2, nivel 3 o
nivel 4 según sea. A este tipo de swicthes que soportan la operación de dos tipos son
denominados Hybrid OpenFlow Switches, frente a los que irán surgiendo que solo
realizan operaciones en su pipeline OpenFlow.
Con el fin de lograr este nivel de flexibilidad se realizan switches mejorados para este
propósito más específico, esto requiere también flexibilidad y rendimiento en el manejo
de sus tablas de reenvío. La solución rápida que se ha adoptado para las primeras fases
de experimentación y pruebas en el hardware real, se está aprovechando las memorias
de contenido direccionable que incorporan Ternary Content Addressable Memory.
TCAM se presta naturalmente a ser el gran aliado para la instanciación de flujo desde un
controlador SDN e inyectar entradas de reenvío con un alto grado de flexibilidad a través
de varios campos de las cabeceras Ethernet e IP. Por ejemplo, 10-tupla OpenFlow v1.0
con los campos Ingress Port, Ethec Src, Ether Dst, Ether Type, Vlan ID, IP Dst, IP Src, TCP
Dst, TCP Src, IP Proto. [72]
Por lo tanto, podemos decir que OpenFlow es meramente un mecanismo que explota las
tablas TCAM extendiendo las capacidades para manejo de flujos de datos. Con esta
función se consigue que un switch que para aquellas coincidencias en su flujo de entrada
realice una acción, es decir para un operador o ingeniero de la red esto es similar a
decidir rutas basándose en unas políticas de comportamiento. Ahora podemos
desacoplar la lógica y desde un agente administrador externo indicar el comportamiento
en término de flows a través de un socket TCP, utilizando un protocolo de mensajería
estructurado para describir la política de comportamiento y las reglas para los flujos que
insertamos en la memoria TCAM.
El ingeniero de la red debe conocer las particularidades para un buen diseño y conseguir
así el mejor desempeño a las prestaciones actuales de SDN con Opeflow. El segundo factor
en el que vamos a interesarnos para mejorar el rendimiento en la búsqueda y manejo de
entradas de flujos es el escalado de la red. Según diferentes autores se denomina a este
escalado del tráfico en macroflows y microflows o también llamados coarse flows y fine
flows o granular flows, básicamente se trata de escalar el tráfico haciendo un reenvió de
paquetes según las condiciones de “filtrado” para la función de matching (comparación
de entradas con la tabla de comportamiento del switch) menos estrictas (más gruesas)
o más específicas (más finas) de las tuplas. A la hora de elegir reglas de la tabla de flujo
proactivas, será muy importante la utilización de normas de tamaño apropiado, a fin de
superar la longitud y anchura de las tablas de flujo TCAM.
Ilustración 15: La granularidad y separación en el plano de datos en flujos bastos y finos para mejorar el
coste de procesamiento y tiempos de encaminamiento [63].
Fine o Granular Flows, significa que las reglas de la tabla de flujo son muy precisas y
coinciden en un conjunto muy específico de tráfico. Podríamos comparar este modo al
comportamiento de rutas en IPv4 para reenvío, dado que las redes OpenFlow y SDN
operan mediante el reenvío de flujos basados en tuplas OpenFlow , recordamos que estas
permite mucha más granularidad. Puede significar un juego de valores específicos en
campos que van a través de Ethernet (L2-Datos), IP (L3 Red), TCP / UDP (L4-
Transporte). Esta implementación para conseguir un alto nivel de eficiencia y de
particularidades requiere de Granular Flow Processor – multicore NPUs. Supongamos el
caso extremo siguiente, equipamientos ASICs para mantener todas las tablas de Internet,
no sería viable aunque imaginemos que fuesen los prefijos /24 “solamente”. Es necesario
resumir estas tablas con prefijos de forma gruesa que redujésemos el reenvío y el tamaño
de las tablas en lugar de potenciar rutas a host.
Coarse Flows se refiere a que coincide con una amplia gama de flujos. Esto se podría
asemejar a rutas predeterminadas para encauzar tráfico entre redes más amplias, lo que
requiere menos entradas de flujo. Así es como vamos a implementar SDN con hardware
limitado, utilizando proactive flows y separando adecuadamente el tráfico.
Si hacemos un repaso a los equipos según los niveles en los que actúan veremos mejor la
granularidad que conseguimos con en encaminamiento o reenvío basado en flows.
Ilustración 16: Contraste de aquellos aspectos generales a tener en cuenta en el diseño para una red con las
tecnologías que disponemos y que contribuyen al modelo de red definida por software [83].
Una vez señalado esto veamos algunos de los principales OFC con sus principales
características y que ventajas aportan a la red definida por software, siendo también
una forma de ampliar los horizontes de este modelo y ver las ventajas de este elemento
centralizado. Existen fuentes que recopilan aquellos proyectos que surgen en torno a
SDN y OpenFlow, donde descubrir algunas otras que no se tratan aquí [85] [84].
Es importante destacar que por encima del controlador existen aplicaciones para el
controlador que se conectan al él para enviar órdenes. Trabajar indirectamente con la
red mediante aplicaciones, ya sea, recopilando datos, a través de un servicio web o
aplicativo, leer/modificar/incorporar/quitar entradas de flujos o utilizar APIs para
integrarse con otros proyectos para compartir infraestructura, comprobar el estado de
los switches, conectar/desconectar puertos, validar decisiones administrativas que se
envían al controlador de la red e incluso métricas que ayuden a la ingeniería del tráfico
para definir la red. El desarrollo de aplicaciones sobre el controller permite innovar a un
nivel más alto ofreciendo mejores funcionalidades y con menor riesgo.
Floodlight experimenta una evolución continua y estable, con soporte industrial, que le
ayuda a convertirse en uno de los controladores más viables para un ecosistema OF bajo
nuestro criterio. Existen otras alternativas se pueden adaptar para satisfacer sus
necesidades, según el proyecto que se vaya a finaliza y seguro que esta no es la definitiva.
Se empieza a buscar la estabilidad y evitar limitaciones de algunos de estos proyectos
con gran perspectiva pero aún inmaduros o con poco mantenimiento de su comunidad.
Señalamos también POX, que es interesante por su naturaleza y carácter didáctico. Con
la parametrización de lógica de control al controlador definida en lenguaje python. POX
simplifica la forma de definir el comportamiento de la red definida por software,
veremos algún ejemplo sencillo ya que de cara a experimentar puede ser valiosa la
Tiene una No Si Si Si Si
comunidad
activa
Ampliamente No No Si Si No
Documentado
Soporta bucles No No No Si No
en la topología
Soporta No No No Si No
conexiones con
islas no-OF
Soporta No No No No No
conexiones entre
islas OF con
bucle
Soporte para No No No Si Si
OpenStack
Ilustración 17: Tabla comparativa con características destacables para decidirnos por un controlador
OpenFlow en nuestra experimentación
Los grandes proveedores de red “delegan” subconjuntos de hardware de red y/o tráfico
a otros operadores de red o usuarios. Si aplicamos estrictamente el concepto de
virtualización visto al principio a la red hemos denominado network hypervisor a lo
siguiente: el componente que gobierna los recursos asignados a cada cliente virtual de
recursos de red, entendiendo como anfitrión que vamos a dividir y aislar una red más
grande totalmente conectada.
OpenFlow dispone de un controlador de este tipo para hacer slicing de los recursos:
FlowVisor [65], es un network hypervisor desarrollado en Standford que actúa como
proxy entre el plano de reenvío y el plano de control de los dispositivos de red. Este
elemento permite que múltiples OFC puedan dialogar con múltiples switches.
Definiendo redes por software, utilizando como referencia OpenFlow 1.0, analizaremos
como el modelo SDN hace frente a los desafíos del apartado 2.1. Sobre un software de
experimentación local y sobre el despliegue real del proyecto FP7 Ofelia, a través del acceso
facilitado por la fundación i2Cat (Barcelona).
Con el análisis de la herramienta escogida pretendemos experimentar los siguientes puntos
que se abordan en la teoría:
Naturaleza dinámica
o Solicitar/cambiar recursos dinámicamente
o Escalabilidad
Vista unificada de los recursos sobre una capa elevada
o Concepto de red Overlay
o Gestión unificada y simplificada
Implementaciones software y hardware
o Virtualización de los recursos
o Experiencia plano de control y datos desacoplados
o Vista hacía una transición/actualización de niveles inferiores
Encaminamiento basado en túplas avanzadas
o Red basada en flows
o Comunicaciones inter domino
Gestión/análisis del tráfico virtualizado
o Problema en la virtualización de red en hipervisores convencionales
o Reutilización de equipamiento actual
En el siguiente capítulo expondremos escenarios prácticos tipo. A día de hoy con algunas
limitaciones pero sin perder de vista el objetivo de utilizar SDN como caso de reflexión
hacia el Internet del Futuro. Tengamos en cuenta que OpenFlow no es SDN pero es la
irrupción real para al modelo.
Haciendo uso de Mininet [49] como software de emulación para definir redes virtuales en
un equipo local, se convierte en una interesante forma de comprender el funcionamiento
con esta herramienta didáctica y para experimentación. Después con el despliegue real del
proyecto FP7 Ofelia, con el propósito de concluir aspectos ventajosos y contras de este
modelo de red haciendo referencias a los propósitos del Internet del Futuro.
Es fundamental conocer la lógica de comportamiento en el procesamiento de entradas en
un switch OpenFlow. Este comportamiento vendrá dado por la versión del protocolo OF
que implemente y podremos comprobarlo en la especificación del mismo a la hora de definir
la red. En la mayoría de equipamiento hardware actual esta implementada la versión 1.0,
es la que hay desplegada en el equipamiento del proyecto Ofelia. Es comprensible que la
versión que encontremos en dispositivos de fabricantes vaya un paso por detrás en favor
de no comprometer la estabilidad ni la imagen de marca, en comparación con la versión que
podemos encontrar en compilaciones propias sobre hardware programable e la
implementaciones software como las del referente Open vswitch. A partir de la versión 1.2
se cuenta con soporte completo para direcciones y tratamiento de las cabeceras IPv6,
podremos probar estas compilaciones en escenario local con la herramienta MININET.
Ilustración 19: Diagrama del flujo de paquetes a través de un switch de OpenFlow versión 1.3.2. Función de
matching.
Ilustración 20: Diagrama del flujo de paquetes a través de un switch de OpenFlow versión 1.2. Función de
matching.
En los siguientes apartados, ponemos en práctica las herramientas que hemos mencionado
para nuestro laboratorio práctico utilizando para el despliegue de topologías Mininet y FP7
Ofelia gestionando una infraestructura real. Representaremos un escenario tipo donde
enviemos tráfico en una red virtualmente distribuida definida por software, según una
filosofía reactiva y proactiva definiremos ejemplos de comportamiento para flujos de
entrada. No olvidemos que uno de los esfuerzos de este modelo es la gestión simplificada
de la red y así lo hemos querido transmitir con una selección de herramientas. De entre las
evaluadas hemos conformando una vista completa al lector de los elementos del diagrama
de bloques de la ilustración 18. Aproximar estos escenarios a la casuística del Internet del
Futuro, verificando tramas de datos y analizar la red usando las mismas herramientas de
captura de tramas y análisis de rendimiento de la red convencional acercando el modelo
tradicional a este.
Mencionaremos a partir de ahora comandos y/o parámetros necesarios para los escenarios
que planteamos, indicamos las referencias a las especificaciones y tutoriales para
profundizar en este ámbito. Las pruebas aquí realizadas se han ejecutado y probado antes
de mostrar los resultados, con el objetivo de experimentar el comportamiento teórico y
obtener conclusiones.
Ilustración 21: MiniNet crea una red virtual creando procesos en el host por cada espacio de nombres de red y
conectándolos virtualmente como pares Ethernet (Veth). En este ejemplo, se conectan dos host a un OpenFlow
switch en espacio de usuario [49].
Hemos utilizado la versión preinstalada sobre una máquina virtual denominada mininet-
2.0.0-113012-amd64-ovf disponible desde la web del proyecto Mininet. Incluye la versión
estable Mininet 2.0.0 [59]. Instalada en máquina virtual con sistema operativo GNU Linux
Ubuntu 12.10 64bits sobre VirtualBox. Recomendamos esta instalación porque ha sido
configurada y testada por los propios creadores en Standford, con las ventajas añadidas de
desplegar el laboratorio virtualizado para experimentación, solo requiere un equipo
anfitrión con sistema operativo 64bits y VirtualBox [18]. Destacar que la versión MININET
2.0.0 (nov, 2012) o MININET HiFi (denominada así en numerosos documentos de
experimentación), ha soportado numerosas evaluaciones de rendimiento y fidelidad para la
recreación de entornos de red, destaca además por sus significantes mejoras de estabilidad
y rendimiento con respecto a la anterior.
Un ejemplo de crear una red con 9 switches y 64 equipos conectados tardó unos 5 segundos.
Utilizando la máquina virtual GNU Linux Ubuntu preconfigurada por Stanford para Mininet
con VirtualBox [18], dando acceso a un núcleo del procesador y 1024MB de memoria RAM.
El equipo anfitrión es un ordenador personal portátil con procesador Intel® Core™ i5-
2520M, 8GB de memoria Ram DDR3 y disco duro de estado sólido.
sudo mn —custom mytopo.py —topo mytopo —mac –ovsk —pre myifconfig2.sh —controller remote
Ilustración 22: Comando para arrancar Mininet con una topología personalizada en mytopo.py, con simplificación
de las direcciones MAC secuenciales con la opción –mac, y cargando la configuración de los equipos (ifconfig)
conectados a la red --pre (sino se pone por defecto o se puede poner después), por último queda preparado para
controlador remoto. [59]
Podemos comprobar cómo están conectados los equipos una vez desplegada la red con los
siguientes comandos.
Dump: Muestra información de los componente creados para la red y de los procesos
en espacio de usuario asociados en ejecución.
Ilustración 23: Con MiniEdit definimos una topología y directamente podemos ponerla en marcha para
experimentar.
Para los escenarios prácticos del siguiente capítulo hemos utilizado al menos dos switches.
Como escenario tipo de tráfico entre dos islas OpenFlow, que puede ser la interconexión
entre pods o dominios interconectados a través de tecnologías de extensión de la red de
nivel 2 como las que reseñamos en el Apéndice 5.1.
Ilustración 24: Escenario con los elementos básicos OpenFlow que simularemos dentro de un equipo portátil [49]
Instanciación Reactiva
Cuando un nuevo flow llega al switch, el agente software OpenFlow del switch realiza una
búsqueda en las tablas de flujos, ya sea una búsqueda ASIC o en una tabla de flujo software
si se trata de un virtual switch o vSwitch software, si no se encuentra ninguna coincidencia
para para este flow, el switch reacciona creando un paquete OFP (OpenFlow Packet) y lo
envía a su controlador solicitando instrucciones de comportamiento. Reacciona según el
tráfico y consulta al controlador OpenFlow creando una regla en la entrada de tráfico basado
en la instrucción que reciba. Esto puede ser demasiado costoso con unas cuantos cientos
de miles de entradas para mantener además de que genera mucho tráfico de consulta,
siendo costoso tanto para unidades de procesamiento equipadas en equipos de red + ASICs
(Network Processor Units) o en CPUs de propósito general para vSwitches.
Ilustración 25: Capturas del analizador de trafico Wireshark filtrando el tráfico OpenFlow en un escenario
MININET reactivo. Veamos la inserción de tramas FLOW MOD reactiva tras la generación de tráfico ICMP entre
los host 2 y 3.
#!/usr/bin/env python
log = core.getLogger()
table = {}
def _handle_dumbhub_packetin(event):
packet = event.parsed
Ilustración 26: : Código Python para definir el comportamiento de reenvío similar a un switch, definidos en el
directorio ../pox/pox/forwarding/l2_learning.py de la instalación de POX.
del controlador, transporte de mensajes y que arrancan un módulo aplicativo web para
representarla a modo de monitor de la red. Veamos en la figura las entradas que completa
con el tráfico ICMP generado entre todos los nodo.
Tras desplegar la red Mininet y lanzar con el comando pingall (propio de Mininet) lanzamos
una comprobación de ping de todos a todos. La generación de tramas de descubrimiento
genera información de cómo están conectados los elementos al switch y el controlador
recopila toda la información de los mensajes que intercambia para formar entradas de
flujos, representadas en con el módulo de representación web POXDESK [88] que actúa de
monitor.
Ilustración 27: En la línea de comandos lanzamos POX con las aplicaciones correspondientes para el ejemplo. En
el navegador web POXDESK muestra la información recopilada para cada switch, tras haber generado paquetes
de comprobación en consola entre todos los equipos de la red.
Instanciación Proactiva
El reenvío proactivo, permite al ingeniero de tráfico instalar reglas de flujo ajustables para
reenviar, reescribir o descartar tráfico. Potenciales usos por ejemplo son las políticas de
cortafuegos para procesar tráfico L2-L4 por puertos específicos, direcciones MAC o IP
Las reglas pueden ser instaladas para la transmisión selectiva de flujos dirigidos a puertos,
por ejemplo para monitorización de tráfico. Otro escenario podría ser a medida que nuevos
usuarios se conectan a la red, los paquetes pueden ser redirigidos a un servidor de
autenticación o un portal captivo (SNAC incluye un módulo con esta funcionalidad), lo que
podría añadir una política de seguridad basada en la identidad. El tráfico puede ser enviado
por vínculos particulares en función del precio del ancho de banda, la hora del día, la latencia
de controlador a cambio, mecanismos de encaminamiento ad-hoc o cualquier otra
restricción.
En los siguientes ejemplos vamos a utilizar Floodlight (versión estable 0.85). Esta es otras
de las ventajas de este modelo definido por software, y es que, el plano de control es
independiente al controlador que utilicemos, siempre y cuando implemente el protocolo
adecuadamente. Floodlight [60] es un proyecto con un importante apoyo del sector
industrial (particularmente de la compañía BigSwitch), utilizaremos la REST API para
intercambiar entradas con el controlador, los componentes que incorpora ofrecen mucha
información de topología y estado de la red. Es común encontrar ejemplos o referencias a
este controlador en experimentos, por su funcionamiento y su documentación oficial
además por ser además de los pocos que manejan situaciones con bucles [74] [72] [20].
Otra de las ventajas del modelo por software es que podemos añadir reglas de forma
centralizada al controlador para gobernar toda una red y no de forma individual en los
nodos intermedios, routers o firewalls de un modelo estático.
FloodLight por defecto incorpora el componente forwarding; para este escenario concreto
queremos un comportamiento de reenvió proactivo, lo que significa que el switch solo
enviará paquetes al controlador si tiene una entrada explicita que coincida y una acción con
instrucciones. El resto de paquetes no controlados en la miss-table serán descartados.
A continuación indicamos los pasos para excluir la carga de este componente al controlador
y compilar la aplicación Floodlight para nuestro entorno, hemos actualizado la máquina
virtual a la siguiente la versión Java 1.7.0.25 en la máquina de laboratorio Mininet.
Definimos la topología para el ejemplo con Mininet como vemos en la ilustración siguiente:
Ilustración 28: Diagrama de la topología definida para ejemplo utilizando una red puramente reactiva, definiendo
en los switches s1, s2 y s3 las entradas correspondientes para que h1 y h4 estén conectados. Para definir esta
topología con mininet y controlarla con Floodlight hemos utilizado el siguiente comando:
3. cd floodlight
4. vi src/main/resources/floodlightdefault.properties
7. ’ant’
Una vez que tenemos un controlador sin ningún comportamiento establecido por defecto
para el reenvío, utilizaremos la técnica de transferencia de estado representacional
denominada REST (Representational State Transfer) para establecer entradas en la tablas
de reenvió del controlador. Floodlight implementa esta aplicación en los componentes por
defecto para aceptar entradas según su REST API [74], modificaciones (flow mods) o
consultas de reglas de flujos. Para ello es necesario indicar para un switch la entrada
coincidente y acción a realizar.
Los campos para cada entrada y las acciones son las definidas en la especificación OpenFlow,
de nuevo referirnos a la especificación estándar ayuda a que el manejo de la red sea lo más
independiente de las aplicaciones, con la salvedades propias de los lenguajes de
programación o aplicativos que utilicemos. Existen extensiones propias de fabricantes a la
especificación estándar lo cual obliga a que si queremos utilizarlas el controlador tiene
también que implementarlas. Mediante el comando curl desde un terminal GNU Linux
como cliente transferiremos las modificaciones de flujo o flow mods en el formato de
marcas para intercambio de datos ligeros JSON (JavaScript Object Notation) utilizado en
servicios web. El controlador OpenFlow en este caso que actúa como un proveedor de
servicios en la comunicación e interpreta la entrada o push flow entry añadiéndola a sus
tablas directamente sin más interacción.
Otra opción en lugar de interactuar directamente con el controlador mediante la REST API,
es la de conectar un aplicación controlador (Controller Aplication) veasé la “pila” OpenFlow
de la figura 18, que interactúa por la API con el controlador.
La aplicación vinculada al controlador que vamos a utilizar en este caso Avior es un módulo
de control para Floodlight. Es un proyecto de código abierto desarrollado por el equipo
Marist OpenFlow Reserch Project e IBM. Avior fue diseñado para llenar un vacío en el ámbito
de la administración de Floodlight e impulsando el desarrollo de aplicaciones abiertas en
este ámbito. La aplicación se ejecuta de forma independiente del controlador y se comunica
con el controlador utilizando el REST API por defecto, equivalentes a si las introducimos
manualmente en el controlador, para los experimentos hemos utilizado la versión AVIOR
1.3 [89]
{”switch”:”00:00:00:00:00:00:00:02”,”name”:”allow_h1_s1”,”active”:”true”,
“priority”:”32000”,”actions”:”output=3”,”ingress-port”:”1”}
{”switch”:”00:00:00:00:00:00:00:02”,”name”:”allow_s1_h1”,”active”:”true”,
“priority”:”32000”, “actions”:”output=1”,”ingress-port”:”3”}
{”switch”:”00:00:00:00:00:00:00:01”,”name”:”allow_s2_s3”,”active”:”true”,
“priority”:”32000”, “actions”:”output=2”,”ingress-port”:”1”}
Ilustración 30: Pares de entradas estáticas a, b, c transferidas al controlador para establecer el camino
bidireccional entre el host 1 y el host 4, en el apartado d, modificamos en el switch central el paso en un sentido.
Cuando la prioridad de una entrada en una tabla es cero, significa que si hay un paquete
que coincide con una regla con prioridad mayor que cero tiene preferencia. El valor máximo
es 32768. Con esto podríamos definir un comportamiento estándar sino hay una regla con
más prioridad que haga que se comporte de otra forma.
No especificar ninguna acción, en lugar de especificar alguna medida para eliminar paquetes
equivale a descartar o DROP en la tabla de matching.
Ilustración 31: Aplicación cliente – servidor ejecutándose en los host 1 (servidor) y host 4 (cliente), Tras poner en
el switch 1 la regla d) de la ilustración anterior que descarta el tráfico en sentido h1 -> h4 que pasa por el switch 1.
En el apéndice 5.3 Ilustración 45, podemos ver ejemplos de otras entradas avanzadas
probadas en este escenario a través de la REST API con el controlador Floodlight en modo
proactivo.
Ilustración 32: Para verificar que el flujo de datos se establece satisfactoriamente, ejecutamos una aplicación
python cliente-servidor simulando un comportamiento heartbeat que comprueba la conexión entre los nodos a
través de un socket, cuando aplicamos las entradas a,b,c anteriores, recibe respuesta.
Pretendemos con estos modos de operación señalar aquellos factores que pueden afectar al
rendimiento de la SDN en favor de que se escoja un modo de operación acertado en el
diseño. Evitando que el primer paquete que llegue al switch tenga que ser consultado al
controlador por ejemplo.
Floodlight desde sus comienzos fue diseñado para trabajar en entornos con ambos tipos de
redes, es decir, con OpenFlow y sin OpenFlow switches. El algoritmo estándar de forwarding
precargado encontrará todas las islas OpenFlow que haya conectadas al controlador entre
dispositivos origen y destino ; los flow mods que se instalen en la tabla del controlador
vendrán dados por el camino más corto y si se recibe un paquete de entrada sin un punto
de conexión definido para este en el dispositivo, se realiza inundación del paquete por todos
los puertos (excepto por el de entrada) con el menor número de árbol de expansión (acción
OFPP_FLOOD en la especificación).
Ilustración 33: Panel principal de AVIOR con la información que obtiene del controlador Floodlight conectado a
Mininet. Desde aquí con la opción de Manage Flows podemos enviar reglas al controlador (genera e inserta
utilizando REST API). Abajo destacar las entradas estáticas configuradas para el switch señalado, vemos que son
de tipo estático.
Para definir reglas en escenarios IPv6 utilizamos el parámetro ether type 0x86DD, como
vemos en el ejemplo. Aunque sin la misma granularidad que para IPv4 porque OF 1.0 no
permite el tratamiento de cabeceras IPv6, que comienza a realizarse en versiones OF 1.2 y
superiores. Junto a la concordancia con puerto, información de MAC o de transporte un
ajuste para concordancia de entradas bastante preciso.
Ilustración 34:En la imagen vemos como introducimos una regla para el tráfico identificado en la cabecera
Ethernet Type que sea 0x86DD que corresponde a IPv6 no se realice acción, por tanto, se descarta acorde a la
especificación de OpenFlow (acción DROP). En la ilustración anterior vemos las coincidencias que ocurren para
esta entrada.
Ilustración 35 : Configuración de red del equipo host1 conectado al swith1 y lanzando ping6 a equipo host2,
responde hasta que ejecutamos “push” para la regla denegar_ip6 (ver ilustración 34) que lo envía al controlador.
No afecta al resto de tráfico comportándose según la norma reactiva del controlador con forwarding activo.
OFELIA es un proyecto financiado por la Unión Europea dentro del marco FP7 programa
para la investigación y el desarrollo tecnológico. Tiene una duración de 7 años desde 2007
hasta 2013. Proporciona un espacio de experimentación donde se interconectan diferentes
testbeds distribuidos por Europa y América del Sur (Brasil). Esta red de experimentación es
de acceso libre para las instituciones de investigación y académicas. Esto permite testear
escenarios realistas y el posterior despliegue de la tecnología que ha probado en la
infraestructura. Han construido la primera gran red de “switches” (conmutadores)
OpenFlow de Europa, hecho que vemos importante para la experimentación y migración a
un Internet del futuro.
La investigación de internet del futuro necesita entornos flexibles a gran escala que
soporten virtualización de los recursos, y que permitan nuevos algoritmos de control y
encaminamiento. En este contexto como hemos mencionado SDN (Software-Defined
Networking) es un “nuevo” paradigma para las redes de comunicaciones, que permite crear
nuevos tipos de aplicaciones, tecnologías y modelos de negocio. Además, permite escalar los
dispositivos y servicios existentes y optimizarlos.
Para administrar las infraestructuras, OFELIA ha desarrollado su propio OFELIA Control
Framework (OCF), un software de control con licencia de software libre y que se basa en
una arquitectura escalable y distribuida [94], basándose en Expedient [95] un framework
para GENI de la universidad de Stanford. OCF ofrece una administración del ciclo de vida
de los recursos, monitoreo de los mismos y una orquestación automática del experimento,
utilizando recursos distribuidos y heterogéneos. A cada centro de recursos que participa en
el proyecto en una zona geográficamente distante le denominaremos isla, como se refieren
en el proyecto.
Ilustración 36: Panel de control OFC, creación de VM en nuestra slice sobre los recursos de una isla agregada al
proyecto y al slice.
A través de una interfaz gráfica de usuario (GUI), el usuario puede crear y ejecutar
experimentos. Cada isla tiene su panel de acceso y configuración web a través del
cual se permite el control de los recursos en todas las islas federadas (según
también los niveles de acceso). Hemos accedido desde la isla i2cat en Barcelona a
los recursos de las demás islas que hay actualmente operativas o parcialmente
operativas (ver Ilustración 37)
Ilustración 37: Islas con recursos disponibles (Agosto 2013) para agregar y solicitar recursos para experimentar
en Ofelia (Agosto 2013). También es posible desde fuera de panel de control de Ofelia consultar a través de una
url pública el estado de los recursos de las islas [94].
Ilustración 38: Configuración y topología de la isla i2Cat en la primera fase del proyecto OFELIA, conectada a la
red GEANT a través del enlace con IBBT en Gante. En esta fase participaban (TU Berlin, ETH Zürich, IBBT Gent,
UNIVBRIS University of Bristol e I2Cat Barcelona) [90].
Generalmente esta selección del espacio de trabajo suele definir una reserva granular
gruesa de recursos (coarse flows o macroflows visto en la sección 2.3.1), de modo que sea
el controlador quien defina el comportamiento fino, Así no restringimos a priori el tráfico
que van a cursar las aplicaciones.
Ilustración 39: Solicitud de recursos y espacio de flujos definido (en blanco) para nuestro experimento
(seleccionados los puertos/conexiones de los switches), podemos elegir tuplas compatibles con OF. El identificador
VLAN será asignado como medida de aislamiento de flowspaces de Ofelia sino se indica expresamente o no esta
entre los disponibles. Detallado en el laboratorio 4.
Ofelia Control Framework actúa por lo que ya podemos intuir del capítulo anterior (dejando
a un lado la gestión de usuario e integración con XEN para proveer máquinas virtuales)
como un hypervisor/proxy que intermedia organizando los recursos en red de OFELIA,
utilizando Flowvisor que vimos en el análisis teórico. Interesados en la virtualización de los
recursos de la red y como conforma una rebanada virtual del hardware, analizamos esta
particularidad en Ofelia y es que, utilizan el puerto por defecto 6633 para conectarse con
los switches de forma transparente al usuario (no debe ser tenido en cuenta esto para quien
experimenta en la red). Esto es utilizado para hacer slicing del tráfico y redirigir a nuestro
controlador el subconjunto del tráfico que corresponde atendiendo a la solicitud de
flowspace aprobada (se solicitan previamente hasta que se aprueban para
experimentación).
Ilustración 40: Topología con los recursos agregados al slice (llamado Slice0) de experimentación con los agregados
de Barcelona i2Cat OpenFlow Infraestructure e i2Cat servers y de Berlin TUB OF AM y TUB Servers. Señalamos
donde está ubicado la vm con el controlador. Señalado el equipo anfitrión donde se aloja en controlador
Desde el panel de acceso de nuestra isla Ofelia podemos acceder a todos los recursos
federados en la red para incorporarlos a nuestro proyecto, pudiendo crear distintas slices
con los recursos de los agregados, ya sean máquinas virtuales o recursos de red. Para esta
experimentación partimos de que tenemos creada una slice y en ella hemos agregado los
recursos de i2Cat (Barcelona) y TUB (Berlín).
Independientemente de tener o no asignado espacio de flujo para nuestro controlador,
tenemos acceso a las VMs que añadamos en las redes participantes a través de la interfaz de
red eth0 conectada a la red de control (Overlay de control) definida para todas las máquinas
cuando se crean y que NO se debe modificar para seguir vinculada a la red Ofelia (esta red
no se representa en el diagrama de topología). Esta interfaz es por la que se configura el
controlador y es el único para todos los agregados (de cualquier isla) en la slice.
OFELIA utiliza la subdivisión por VLAN aplicada para aislar las porciones de los usuarios.
Es un campo que se añade a la solicitud del flowspace, se indica en la solicitud expresamente
en base a las cabeceras soportadas en OpenFlow para nuestro flowspace o por el contrario
si hacemos una petición simple se añade una petición de identificador VLAN disponible para
la solicitud realizada que se nos reporta cuando se concede vía email. Esta técnica añade
seguridad y aislamiento para usuarios aunque tiene limitaciones al número de VLAN ID
disponibles, lo que puede ser un límite o una mala decisión para escenarios gigantes.
En el marco de trabajo y mantenimiento de Ofelia existe una autoridad que controla la
autorización y la asignación de este identificador VLAN, OFELIA Assigned Number Authority
(OANA). Aunque teóricamente puede ser solicitado dentro del rango (0-4095) existen
rangos reservados con fines de gestión que no se pueden solicitar, control o futuros que
están adecuadamente documentadas [90]. Esta asignación corresponde con lo visto en la
sección 2.31 con el concepto de coarse flows o flujos gruesos.
En nuestro ejercicio de laboratorio controlaremos un subconjunto de red OpenFlow en la
isla i2Cat correspondiente a un flowspace elegido expresamente VLAN ID 20.
Ilustración 41: Flowspace solicitando expresamente VLAN id 20 y aprobado (en azul), abajo el controlador
asignado para TODOS los agregados a este slice. Correspondiente a una máquina fuera de la isla de i2Cat agregada
al mismo slice.
Hemos instalado Floodlight como hemos visto en los laboratorios con Mininet sin
diferencias, con la función de forwarding por defecto. OFC enviará el tráfico de
experimentación para nuestro flowspace, recordamos que tendrá acceso a un subconjunto
de los recursos solicitados en una vista unificada para nuestras aplicaciones, como vemos
en la ilustración 42.
Ilustración 43: Arriba red completa en la isla I2Cat y abajo subconjunto asignado, con dos VMs arrancadas y
detectadas por el controlador porque utilizan 802.1q en una de sus interfaces para que ese tráfico sea gestionado
por el controlador.
curl -d ‘{”switch”:”00:10:00:00:00:00:00:05”,”name”:”drop_ipv6”,
“cookie”:ingress-port”:”2”,”ether-type”:”34525”,”active”:”true”,
“priority”:”32768”,”actions”:””}’
http://10.216.16.42:8080/wm/staticflowentrypusher/json
Ilustración 44: Instalamos las entradas en el switch, “static flow push” drop_ipv6
Tras introducir este la entrada de flujo estática, el resultado es el mismo que en ejemplo del
laboratorio 3, impidiendo tráfico de las pruebas ipv6 link local a la máquina Shun conectada
al switch al que aplicamos la regla.
Ilustración 45: Captura de los recursos que tenemos asignados y que reconoce el controlador, abajo los flows activos
para el switch con ID 00:10:00:00:00:00:00:05 /10.216.12.4:41437.
ello de una forma centralizada. Hemos aportado información sobre las herramientas de
experimentación local y despliegue físico.
De la experimentación con SDN y OpenFlow en los escenarios con Mininet y Ofelia,
señalamos aquellos.
Abstracción, innovación
Un fundamental valor de SDN es la abstracción, desde nuestro punto de vista abre las
puertas a la innovación. Acostumbrados a manejar en el plano de red numerosos
protocolos, con su complejidad y de nuevas especificaciones para mejorar funcionalidades;
este modo, aproxima al acceso a la red de forma unificada. Esto beneficia a la innovación
con el desarrollo de escenarios Overlay y aplicaciones que no tengan que “preocuparse” por
lo que ocurre en el nivel de abajo y al sector industrial que colaborará por “modernizar” la
red con su equipamiento y las nuevas tecnologías de transmisión.
Para innovar es importante poder recrear de forma sencilla escenarios similares a los que
nos encontraremos en un despliegue real. Actualmente tenemos esta posibilidad con
Mininet y la perspectiva de modificar ligeramente la electrónica de red para el soporte de la
especificación OpenFlow nos permite tener despliegues con hardware de diferente
fabricante como los que tenemos en las diferentes islas de Ofelia (NEC, HP, NetFPGA).
SDN pretende construir una disciplina que no sea específica de fabricantes, hemos
simulado por software Mininet una topología para experimentar con redes definidas por
software. Nos permite definir la topología que deseemos abstrayéndonos de los problemas
reales de interconexión, ídem a lo que obtenemos desde el panel de control de Ofelia aunque
ajustándonos a los recursos físicos que se implantan.
Al “cerebro” de la red (semejanza para referirnos al controlador OpenFlow), le resulta
indiferente la implementación que tenga el switch (ya sea software, hardware, fabricante)
siempre y cuando implemente la especificación OpenFlow soportada. De este modo hemos
comprobado el mismo controlador, componentes, herramientas y comportamiento de
entradas antes de ponerlas en producción, con los mismos resultados sin realizar cambios.
La experimentación local y real difiere principalmente en las latencias que afectan a la
comunicación real en el escenario OFELIA (que analizamos a continuación). La emulación
de los equipos de la red (host y switches) como procesos del sistema en Mininet consigue
una reproducción fiel para el escenario, pero no tenemos el aislamiento del sistema de
ficheros de las “VMs”, tampoco de carga de la red, etc. Ya que todo está en la misma máquina,
pero hace sencillas las tareas de experimentación con un coste computacional bajo. El
controlador interpreta los switches fielmente como equipos que implementan OpenFlow
software (nos ocurrirá para las implementaciones software que veremos cómo fabricante
del switch es Nicira Networks) totalmente transparente como se experimenta con OFELIA.
Programación de flujos
Optimización
Ilustración 46: Prueba ICMP (primeros quince paquetes) entre dos máquinas virtuales “shun” e “ikki” en la misma
isla (Barcelona), en azul a través del controlador remoto (lynx.vms1.Berlin) que se encaminan de forma reactiva.
En naranja vemos el tiempo de respuesta a través de las interfaces de control de Ofelia (eth0). Aparecen dos
ejemplos con el mismo experimento realizado en días diferentes y hora del día para contemplar diferencias
según carga de trabajo de la red compartida.
Direccionamiento
Administración y monitorización
La abstracción virtual de la red permite que el tráfico entre sus componentes pueda ser
analizado con las herramientas de monitorización convencionales y nuevas que surgen
para hacer análisis en términos de flows [96]. Las comunicaciones no se resuelven dentro
del Hypervisor 80x86 como ocurría antes sino que están enlazadas al slice y/o flowspace
conectado. El acceso mediante mecanismos estándares, API para desarrollo o conexión de
aplicaciones como hemos visto con el uso de REST, amplia la potencia de poder leer datos,
definir las acciones para cada entrada de flujo, definir estáticamente comportamientos para
replicar, analizar, balancear, reconducir o aislar el tráfico rápidamente de forma
centralizada mediante la definición de flujos ídem mecanismos que implementan los
switches que conocemos.
Ilustración 48: Capturas de tráfico IPv6 con el analizador de red wireshark, los mecanismos de sobre un despliegue
con MININET conectada a un controlador POX.
Seguridad
En Ofelia hemos visto el mecanismo de aislamiento de para que cada usuario utilice su
flowspace. Esta medida por identificador VLAN (que puede ser por otro campo de la túpla
OpenFlow soportado) puede no ser adecuada si se usa un proveedor de servicios con
muchos clientes pero es perfectamente válida para discriminar el tráfico dirigido a nuestro
controlador en este entorno con menos usuarios (límite 12 bits ID VLAN). Hemos visto con
el ejemplo de los laboratorios 3 y 4 como establecer reglas proactivas para descartar tráfico
IPv6. Utilizar estos mecanismos proactivos en equipos frontera en redes Overlay con
propósitos muy específicos puede además de optimizar los caminos que toman los flujos,
granular solo aquel tráfico que deseamos semejante al comportamiento de un firewall.
matching ya sea software o hardware ayudará a una mayor eficiencia en resolver entradas
de flujo más avanzadas con menor coste.
Añadiendo este nivel de abstracción podremos aproximar lo que parecía utópico para la
experimentación hace unos años de representar escenarios para innovación tan reales
como Internet, ejemplos de estos son GENI, OFELIA u OPENLAB a nivel educacional, pero a
nivel privado Google ha presentado planes estratégicos ligados a SDN [57], y NEC ha llegado
a acuerdos en Japón para desplegar OpenFlow en hospitales con bastante éxito [85].
Documentación y APIs homogéneas añaden disciplina al desarrollo, potencian el
desarrollo de herramientas y aplicaciones para la Ingeniería del tráfico; que permitan
aportar consciencia, atendiendo a valores de uso, costes, contenido, patrones, etc.
Homogeneizar los mecanismos de comunicación con el nivel overlay y con las tecnologías
underlay permitirá flexibilizar el avance de este modelo de red definido por software hacía
el internet del futuro. Esto no quiere decir que desaparezca el perfil del administrador de
redes que conocemos hoy día, evoluciona en un avance en la gestión centralizada y al
perfeccionamiento del plano de datos. Esta abstracción es la antesala a una renovación de
las tecnologías subyacentes a alta velocidad ya sean inalámbricas, cableadas por cobre o
medios ópticos.
El encaminamiento no acoplado a IP no tiene por qué ser agnóstico al contenido, la
versatilidad que ofrece un mecanismo basado en flujos, permite añadir consciencia de las
aplicaciones y moldear desde el control según requerimientos de las mismas o
características específicas de los protocolos a nivel superior de forma anticipada.
Permitiéndonos establecer la lógica de control que nos convenga, ya sea con motivos de
ahorre de costes, tratamiento del tráfico, etc. Interconectando puertos virtualmente como
en el laboratorio 2, ligado a una dirección MAC origen, o aislamiento VLAN.
Aventajándonos de la eficiencia del nivel de enlace y utilizar el enrutamiento como lo
conocemos realmente los equipos frontera.
El hecho de tener redes virtuales con un subconjunto de recursos que hacen más
aprovechable el hardware subyacente, tiene impactos directos en consumos energéticos
en flexibilidad y dinamización de los centros de datos, los grandes proveedores de
servicios tendrán que ser los primeros en adoptar este tipo de soluciones en el modelo
multi- arrendatario que emerge. Aunque este no es el único escenario, los problemas
energéticos y trabajos de encaminamiento reactivo, proactivos, geográfico, etc. Son desafíos
comunes en de redes ad-hoc con y sin infraestructura.
Redes multimedia, redes de sensores, encaminamiento ad-hoc o experimentos con nuevos
protocolos que podemos interconectar con cualquier cosa con energía y conectable. El
internet del futuro está estrechamente ligado al concepto de Internet of Things o el internet
de las cosas.
El Internet del Futuro según nuestro criterio pasa por establecer nexos con el modelo
tradicional IP que conduzcan a un modelo que reorganice y armonice este gran sistema
que ha cambiado los hábitos de comportamiento de las personas, quizás en previsión del
siguiente salto debemos anticiparnos al futuro partiendo de que estamos en el que el que
podemos decir la etapa del Internet en las personas, en auge y lo próximo será ligarlo a
cualquier cosa que pueda aportar información a un sistema ya sea de forma activa o pasiva.
Este avance en el ideal de “todo conectado y de la misma forma” simplificará el acceso
a la red y mitigará las diferencias para interactuar en ella. El concepto introducido por SDN
y OpenFlow concretamente, siendo el pegamento de transición tangible a la innovación y el
ensayo en este campo. Si todos estamos conectados, importa quién o que está conectado,
mecanismos o modelos basados en identidad [6] para el control de acceso según la persona
o cosa que participe en la red gana interés. Entre la información sujeta a una persona o cosa
puede estar su identificación en la red (que podría ser una dirección IPv6) ligada a un perfil
de persona o cosa conectada; por esto, una simplificación de los mecanismos, periféricos,
integración con el usuario y las cosas en de acceso a la red (desafiante en el ámbito de la
seguridad) son a nuestro parecer objeto de interés ligado a este concepto en un
planteamiento de la futura internet.
Ilustración 49: Internet of Things, evolución de los dispositivos conectados a internet realizada por Intel ®.
5. REFERENCIAS
1. Ben Pfaff, Justin Pettit, Teemu Koponen, Keith Amidon, Martin Casado from Nicira
Networks and Scott Shenker from UC Berkeley. Computer Science Division.
Extending Networking into the Virtualization Layer. 2009
2. Rezo Davoli, Department of Computer Science Unversity of Bologna,(Italy) VDE:
Virtual distributed Ethernet. Technical Report Jun 2004.
3. Justin Pettit, Jesse Gross, Ben Pfaff, Martin Casado, Nicira Networks, Palo Alto. CA.
Simon Crosby rom Citrix Systems, Ft.Lauderdale. Virtual Switching in an Era of
Advanced Edges. 2nd Workshop on Data Center–Converged and Virtual Ethernet
Switching (DC-CAVES), ITC. 2010.
4. Shpetimi Latifis, Pardue University. Ing. USBMed. An Analysis on the future of
Internet Architectures. ISSN: 2027-5846 Vol2, No1, Ene-Jun 2011.
5. Matthew Chapman Caesar. Identity-based routing. Electrical Engineering and
Computer Sciences University of California at Berkeley Technical Report No.
UCB/EECS-2007-114.
6. José Bastida García. Integración de Redes: “Modelos basados en Identidad”. Trabajo
Asignatura MNTI. Universidad de Murcia. Febrero 2011.
7. José Bastida García. Herramientas de Virtualización de Sistemas y Redes Ethernet.
Trabajo asignatura Tecnología para la Investigación en la Ingeniería Informática,
Universidad de Murcia. Septiembre 2011.
8. VMWare ™ Distributed Switch: http://www.vmware.com/products/vnetwork-
distributed-switch/overview.html
9. Martìn Casado, Michael J. Freedman, Justin Pettit, Jianying Luo, and Nick McKeown
Stanford University. Scott Shenker U.C. Berkeley and ICSI. Ethane: Taking Control of
the Enterprise. ACM SIGCOMM Computer Communication Review. Vol. 37. No. 4.
ACM, 2007
10. Antonio F. Gomez-Skarmeta1, Pedro Martinez-Julia1, Joao Girao2, Amardeo Sarma.
Identity based Architecture for Secure Communication in Future Internet.
Communication and Information Engineering, University of Murcia (Spain),
EU2NEC Laboratories Europe,Heidelberg (Germany). Proceedings of the 6th ACM
workshop on Digital identity management. ACM, 2010. p. 45-48.
11. Renzo Davoli, Michael Goldweber .Virtual Square Users, Programmers & Developers
Guide. Department of Computer Science Unversity of Bologna, (Italy).
12. Hui-Min Tseng, Hui-Lan Lee, Jen-Wei Hu, Te-Lung Liu, Jee-Gong Chang, Wei-Cheng
Huang. National Center for High-Performance Computing, Taiwan. 1521-9097/11
IEEE 2011.
13. Virtualization architecture using the ID/Locator split concept for Future Wireless
Networks. Chakchai So-In, Raj Jain , Subharthi Paul, Jianli. Department of Computer
Science & Engineering, Washington University in St. Louis. Department of Computer
Science, Faculty of Science, Khon Kaen University (Thailand).Sept. 2010.
14. The Locator Identifier Separation Protocol (LISP). David Meyer, Cisco Systems. The
Internet Protocol Journal, Volume 11.
15. VirtualSquare project wiki.< http://wiki.virtualsquare.org>
16. A Study of a KVM-based Cluster for Grid Computing. Michael Fenn, Michael A.
Murphy, and Sebastien Goasguen School of Computing Clemson University, Clemson
(US).
Virtualization with Cloud Virtual Switch. 2011 IEEE 17th International Conference
on Parallel and Distributed Systems.
54. ONF.Open Networking Fundation. <https://www.opennetworking.org/>
55. J.Touch and R.Perlmann, “Transparent Interconnection of Lots of Links (TRILL):
Problem and applicability statement,” RFC 5556. May 2009.
56. Nick McKeown, Stanford University. Tom Anderson, University of Washington, Hari
Balakrishnan MIT, Guru Parulkar Stanford University, Larry Peterson Princeton
University , Jennifer Rexford Princeton University, Scott Shenker University of
California, Berkeley, Jonathan Turner Washington University in St. Louis. OpenFlow:
Enabling Innovation in Campus Networks, March 14, 2008
57. Urs Hözle, Google. A Software Defined WAN Architecture. 17 April 2012,
Opennetworksummit, Santa Clara. Silicon Valley.
58. Seetharaman, Paul Weissmann Deutsche Telekom Innovation Laboratories,
OpenFlow Tutorial OFELIA Summer School Nov 8, 2011Srini.
59. Bob Lantz, Nikhil Handigol, Brandon Heller y Vimal Jeyakumar. Introduction to
Mininet Documentation (updated for Mininet 2.0.0).
<https://github.com/mininet/mininet/wiki/Introduction-to-Mininet#>
60. Project Floodlight. Open Source Software for Building Software-Defined Networks.
©2013 Project Floodlight. All rights reserved.
< http://www.projectfloodlight.org/floodlight>
61. Jad Naous, David Erickson, G. Adam Covington, Guido Appenzeller, Nick McKeown.
Stanford University California, USA. Implementing an OpenFlow Switch on the
NetFPGA platform. En Proceedings of the 4th ACM/IEEE Symposium on
Architectures for Networking and Communications Systems. ACM, 2008. p. 1-9.
62. Cisco Nexus 1000V Switch for VMware vSphere, Virtual Machine Networking:
Standards and Solutions:
<http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps9902/white
paper_c11-620065.html>
63. Rajesh Narayanan, Technology Strategist Office of the CTO, Dell Networking.
”Towards an Extensibility Framework and a Creating a New Application Innovation
Framework for Software Defined Networking”. European Workshop on Software
Defined Networking October 25-26, 2012 | Darmstadt, Germany.
64. VXLAN VMWare Software Defined Networking. Datacenter Networking Challenge:
<http://www.vmware.com/es/solutions/datacenter/vxlan.html>
65. Global Research Network Operation Center and INCNTRE. FlowVisor Overview
presentation. <https://OpenFlow.stanford.edu/display/DOCS/Flowvisor>
66. GÉANT website. Communications Networks, Content and Technology European
Commission Directorate General. < http://www.geant.net/>
67. B. Davie, Ed. J. Gross Nicira Networks, Inc. A Stateless Transport Tunneling Protocol
for Network Virtualization (STT). IETF Draft March 5, 2012.
68. Francesco Palmieri, Federico II University of Napoli, Italy. The Internet Protocol
Journal, Volume 11, No. 3 GMPLS Control Plane Services in the Next-Generation
Optical Internet.
69. Ramón Jesús Millán Tejedor. Integración de redes ópticas e IP con GMPLS.
Comunicaciones World nº 172, IDG Communications S.A, 2002.
70. Roberto Doriguzzi, Matteo Gerola. CREATE-NET collaboration with FP7-Ofelia:
Advanced Network Virtualisation Layer for OpenFlow Networks: VeRTIGO.
<https://github.com/fp7-ofelia/VeRTIGO#readme>
71. Nicola Ciulli. Coexistence of GMPLS and OpenFlow rationale & approaches, Head of
Research & Development, Nextworks with acknowledgments to the FP7 FIBRE
project. Pre-FIA Workshop May 7th 2013, Dublin.
72. OpenFlow Switch Specication Version 1.0.0 ( Wire Protocol 0x01 )December 31,
2009. <http://www.OpenFlow.org/documents/OpenFlow-spec-v1.0.0.pdf>
73. Murphy McCauley and Ali Al-Shabibi, Components in POX: POX Wiki, Stanford
University. <https://OpenFlow.stanford.edu/display/ONL/POX+Wiki>
74. Kuang-Ching Wang, Floodlight Documentation.
<http://docs.projectfloodlight.org/display/floodlightcontroller/Floodlight+Docu
mentation>
75. Ethan Banks, propietario, Packet Pushers Interactive, Network World (EE.UU.) –
CIOPeru.pe. SDN: Las partes fundamentals. ComputerWorld Venezuela.
76. Caesar, M. , Caldwell, D. , Feamster, N., Rexford, J., Shaikh, A., and Van Der Merwe, K.
Design and implementation of a Routing Control Platform. In Proc. NSDI (april
2005).
77. Greenberg, A., Hjalmtysson, G., Maltz, D. A., Myers, A., Rexford, J., Xie, G., Yan, H., Zhan,
J., and Zhang, H. A clean slate 4D approach to network control and management.
SIGCOMM CCR 35, 5 (2005), 41–54
78. Casado, M., Garfinkel, T., Akella, A., Freedman, M. J.,Boneh, D., Mckeown, N., and
Shenker, S. Sane: A Protection architecture for enterprise networks. In proc. Usenix
Security (august 2006).
79. Gude,N., Koponen, T., Pettit, J., Pfaff, B., Casado, M, Mckeown, N., and Shenker, s. NOX:
Towards an operating system for networks. In SIGCOMM CCR (july 2008).
80. OpenDayLight , Linux Fundation Collaborative Project.
81. Nick McKeown. OpenFlow and Software Defined Networks presentation. 2011
82. Hui-Min Tseng, Nat. Center for High-Performance Comput., Hsinchu, Taiwan Hui-
Lan Lee ; Jen-Wei Hu ; Te-Lung Liu ; Jee-Gong Chang ; Wei-Cheng Huang Hui-Min
Tseng. Network Virtualization with Cloud Virtual Switch. Parallel and Distributed
Systems (ICPADS), 2011 IEEE 17th International Conference.
83. Brandon Heller, SDN Stanford Team. OpenFlow Tutorial ONS presentation. April
2012.
84. Martin Casado, List of OpenFlow Software Projects (that I know of).
<http://yuba.stanford.edu/~casado/of-sw.html>
85. SDNCentral, The Independent Community & #1 Resource For Sdn And Nfv
Copyright 2012-2013 SDNCentral LLC, All Rights Reserved.
<http://www.sdncentral.com/comprehensive-list-of-open-source-sdn-projects/ >
86. sFlow Monitoring converged networks using the sFlow® standard
<http://blog.sflow.com/2013/05/controlling-large-flows-with-OpenFlow.html>
87. Ivan Shmakov How to use vlan dot1.q 802.1q, trunk. Wiki Debian Network
Configuration. < https://wiki.debian.org/NetworkConfiguration >.
88. Murphy McCauley. POX Web Interfaces. September 2012.
< http://www.noxrepo.org/2012/09/pox-web-interfaces/>
89. Jason Parraga, Ryan Flaherty. Marist – IBM OpenFlow Research project. Avior.
< http://OpenFlow.marist.edu/avior>
90. Matteo Gerola, CREATE-NET. Vasileios Kotronis , ETHZ, Leonardo Bergesio, i2CAT,
Bart Puype , IBBT, Marc Körner, Herbert Almus TUB, Julius Schulz-Zander, TUB-T-
Labs, Nikolaos Efstathiou UnivBRIS. OFELIA – OpenFlow in Europe – Linking
Infrastructure and Applications. OFELIA ICT-258365 Deliverable D4.2. © OFELIA
consortium 2010-2013.
APÉNDICE:
A.1. ENCAMINAMIENTO VIRTUALIZADO ASISTENCIA DE LA RED
La introducción de NAT obliga a renunciar al paradigma extremo a extremo, por ello para
establecer un vínculo extremo a extremo con el objetivo de interconectar grandes entornos
corporativos o gubernamentales de forma segura, puede que dispongamos de circuitos
dedicados o servicios macrolan propios o proporcionados por los proveedores de servicios.
Un escenario común para examinar esta casuística es que, sobre estos enlaces converjan
numerosos servicios y utilicemos VLANs para gestionar de forma separada las redes,
pudiendo ocurrir que la electrónica de red intermedia no soporte etiquetas VLAN extremo
a extremo. Utilizar 802.1Q es un mecanismo para establecer de forma segura dominios
virtuales, aunque tiene limitación en la trama Ethernet de 12bits o 4096 VLANs.
IPv6 resolvería estos problemas ya que podríamos alcanzar con direcciones IPv6 públicas
extremo a extremo, en cualquier caso si establecemos un canal para la interconexión de
sedes debemos aplicar mecanismos de seguridad y cifrado como IPSec .
Veamos las principales tecnologías underlay de las que disponemos para ampliar una red
de área extensa, necesario a nivel subyacente para extender el plano de datos. La flexibilidad
con un bajo coste en inversión y un impacto mínimo son las premisas para una transición
menos disruptiva con las características de un diseño. Destacamos la necesidad de una
interfaz que simplifique la integración con los mecanismos de conexión underlay, LibNetVirt
es un importante avance en este campo que ya contempla Openflow.
La conexión VPN a través de Internet es técnicamente una unión wide area network
(WAN) a nivel IP entre los sitios, al usuario le parece como si fuera un enlace privado—
de allí la designación “virtual private network”.
Existen diferentes topologías y protocolos para conformar esta red privada virtual muy
documentados y extendidos a día de hoy como PPTP, L2TP,IPSEC o SSL/TLS.
extremo en espacio de usuario sobre el que conectarse a la red destino, lo cual lo hace
muy versátil para clientes VPN y configuraciones de acceso remoto a sedes.
Ilustración 50: Acceso a la red Ofelia configurado en un cliente OpenVPN para Android, accediento al panel de
control de Ofelia desde un dispositivo móvil.
Alternativas como STT (Stateless Transport Tunnel) [67], otro protocolo de túnel para
crear redes superpuestas virtuales es particularmente útil cuando el hardware de los
MPLS nació con el fin de incorporar la velocidad de conmutación del nivel 2 al nivel 3;
a través de la conmutación por etiqueta (LSP o label switched path) sin necesidad de
IP; pero actualmente esta ventaja no es percibida como el principal beneficio, ya que
los gigarouters son capaces de realizar búsquedas de rutas en las tablas IP a suficiente
velocidad como para soportar todo tipo de interfaces.
Los beneficios que MPLS proporciona a las redes IP son: realizar ingeniería del tráfico
o TE (Traffic Engineering), cursar tráfico con diferentes calidades de clases de servicio
o CoS (Class of Service) o grados de calidad de servicio o QoS (Quality of Service), y
crear redes privadas virtuales o VPN (Virtual Private Networks) basadas en IP.
MPLS como una solución IP sobre Ethernet, IP sobre ATM, e IP sobre Frame Relay. No
se contempla la aplicación de MPLS a las redes ópticas de próxima generación, conocida
como GMPLS (Generalized MPLS), evolución del MPLS del IETF, de O-UNI (Optical
User-Network Interface) y del OIF (Optical Interface Forum), muy importante en la
nueva generación de enlace óptico para el plano de datos.
GMPLS es una extensión natural de MPLS para ampliar el uso de MPLS como un
mecanismo de control y provisión, no únicamente de caminos en dispositivos basados
en paquetes, sino también de caminos en dispositivos no basados en paquetes; como
los conmutadores ópticos de señales multiplexadas por división en longitud de onda,
los conmutadores de fibras ópticas, y los conmutadores de señales digitales
multiplexadas por división en el tiempo.
o GMPLS Y OPENFLOW:
El enfoque de GMPLS en el plano de control de estas diversas capas ya que cada una
de ellos puede utilizar físicamente diversos datos o planos de reenvío. La intención es
cubrir tanto la señalización y la parte de enrutamiento de ese plano de control. Por la
naturaleza de las transmisiones en medios ópticos se ha introducido la posibilidad de
que múltiples enlaces puedan ser combinados en un único enlace agrupado (link
bundling) y de establecer enlaces no numerados, definiendo un nuevo protocolo de
señalización denominado LMP (Link Management Protocol).
LMP puede separar los canales de datos y de control permitiendo que cada uno de ellos
pueda ser protegido y contabilizado de forma independiente. De este modo, LMP ayuda
a la localización de enlaces con fallos y a la verificación de la conectividad física entre
dos nodos vecinos, lo cual reduce la probabilidad de error en la provisión de servicios.
Una vez localizado el fallo, el LMP activará los mecanismos de protección y
restauración, activando otros LSP alternativos con el fin de solventar el problema.
OpenFlow: GMPLS/PCE:
Ilustración 51: Concepto de separación de planos control/datos diferenciado principalmente según el área de
aplicación.
LIBNETVIRT
Virtual Distributed Ethernet puede ser utilizado de forma general como red privada
virtual a través de una red a través de Internet, así como una tecnología de apoyo a la
movilidad, una herramienta genérica para extender laboratorios en red,
reconfigurable, superpuesta a la capa de aplicación para crear VLANs con preservación
de la privacidad y otros alternativas [2]. El principal inconveniente según algunos
experimentos son interrupciones con algoritmos de control de la congestión del tráfico
ssh [52].
Ilustración 53: Extendiendo VDE: interconexión de switches mediante canal cifrado ssh.
Cisco Nexus® 1000V es el software switch con el que Cisco Systems enriquece el
hypervisor más potente de VMWare [61] provee una comprensiva y extensible
arquitectura para las máquinas virtuales y para el “cloud networking” [53]. Los switches
están diseñados para acelerar la virtualización y los despliegues múltiple arrendatario
mejorando la administración y de los recursos de forma transparente. Se integra con
VMWare vSphere hypervisor para la gestión de la red y es compatible con VMWare
vCloud Director para manejar centros de datos virtualizados con todo el equipamiento
de sistemas, almacenamiento red y seguridad con habilidades de control de servicios
de transporte hasta aplicación.
El producto que está dentro de la estrategia Cisco Open Network Environment (ONE),
supone una solución integral para ayudar a que las redes sean más abiertas,
programable y consciente de las aplicaciones. Modelo operativo sin interrupciones
para la virtualización de servidores y equipos de red de este fabricante en la tendencia
de creación de redes definida por software (SDN).
Como indicamos en las mejoras hardware que complementan a este tipo de switches
se encuentra el soporte en hardware basado en el estándar IEEE 802.1Q en
compromiso con un sistema operativo propietario especializado Cisco NX-OS. El tráfico
que pasa por estos switches se puede gestionar y analizar como el resto de la red
superando así esto que no ocurría con los hypervisor switch básicos.
OPEN VSWITCH
Open vSwitch es un switch software multicapa con licencia open source Apache 2.
Además de que está incluido en los módulos del kernel Linux 2.6.18 en adelante, tiene
soporte especial para Citrix XenServer y Red Hat Enterprise Linux hosts. Además de
implementar una plataforma virtual testada para entornos en producción que soporta
los estándares de gestión y administración de red está abierto su desarrollo a nuevas
extensiones para reenvío y control.
OPENFLOW SWITCH
A través del comando dpctl por el puerto 6634 en la interfaz de loopback sobre la
misma máquina que se ejecuta el OpenFlow reference switch podemos establecer reglas
de flujos y depurar que ocurre en el switch obteniendo la información del controlador.
NOX/POX
SNAC
Ilustración 55: Interfaz web de SNAC OpenFlow Policy Manager, sección donde podemos crear o seleccionar
instantáneas de la red en un punto concreto, como tenemos en la virtualización de sistemas: concepto snapshot.
Captura realizada en instalación realizada en la infraestructura Ofelia.
RYU
Del término flujo (flow) en japonés, se trata de un Framework SDN, una plataforma para
crear aplicaciones SDN proporcionando librerías útiles y un API (Aplication
Programming Interface) bien definida (ver figura 7), completamente desarrollado en
lenguaje Python bajo licencia de código abierto Apache v2 apoyado por la compañía de
telecomunicaciones global NTT.
Entre las principales características y objetivos que persigue este proyecto y lo hacen
destacable señalamos:
Ilustración 56: Arquitectura RYU “Implement your apps by using Ryu SDN Framework”
FLOODLIGHT
mininet@mininet-vm:~$ curl
http://127.0.0.1:8080/wm/staticflowentrypusher/clear/00:00:00:00:00:00:00:01/json
Ilustración 57: Ejemplos de otras entradas avanzadas probadas a través de la REST API con el controlador
Floodlight en modo proactivo. EN b) la acción NORMAL hace que se comporte como un switch L2 según la
especificación para esta acción en la documentación de OpenFlow 1.0. e) Indica como eliminar todas las entradas
creadas para un switch funcionado con la REST API.
Cliente de terminal
Servidor de ventanas X
Hemos utilizado xming para Windows. Es una implementación portátil del sistema
de ventanas X para sistemas operativos Microsoft Windows basado en el servidor
xorg de UNIX.
Hipervisor/Monitor de virtualización
o vlan package
o Configuración de la interfaz 802.1.q [87]
auto lo
auto eth0
address 10.216.12.123
netmask 255.255.252.0
gateway 10.216.12.1
auto eth1
auto vlan20
address 192.168.20.123
netmask 255.255.0.0
vlan_raw_device eth1
#no configurada
auto eth2
Ilustración 58: Fichero /etc/network/interfaces configurado en máquina virtual ensayo Ofelia, llamada ikki.
import socket
host = '10.0.0.4'
port = 55000
backlog = 5
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(backlog)
while (1):
data = client.recv(size)
if data:
client.send(data)
client.close()
Ilustración 59: Servidor realizado en python que acepta peticiones, ajustaremos ip y puerto manualmente antes de
ejecutarlo según el test.
#!/usr/bin/python
import socket
import time
ADMINISTRATOR = 'jbg3@um.es'
host = '10.0.0.4'
port = 55000
size = 1024
while (1):
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))
s.send('Keeep Alive')
data = s.recv(size)
s.close()
time.sleep (5)
except:
print 'There has been some problem with the connection... Send an email(s)
to ', ADMINISTRATOR
time.sleep (5)
Ilustración 60: Cliente socket realizado en python que conecta con el de la ilustración 57, ajustaremos ip y puerto
manualmente antes de ejecutarlo según el ensayo.
* * * *