INTRODUCCION
Los protocolos de red de transporte y control distribuidos que se ejecutan
dentro de los enrutadores y conmutadores son las tecnologas clave que
permiten que la informacin, en forma de paquetes digitales, viaje alrededor
del mundo. A pesar de su adopcin generalizada, las redes IP tradicionales
son complejas y difciles de gestionar [1]. Para expresar las polticas de red
de alto nivel deseadas, los operadores de red deben configurar cada
dispositivo de red individualmente utilizando comandos de bajo nivel y, a
menudo, especficos del proveedor. Adems de la complejidad de la
configuracin, los entornos de red tienen que soportar la dinmica de las
fallas y adaptarse a los cambios de carga. Los mecanismos de
reconfiguracin y respuesta automtica son prcticamente inexistentes en
las redes IP actuales. Por lo tanto, hacer cumplir las polticas requeridas en
un entorno tan dinmico es muy difcil. Para hacerlo an ms complicado,
las redes actuales tambin estn integradas verticalmente. El plano de
control (que decide cmo manejar el trfico de red) y el plano de datos (que
reenva el trfico de acuerdo con las decisiones tomadas por el plano de
control) se agrupan dentro de los dispositivos de red, reduciendo la
flexibilidad y obstaculizando la innovacin y la evolucin de la
infraestructura de red. La transicin de IPv4 a IPv6, iniciada hace ms de
una dcada y an en gran parte incompleta, da testimonio de este desafo,
mientras que de hecho IPv6 representaba simplemente una actualizacin de
protocolo. Debido a la inercia de las redes IP actuales, un nuevo protocolo
de enrutamiento puede tardar entre cinco y diez aos en ser totalmente
diseado, evaluado y desplegado. Del mismo modo, un planteamiento de
pizarra limpia para cambiar la arquitectura de Internet (por ejemplo, la
sustitucin de IP) se considera como una tarea desalentadoraVsimply no
factible en la prctica [2], [3]. En ltima instancia, esta situacin ha inflado
los gastos de capital y operativos de funcionamiento de una red IP. Software
de redes definidas (SDN) [4], [5] es un paradigma de redes emergentes que
da la esperanza de cambiar las limitaciones de las actuales infraestructuras
de red. En primer lugar, rompe la integracin vertical separando la lgica de
control de la red (el plano de control) de los enrutadores y conmutadores
subyacentes que reenvan el trfico (el plano de datos). En segundo lugar,
con la separacin de los planos de control y de datos, los conmutadores de
red se convierten en simples dispositivos de reenvo y la lgica de control se
implementa en un controlador lgicamente centralizado (o sistema
operativo de red1) . Una vista simplificada de esta arquitectura se muestra
en la Fig. 1. Es importante enfatizar que un modelo programtico
lgicamente centralizado no postula un sistema fsicamente centralizado
[7]. De hecho, la necesidad de garantizar niveles adecuados de rendimiento,
escalabilidad y fiabilidad impedira tal solucin. En cambio, los diseos de
redes SDN a nivel de produccin recurren a planos de control fsicamente
distribuidos [7], [8].
La separacin del plano de control y del plano de datos puede realizarse por
medio de una interfaz de programacin bien definida entre los
conmutadores y el controlador SDN. El controlador ejerce control directo
sobre el estado en los elementos del plano de datos a travs de esta
interfaz de programacin de aplicaciones bien definida (API), como se
representa en la Fig. 1. El ejemplo ms notable de tal API es OpenFlow [9],
[10].
Un conmutador OpenFlow tiene una o ms tablas de reglas de manejo de
paquetes (tabla de flujo). Cada regla se corresponde con un subconjunto del
trfico y realiza ciertas acciones (descartar, reenviar, modificar, etc.) en el
trfico. Dependiendo de las reglas instaladas por una aplicacin de
controlador, un conmutador OpenFlow puede ser supervisado por el
controlador. Se comportan como un enrutador, conmutador, cortafuegos o
desempean otras funciones (por ejemplo, equilibrador de carga,
formateador de trfico y, en general, de una caja intermedia). Una
consecuencia importante de los principios de SDN es la separacin de las
preocupaciones introducidas entre la definicin de las polticas de red, su
implementacin en el hardware de conmutacin y la transmisin del trfico.
Esta separacin es clave para la flexibilidad deseada, rompiendo el
problema de control de red en piezas manejables y facilitando la creacin e
introduccin de nuevas abstracciones en redes, simplificando la gestin de
la red y facilitando la evolucin e innovacin de la red. Aunque SDN y
OpenFlow comenzaron como experimentos acadmicos [9], ganaron la
traccin significativa en la industria en los ltimos aos. La mayora de los
vendedores de conmutadores comerciales ahora incluyen el soporte de la
API OpenFlow en su equipo. El impulso de SDN fue lo suficientemente fuerte
como para hacer que Google, Facebook, Yahoo, Microsoft, Verizon y
Deutsche Telekom financiaran Open Networking Foundation (ONF) [10] con
el objetivo principal de promocin y adopcin de SDN a travs del desarrollo
de estndares abiertos. Como las preocupaciones iniciales con la
escalabilidad SDN se abordaron [11] Vin particular el mito de que la
centralizacin lgica implicaba un controlador fsicamente centralizado, un
tema que volveremos a ms adelante las ideas VSDN han madurado y
evolucionado de un ejercicio acadmico a un xito comercial. Google, por
ejemplo, ha desplegado un SDN para interconectar sus centros de datos en
todo el mundo. Esta red de produccin ha estado en despliegue durante tres
aos, ayudando a la compaa a mejorar la eficiencia operativa y reducir
significativamente los costos [8]. La plataforma de virtualizacin de red1 de
VMware, NSX [12], es otro ejemplo. NSX es una solucin comercial que
ofrece una red totalmente funcional en software, provisto
independientemente de los dispositivos de red subyacentes, basado
totalmente en los principios de SDN. Como ltimo ejemplo, las empresas de
TI ms grandes del mundo (desde compaas areas y fabricantes de
equipos hasta proveedores de servicios cloud y compaas de servicios
financieros) se han unido recientemente a consorcios SDN como la ONF y la
iniciativa OpenDaylight [13], otra indicacin de la importancia de SDN
Industrial. Algunos artculos recientes han estudiado aspectos
arquitectnicos especficos de SDN [14] - [16]. En [14] y [15] se puede
encontrar una visin general de OpenFlow y una revisin breve de la
literatura.
Estas encuestas orientadas a OpenFlow presentan una pila de tres capas
relativamente simplificada compuesta de servicios de red de alto nivel,
controladores y la interfaz controlador / conmutador. En [16], Jarraya et al.
Dar un paso ms all proponiendo una taxonoma para SDN. Sin embargo, al
igual que los trabajos anteriores, la encuesta es limitada en trminos de
alcance, y no proporciona un tratamiento en profundidad de los aspectos
fundamentales de SDN. En esencia, las encuestas existentes carecen de una
discusin exhaustiva de los componentes esenciales de un SDN, como los
sistemas operativos de red (NOS), la programacin
Guages, e interfaces. Tambin se quedan cortos en el anlisis de las
cuestiones de capa cruzada, tales como escalabilidad, seguridad y
confiabilidad. Tambin falta una visin ms completa de los esfuerzos de
investigacin en curso, los desafos y las actividades de normalizacin
conexas. En este artculo, presentamos, segn nuestro mejor conocimiento,
la encuesta bibliogrfica ms completa sobre SDN hasta la fecha.
Organizamos esta encuesta como se muestra en la Fig. 2. Empezamos, en
las dos secciones siguientes, explicando el contexto, introduciendo la
motivacin para SDN y explicando los conceptos principales de este nuevo
paradigma y cmo ste difiere de las redes tradicionales. Nuestro objetivo
en la primera parte de la encuesta es tambin para explicar que SDN no es
tan nuevo como un avance tecnolgico. De hecho, su existencia est
arraigada en la interseccin de una serie de "viejas" ideas, impulsores de la
tecnologa y necesidades actuales y futuras. Los conceptos subyacentes a la
separacin de los planos de control y de datos, la abstraccin de flujo sobre
la cual se toman las decisiones de reenvo, la centralizacin (lgica) del
control de la red y la capacidad de programar la red no son novedosas por s
mismas. Sin embargo, la integracin de los conceptos ya probados con las
tendencias recientes en la creacin de redes, como la disponibilidad de
silicio de conmutacin comercial y el enorme inters en formas factibles de
virtualizacin de red, conducen a este cambio de paradigma en la creacin
de redes. Como resultado del alto inters de la industria y el potencial para
cambiar el statu quo de la creacin de redes desde mltiples perspectivas,
se estn llevando a cabo una serie de esfuerzos de estandarizacin
alrededor de SDN, como tambin discutimos en la Seccin III. La seccin IV
es el ncleo de esta encuesta, presentando un anlisis extenso y completo
de los componentes bsicos de una infraestructura SDN usando un enfoque
de abajo hacia arriba, en capas. La opcin para un enfoque en capas se
basa en el hecho de que SDN permite pensar en la creacin de redes a lo
largo de dos conceptos fundamentales, comunes en otras disciplinas de la
informtica: la separacin de las preocupaciones (aprovechando el concepto
de abstraccin) y la recursin. Nuestro enfoque en capas y de abajo hacia
arriba divide el problema de red en ocho partes: 1) infraestructura de
hardware; 2) interfaces hacia el sur; 3) virtualizacin de red (capa de
hipervisor entre los dispositivos de reenvo y los NOS); 4) NOS
(controladores SDN y plataformas de control); 5) interfaces norte (para
ofrecer una abstraccin de programacin comn a las capas superiores,
principalmente las aplicaciones de red); 6) virtualizacin utilizando tcnicas
de corte proporcionadas por bibliotecas de propsito especial o lenguajes de
programacin y compiladores; 7) lenguajes de programacin en red; Y
finalmente 8) aplicaciones de red. Adems, tambin examinamos los
problemas de capa cruzada, como los mecanismos de depuracin y solucin
de problemas. La discusin en la Seccin V sobre los esfuerzos de
investigacin en curso, los retos, el futuro y las oportunidades concluye este
documento.
II. STATUS QUO EN REDES
Similar a cmo las ideas de programacin de red han sido consideradas por
varios grupos de trabajo de IETF (GTs) en el pasado, la actual tendencia SDN
tambin est influyendo en una
Nmero de actividades. Un organismo relacionado que se centra en
aspectos de investigacin para la evolucin de Internet, IRTF, ha creado el
SDNRG. Este grupo investiga SDN desde varias perspectivas con el objetivo
de identificar los enfoques que se pueden definir, desplegar y utilizar en el
corto plazo, as como identificar los desafos de bsqueda futuros. En el
Sector de Telecomunicaciones de la Unin Internacional de
Telecomunicaciones (UIT-T), algunas Comisiones de Estudio ya han
comenzado a elaborar recomendaciones para SDN y se ha establecido una
Actividad de Coordinacin Conjunta sobre SDN (JCASDN) para coordinar la
labor de normalizacin del SDN. El Foro de Banda Ancha (BBF) est
trabajando en temas de SDN a travs del WG del Servicio de Innovacin y
Requisitos de Mercado (SIMR). El objetivo del BBF es publicar
recomendaciones para apoyar SDN en redes multiservicio de banda ancha,
incluyendo entornos hbridos en los que solo parte del equipo de red est
habilitada para SDN. El Metro Ethernet Forum (MEF) se est acercando a
SDN con el objetivo de definir la orquestacin de servicios con APIs para las
redes existentes. En el IEEE, el 802 LAN / MAN Standards Committee ha
iniciado recientemente algunas actividades para estandarizar las
capacidades de SDN en redes de acceso basadas en la infraestructura IEEE
802 a travs del proyecto P802.1CF, tanto para tecnologas cableadas como
inalmbricas para adoptar nuevas interfaces de control. El Foro de
Operadores de Redes pticas (OIF) Carrier WG public un conjunto de
requisitos para el transporte SDN. Las actividades iniciales tienen como
objetivo principal describir las caractersticas y funcionalidades necesarias
para soportar el despliegue de capacidades SDN en redes de transporte
portador. Open Data Center Alliance (ODCA) es una organizacin que trabaja
en la unificacin de centros de datos en la migracin a entornos de cloud
computing a travs de soluciones interoperables. A travs de la
documentacin de modelos de uso, especficamente uno para SDN, ODCA
est definiendo nuevos requisitos para el despliegue de la nube. La Alianza
para las Soluciones de la Industria de las Telecomunicaciones (ATIS) cre un
grupo focal para analizar las cuestiones operacionales y las oportunidades
asociadas con las capacidades programables de la infraestructura de red. En
el Instituto Europeo de Normas de Telecomunicaciones (ETSI), se estn
dedicando esfuerzos a la virtualizacin de funciones de red (NFV) a travs
de un Grupo de Especificacin de la Industria (ISG) recientemente definido.
Los conceptos de NFV y SDN se consideran complementarios, compartiendo
el objetivo de acelerar la Innovacin dentro de la red permitiendo la
programacin y cambiando completamente el modelo operativo de la red a
travs de la automatizacin y un cambio real a las plataformas basadas en
software. Por ltimo, el consorcio del proyecto de asociacin de tercera
generacin de la industria de redes mviles est estudiando la gestin de
redes virtualizadas, un esfuerzo alineado con la arquitectura ETSI NFV y,
como tal, susceptible de apalancarse de SDN.
D. Historia de SDN Aunque un concepto bastante reciente, SDN aprovecha
ideas de redes con una historia ms larga [17]. En particular, se basa en
trabajos realizados en redes programables, como redes activas [81], redes
ATM programables [82], [83] y en propuestas de control y separacin de
planos de datos, como el punto de control de red (PCN) [84] y la plataforma
de control de enrutamiento (BCP) [85]. Con el fin de presentar una
perspectiva histrica, resumimos en la Tabla 2 diferentes instancias de
trabajo relacionado con SDN antes de SDN, dividindolo en cinco categoras.
Junto con las categoras que definimos, la segunda y tercera columnas de la
tabla mencionan iniciativas pasadas (pre-SDN, es decir, antes de las
iniciativas basadas en OpenFlow que surgieron en el concepto de SDN) y
desarrollos recientes que condujeron a la definicin de SDN. La
programacin del plano de datos tiene una larga historia. Las redes activas
[81] representan uno de los primeros intentos de construir nuevas
arquitecturas de red basadas en este concepto. La idea principal detrs de
las redes activas es que cada nodo tenga la capacidad de realizar clculos o
modificar el contenido de los paquetes. Con este fin, las redes activas
proponen dos enfoques distintos: interruptores programables y cpsulas. El
formador no cambia automticamente en el formato de paquete o celda
existente. Asume que los dispositivos de conmutacin soportan la descarga
de programas con instrucciones especficas sobre cmo procesar paquetes.
Por otra parte, la segunda aproximacin sugiere que los paquetes deben ser
reemplazados por pequeos programas, que se encapsulan en tramas de
transmisin y se ejecutan en cada nodo a lo largo de su trayectoria. ForCES
[30], OpenFlow [9] y POF [31] representan enfoques recientes para el diseo
y despliegue de dispositivos de plano de datos programables. De una
manera diferente a las redes activas, estas nuevas propuestas se basan
esencialmente en la modificacin de dispositivos de reenvo para soportar
tablas de flujo, que pueden ser configuradas dinmicamente por entidades
remotas a travs de operaciones simples tales como aadir, eliminar o
actualizar reglas de flujo, es decir, mesas. Las primeras iniciativas de
separacin de datos y sealizacin de control datan de los aos ochenta y
noventa. El NCP [84] es probablemente el primer intento de separar el
control y la sealizacin del plano de datos. AT & T introdujo PCN para
mejorar la gestin y el control de su red telefnica. Este cambio promovi
un ritmo ms rpido de innovacin de la red y proporcion nuevos medios
para mejorar su eficiencia, aprovechando la visin global de la red
proporcionada por NCP. De manera similar, otras iniciativas como Tempest
[96], ForCES [30], RCP [85] Y PCE [43] propuso la separacin de los planos
de control y datos para la gestin mejorada en ATM, Ethernet, BGP, y las
redes de conmutacin de etiquetas multiprotocolo (MPLS), respectivamente.
Ms recientemente, iniciativas como SANE [100], Ethane [101], OpenFlow
[9], NOX [26] y POF [31] propusieron el desacoplamiento de los planos de
control y datos para las redes Ethernet. Curiosamente, estas soluciones
recientes no requieren modificaciones significativas en los dispositivos de
reenvo, hacindolos atractivos no slo para la comunidad de investigacin
en red, sino an ms para la industria de redes. Por ejemplo, los dispositivos
basados en OpenFlow [9] pueden coexistir fcilmente con los dispositivos
Ethernet tradicionales, lo que permite una adopcin progresiva (es decir,
que no requiere un cambio perturbador en las redes existentes). La
virtualizacin de la red ha ganado una nueva traccin con la llegada de
SDN. Sin embargo, la virtualizacin de la red tambin tiene sus races en la
dcada de 1990. El proyecto Tempest [96] es una de las primeras iniciativas
para introducir la virtualizacin de redes, introduciendo el concepto de
switchlets en redes ATM. La idea central era permitir mltiples switchlets
encima de un nico conmutador ATM, permitiendo que mltiples redes ATM
independientes compartan los mismos recursos fsicos. Del mismo modo,
MBone [102] fue una de las primeras iniciativas que apunt a la creacin de
topologas de redes virtuales en la parte superior de las redes de legado, o
superposicin de redes. A este trabajo le siguieron otros proyectos como
Planet Lab [105], GENI [107] y VINI [108]. FlowVisor [119] tambin es digno
de mencin como una de las primeras iniciativas recientes para promover
una arquitectura de virtualizacin de tipo hipervisor para infraestructuras de
red, parecida al modelo de hipervisor comn para el clculo y el
almacenamiento. Ms recientemente, Koponen et al. Propuso una
plataforma de virtualizacin de red (NVP) [112] para centros de datos
multitenant utilizando SDN como una tecnologa de base. El concepto de
NOS renaci con la introduccin de NOSs basados en OpenFlow, como NOX
[26], Onix [7] y ONOS [117]. De hecho, NOSs han estado en existencia
durante dcadas. Uno de los ms conocidos y desplegados es el Cisco IOS
[113], que fue originalmente concebido a principios de 1990. Otras NOS que
vale la pena mencionar son JUNOS [114], ExtremeXOS [115], y SR OS [116].
A pesar de ser NOSs ms especializados, dirigidos a dispositivos de red
como enrutadores principales de alto rendimiento, estos NOS resumen el
hardware subyacente al operador de red, facilitando el control de la
infraestructura de red y simplificando el desarrollo y la implementacin de
nuevos protocolos y aplicaciones de gestin . Por ltimo, tambin vale la
pena recordar las iniciativas que pueden considerarse impulsores de la
tecnologa. En la dcada de 1990, comenz a ocurrir un movimiento hacia la
sealizacin abierta [118]. La motivacin principal fue promover la adopcin
ms amplia de las ideas propuestas por proyectos como el NCP [84] y
Tempest [96]. El movimiento de sealizacin abierto trabaj para separar el
control y la sealizacin de datos al proponer interfaces abiertas y
programables. Curiosamente, un movimiento bastante similar se puede
observar con el reciente advenimiento de OpenFlow y SDN, con el liderazgo
de la ONF [10]. Este tipo de movimiento es crucial para promover las
tecnologas abiertas en el mercado, con la esperanza de liderar a los
fabricantes de equipos para apoyar estndares abiertos y as fomentar la
interoperabilidad, la competencia y la innovacin. Para una historia
intelectual ms extensa de redes programables y SDN, dirigimos al lector al
reciente artculo de Feamster et al. [17].
IV. REDES DEFINIDAS POR SOFTWARE: BOTTOM-UP
Una arquitectura SDN puede ser representada como una composicin de
capas diferentes, como se muestra en la Fig. 6 (b). Cada capa tiene sus
propias funciones especficas. Mientras que algunos de ellos estn siempre
presentes en una implementacin SDN, como la API hacia el sur, las NOS, la
API hacia el norte y las aplicaciones de red, otras pueden estar presentes
slo en implementaciones particulares, como la virtualizacin basada en
hipervisor o en lenguaje. La fig. 6 presenta una perspectiva triple de las
NSS. Las capas SDN se representan en la Fig. 6 (b), como se explic
anteriormente. La fig. 6 (a) y (c) representa una vista orientada en plano y
una perspectiva de diseo de sistema, respectivamente. Las siguientes
secciones introducen cada capa, siguiendo un enfoque ascendente. Para
cada capa, las propiedades y conceptos del ncleo se explican en base a las
diferentes tecnologas y soluciones. Adems, se discuten las tcnicas y
herramientas de depuracin y solucin de problemas.
A. Capa I: Infraestructura
Una infraestructura SDN, similar a una red tradicional, est compuesta por
un conjunto de equipos de red (switches, routers y dispositivos de
middlebox). La principal diferencia reside en el hecho de que esos
dispositivos fsicos tradicionales son ahora simples elementos de reenvo sin
control incorporado o software para tomar decisiones autnomas. La
inteligencia de red se elimina de los dispositivos de plano de datos a un
sistema de control lgicamente centralizado, es decir, las NOS y
aplicaciones, como se muestra en la Fig. 6 (c). Ms importante an, estas
nuevas redes se construyen (conceptualmente) sobre interfaces abiertas y
estndar (por ejemplo, OpenFlow), un enfoque crucial para asegurar la
compatibilidad de la configuracin y la comunicacin y la interoperabilidad
entre diferentes dispositivos de datos y planos de control. En otras palabras,
estas interfaces abiertas permiten a las entidades controladoras programar
dinmicamente dispositivos de reenvo heterogneos, algo difcil en las
redes tradicionales, debido a la gran variedad de interfaces propietarias y
cerradas ya la naturaleza distribuida del plano de control. En una
arquitectura SDN / OpenFlow, hay dos elementos principales, los
controladores y los dispositivos de reenvo, como se muestra en la Fig. 7. Un
dispositivo de plano de datos es un elemento de hardware o software
especializado en el reenvo de paquetes, mientras que un controlador es
una pila de software (el "cerebro de red") que se ejecuta en una plataforma
de hardware de productos bsicos. Un dispositivo de reenvo
OpenFlowenabled se basa en una tubera de tablas de flujo donde cada
entrada de una tabla de flujo tiene tres partes: 1) una regla de coincidencia;
2) acciones a ejecutar en paquetes coincidentes; Y 3) contadores que
mantienen las estadsticas de paquetes coincidentes. Este modelo de alto
nivel y simplificado derivado de
OpenFlow es actualmente el diseo ms extendido de los dispositivos de
plano de datos SDN. Sin embargo, se estn llevando a cabo otras
especificaciones de los dispositivos de reenvo habilitados para SDN,
incluidos POF [31], [120] y los modelos negociables de datapath (NDMs) del
Grupo de Trabajo de Abstracciones de Transmisin de la ONF (FAWG). Dentro
de un dispositivo OpenFlow, una ruta a travs de una secuencia de tablas
de flujo define cmo se deben manejar los paquetes. Cuando un nuevo
paquete llega, el proceso de bsqueda comienza en la primera tabla y
termina con una coincidencia en una de las tablas de la tubera o con una
falta (cuando no se encuentra ninguna regla para ese paquete). Una regla
de flujo se puede definir combinando diferentes campos de coincidencia,
como se ilustra en la Fig. 7. Si no hay una regla por defecto, el paquete ser
descartado. Sin embargo, el caso comn es instalar una regla
predeterminada que indica al conmutador que enve el paquete al
controlador (oa la tubera normal no OpenFlow del conmutador). La
prioridad de las reglas sigue el nmero de secuencia natural de las tablas y
el orden de filas en una tabla de flujo. Las acciones posibles incluyen: 1)
enviar el paquete a los puertos salientes; 2) encapsularlo y enviarlo al
controlador; 3) dejarlo caer; 4) enviarlo a la tubera de procesamiento
normal y 5) enviarlo a la siguiente tabla de flujo oa tablas especiales, tales
como las tablas de grupo o de medicin presentadas en el ltimo protocolo
de OpenFlow. Como se detalla en la Tabla 3, cada versin de la
especificacin OpenFlow introdujo nuevos campos de coincidencia
incluyendo Ethernet, IPv4 / v6, MPLS, TCP / UDP, etc. Sin embargo, slo un
subconjunto de los campos coincidentes son obligatorios para ser
compatibles con una versin de protocolo dada . Del mismo modo, muchas
acciones y tipos de puertos son caractersticas opcionales. Las reglas de
coincidencia de flujo pueden basarse en combinaciones casi arbitrarias de
bits de los diferentes encabezados de paquetes utilizando mscaras de bits
para cada campo. La adicin de nuevos campos coincidentes se ha
facilitado con las capacidades de extensibilidad introducidas en OpenFlow
versin 1.2 a travs de un OpenFlow Extensible Match (OXM) basado en
estructuras de longitud de tipo (TLV). Para mejorar la extensibilidad general
del protocolo, con la versin 1.4 de OpenFlow, tambin se han agregado
estructuras TLV a puertos, tablas y colas en sustitucin de las contrapartidas
codificadas de versiones anteriores de protocolos.
1) Visin general de los dispositivos OpenFlow disponibles: Existen varios
dispositivos de reenvo habilitados para OpenFlow disponibles en el
mercado, tanto como productos comerciales como de cdigo abierto (ver
Tabla 4).
Hay muchos disponibles en el mercado, listos para implementar,
conmutadores y enrutadores OpenFlow, entre otros dispositivos. La mayora
de los conmutadores disponibles en el mercado tienen memoria ternaria
relativamente accesible (TCAMs), con hasta 8000 entradas. Sin embargo,
esto est cambiando a un ritmo acelerado. Algunos de los ltimos
dispositivos lanzados en el mercado van mucho ms all de esa cifra. Los
conmutadores Gigabit Ethernet (GbE) para propsitos comerciales comunes
ya soportan hasta 32 000 flujos de coincidencia exacta de Capa 2 (L2) +
Capa 3 (L3) o 64 000 L2 / L3 [122]. Los switches de clase empresarial 10GbE
se entregan con ms de 80 000 entradas de flujo de capa 2 [123]. Otros
dispositivos de conmutacin que utilizan chips de alto rendimiento (por
ejemplo, EZchip NP-4) proporcionan
Memoria TCAM optimizada que admite desde 125 000 hasta 1 000 000
entradas de la tabla de flujo [124]. Esto es una clara seal de que el tamao
de las tablas de flujo est creciendo a un ritmo que apunta a satisfacer las
necesidades de futuras implementaciones SDN. Los fabricantes de equipos
de red han producido varios tipos de dispositivos habilitados para OpenFlow,
como se muestra en la Tabla 4. Estos dispositivos van desde equipos para
pequeas empresas (por ejemplo, conmutadores GbE) hasta equipos de alta
clase (por ejemplo, chasis de alta densidad con chasis Conectividad de
hasta 100GbE para aplicaciones de borde a ncleo, con decenas de terabits
por segundo de capacidad de conmutacin). Los conmutadores de software
estn surgiendo como una de las soluciones ms prometedoras para los
centros de datos y las infraestructuras de redes virtualizadas [147] - [149].
Ejemplos de implementaciones de switch OpenFlow basadas en software
incluyen Switch Light [145], ofsoftswitch13 [141], Open vSwitch [142],
OpenFlow Reference [143], Pica8 [150], Pantou [146] y XorPlus [46].
Informes recientes muestran que el nmero de puertos de acceso virtual es
ya mayor que los puertos de acceso fsico en los centros de datos [149]. La
virtualizacin de la red ha sido uno de los motores detrs de esta tendencia.
Interruptores de software como Open vSwitch se han utilizado para mover
las funciones de red al borde (con el ncleo realizando el reenvo IP
tradicional), permitiendo as la virtualizacin de la red [112]. Una
observacin interesante es el nmero de pequeas empresas de
lanzamiento dedicadas a SDN, como Big Switch, Pica8, Cyan, Plexxi y
NoviFlow. Esto parece implicar que SDN est creando un mercado de redes
ms competitivo y abierto, uno de sus objetivos originales. Otros efectos de
esta apertura desencadenada por SDN incluyen la aparicin de los llamados
"conmutadores de metal desnudo" o "conmutadores de cuadro blanco",
donde el software y la seguridad se guardan separadamente y el usuario
final es libre de cargar un sistema operativo de su eleccin [151].
B. Layer II: Southbound Interfaces Las interfaces Southbound (o southbound
APIs) son los puentes de conexin entre elementos de control y de reenvo,
siendo as el instrumento crucial para separar claramente el control y la
funcionalidad del plano de datos. Sin embargo, estas API todava estn
estrechamente vinculadas a los elementos de reenvo de la infraestructura
fsica o virtual subyacente. Normalmente, un nuevo conmutador puede
tardar dos aos en estar listo para la comercializacin si se construye desde
cero, con ciclos de actualizacin que pueden tardar hasta nueve meses. El
desarrollo de software para un nuevo producto puede tomar desde seis
meses hasta un ao [152]. El principal componente de su diseo, Las API
hacia el sur representan una serie de barreras para la introduccin y la
aceptacin de cualquier otra tecnologa de red. En la actualidad, la aparicin
de propuestas de API de SDN hacia el sur como OpenFlow [9] es vista como
bienvenida por muchos en la industria. Estas normas promueven la
interoperabilidad, permitiendo el despliegue de dispositivos de red
agnsticos de proveedores. Esto ya ha sido demostrado por la
interoperabilidad entre equipos habilitados para OpenFlow de diferentes
proveedores. A partir de esta escritura, OpenFlow es el ms aceptado y
desplegado abierto southbound estndar para SDN. Proporciona una
especificacin comn para implementar dispositivos de reenvo habilitados
para OpenFlow, y para el canal de comunicacin entre datos y dispositivos
de plano de control (por ejemplo, conmutadores y controladores). El
protocolo OpenFlow proporciona tres fuentes de informacin para NOS. En
primer lugar, los mensajes basados en eventos se envan mediante reenvo
de dispositivos al controlador cuando se activa un enlace o cambio de
puerto. En segundo lugar, las estadsticas de flujo son generadas por los
dispositivos de reenvo y
Recogida por el controlador. En tercer lugar, los mensajes de paquete son
enviados por los dispositivos de reenvo al controlador cuando no saben qu
hacer con un nuevo flujo entrante o porque hay una accin explcita "enviar
al controlador" en la entrada coincidente de la tabla de flujo. Estos canales
de informacin son los medios esenciales para proporcionar informacin a
nivel de flujo a la NOS. Aunque sea el ms visible, OpenFlow no es la nica
interfaz southbound disponible para SDN. Existen otras propuestas API tales
como ForCES [30], Open vSwitch Database (OVSDB) [153], POF [31], [120],
OpFlex [154], OpenState [155], revisin de la librera de flujo abierto (ROFL)
156], la capa de abstraccin de hardware (HAL) [157], [158], y la
abstraccin programable de la ruta de datos (PAD) [159]. ForCES propone un
enfoque ms flexible de la gestin de red tradicional sin cambiar la
arquitectura actual de la red, es decir, sin necesidad de un controlador
externo lgicamente centralizado. Los planos de control y de datos estn
separados, pero pueden mantenerse potencialmente en el mismo elemento
de red. Sin embargo, la parte de control del elemento de red se puede
actualizar sobre la marcha con el firmware de terceros. OVSDB [153] es otro
tipo de API orientada hacia el sur, diseada para proporcionar capacidades
avanzadas de administracin para Open vSwitches. Ms all de las
capacidades de OpenFlow para configurar el comportamiento de los flujos
en un dispositivo de reenvo, Open vSwitch ofrece otras funciones de red.
Por ejemplo, permite a los elementos de control crear varias instancias de
conmutacin virtual, establecer polticas de calidad de servicio (QoS) en
interfaces, adjuntar interfaces a los conmutadores, configurar interfaces de
tnel en rutas de datos de OpenFlow, gestionar colas y recopilar
estadsticas. Por lo tanto, el OVSDB es un protocolo complementario a
OpenFlow para Open vSwitch. Uno de los primeros competidores directos de
OpenFlow es POF [31], [120]. Uno de los objetivos principales de POF es
mejorar el actual plano de reenvo SDN. Con OpenFlow, los conmutadores
tienen que entender los encabezados de los protocolos para extraer los bits
necesarios para que coincidan con las entradas de las tablas de flujo. Este
anlisis representa una carga significativa para los dispositivos de plano de
datos, en particular si consideramos que OpenFlow versin 1.3 ya contiene
ms de 40 campos de encabezado. Adems de esta complejidad inherente,
problemas de compatibilidad con versiones anteriores pueden surgir cada
vez que nuevos campos de encabezado se incluyen o se quitan del
protocolo. Para lograr su objetivo, POF propone un conjunto de instrucciones
de flujo genrico (FIS) que hace que el protocolo del plano de reenvo no
tenga en cuenta.
Un elemento de reenvo no necesita saber, por s mismo, nada sobre el
formato de paquete por adelantado. Los dispositivos de reenvo son vistos
como cajas blancas con slo capacidades de procesamiento y reenvo. En
POF, el anlisis de paquetes es una tarea de controlador que da como
resultado una secuencia de claves genricas y instrucciones de bsqueda
de tabla que se instalan en los elementos de reenvo. El comportamiento de
los dispositivos de plano de datos est, por lo tanto, completamente bajo el
control del controlador SDN. Similar a una unidad de procesamiento central
(CPU) en un sistema informtico, un conmutador POF es agnstico de
aplicacin y protocolo. Una propuesta de interfaz southbound reciente es
OpFlex [154]. Contrariamente a OpenFlow (y similar a ForCES), una de las
ideas detrs de OpFlex es distribuir parte de la complejidad de la gestin de
la red a los dispositivos de reenvo, con el objetivo de mejorar la
escalabilidad. De forma similar a OpenFlow, las directivas son lgicamente
centralizadas y abstradas de la implementacin subyacente. Las diferencias
entre OpenFlow y OpFlex son una clara ilustracin de una de las preguntas
importantes que se deben responder al disear una interfaz hacia el sur:
dnde colocar cada pieza de la funcionalidad general. A diferencia de
OpFlex y POF, OpenState [155] y ROFL [156] no proponen un nuevo
conjunto de instrucciones para programar dispositivos planos de datos.
OpenState propone mquinas finitas extendidas (abstracciones de
programacin con estado) como una extensin (superconjunto) de la
abstraccin de coincidencia / accin de OpenFlow. Las mquinas de estado
finito permiten la implementacin de varias tareas con estado dentro de los
dispositivos de reenvo, es decir, sin aumentar la complejidad o la
sobrecarga del plano de control. Por ejemplo, todas las tareas que implican
slo el estado local, como las operaciones de aprendizaje de control de
acceso a medios (MAC), el acceso de puerta o los cortafuegos de borde con
estado, se pueden realizar directamente en los dispositivos de reenvo sin
ninguna comunicacin de control y retardo de procesamiento adicionales.
ROFL, por otra parte, propone una capa de abstraccin que oculta los
detalles de las diferentes versiones de OpenFlow, proporcionando as una
API limpia para desarrolladores de software, simplificando el desarrollo de
aplicaciones.
HAL [157], [158] no es exactamente una API hacia el sur, pero est
estrechamente relacionada. Diferentemente de los enfoques mencionados
anteriormente, HAL es ms bien un traductor que permite una API hacia el
sur como OpenFlow para controlar dispositivos de hardware heterogneos.
Por lo tanto, se encuentra entre la API hacia el sur y el dispositivo de
hardware. Recientes experimentos de investigacin con HAL han
demostrado la viabilidad de SDN control en redes de acceso como Gigabit
Ethernet pasiva ptica redes (GEPON) [160] y redes de cable (DOCSIS)
[161]. Un esfuerzo similar a HAL es PAD [159], una propuesta que va un
poco ms all al trabajar tambin como un API hacia el sur por s mismo.
Ms importante an, PAD permite una programacin ms genrica de los
dispositivos de reenvo permitiendo el control del comportamiento de la ruta
de datos utilizando operaciones de byte genricas, definiendo encabezados
de protocolo y proporcionando definiciones de funciones.
C. Capa III: Hipervisores de red La virtualizacin ya es una tecnologa
consolidada en las computadoras modernas. Los rpidos avances de la
ltima dcada han hecho que la virtualizacin de las plataformas de
computacin sea corriente. Basndose en informes recientes, el nmero de
servidores virtuales ya ha superado el nmero de servidores fsicos [162],
[112]. Los hipervisores permiten a las distintas mquinas virtuales compartir
los mismos recursos de hardware. En una infraestructura de nube-asa-
service (IaaS), cada usuario puede tener sus propios recursos virtuales,
desde la computacin hasta el almacenamiento. Esto permiti nuevos
ingresos y modelos de negocio donde los usuarios asignan recursos a
demanda, a partir de una infraestructura fsica compartida, a un costo
relativamente bajo. Al mismo tiempo, los proveedores hacen un mejor uso
de la capacidad de sus infraestructuras fsicas instaladas, creando nuevas
fuentes de ingresos sin aumentar significativamente sus gastos de capital y
gastos operativos (OPEX). Una de las caractersticas interesantes de las
tecnologas de virtualizacin en la actualidad es el hecho de que las
mquinas virtuales pueden migrarse fcilmente de un servidor fsico a otro
y pueden crearse y / o destruirse a peticin, permitiendo el suministro de
servicios elsticos con una gestin flexible y fcil. Desafortunadamente, la
virtualizacin slo se ha realizado parcialmente en la prctica. A pesar de
los grandes avances en la virtualizacin de los elementos de computacin y
almacenamiento, la red todava est configurada principalmente
estticamente en una caja por caja [33]. Los principales requisitos de red
pueden capturarse a lo largo de dos dimensiones: topologa de red y
espacio de direcciones. Las diferentes cargas de trabajo requieren
diferentes topologas y servicios de red, como servicios planos L2 o L3 o
incluso servicios L4-L7 ms complejos para funciones avanzadas.
Actualmente, es muy difcil para una sola topologa fsica soportar las
diversas demandas de aplicaciones y servicios. Del mismo modo, el espacio
de direcciones es difcil de cambiar en las redes actuales. Hoy en da, las
cargas de trabajo virtualizadas tienen que operar en la misma direccin de
la infraestructura fsica. Por lo tanto, es difcil mantener la configuracin de
red original para un inquilino, las mquinas virtuales no pueden migrar a
ubicaciones arbitrarias y el esquema de direccionamiento es fijo y difcil de
cambiar. Por ejemplo, IPv6 no puede ser utilizado por las mquinas virtuales
(VM) de un inquilino si los dispositivos de reenvo fsicos subyacentes
admiten slo IPv4. Para proporcionar una virtualizacin completa, la red
debe proporcionar propiedades similares a la capa de clculo [33]. La
infraestructura de red debe ser capaz de soportar topologas de redes
arbitrarias y esquemas de direccionamiento. Cada inquilino debe tener la
capacidad de configurar los nodos informticos y la red simultneamente.
La migracin de host debe activar automticamente la migracin de los
puertos de red virtuales correspondientes. Uno podra pensar que las
primitivas de virtualizacin de larga data como VLAN (dominio L2
virtualizado), NAT (espacio de direcciones IP virtualizado) y MPLS (ruta
virtualizada) son suficientes para proporcionar una virtualizacin completa y
automatizada de la red. Sin embargo, estas tecnologas se anclan en una
configuracin de base caja por caja, es decir, no hay una nica abstraccin
unificadora que puede ser apalancada para configurar (o reconfigurar) la red
de una manera global. Como consecuencia, el aprovisionamiento de la red
actual puede tomar meses, mientras que la provisin de computacin tarda
slo unos minutos [112], [163] - [165]. Hay esperanza de que esta situacin
cambie con SDN y la disponibilidad de nuevas tcnicas de tunelizacin (por
ejemplo, VXLAN [35] y NVGRE [36]). Por ejemplo, soluciones tales como
FlowVisor [111], [166], [167], FlowN [168], NVP [112], OpenVirteX [169],
[170], IBM SDN VE [171], [172], RadioVisor [173], AutoVFlow [174],
eXtensible Datapath Daemon (xDPd) [175], [176], ptica de transporte de
red de virtualizacin [177], y la versin agnstico OpenFlow slicing
mecanismos [178], han sido recientemente propuesto, evaluado y
Desplegado en escenarios reales para el aprovisionamiento bajo demanda
de redes virtuales.
1) Cortar la red: FlowVisor es una de las primeras tecnologas para
virtualizar un SDN. Su idea bsica es permitir que mltiples redes lgicas
compartan la misma infraestructura de red OpenFlow. Para ello, proporciona
una capa de abstraccin que facilita la divisin de un plano de datos basado
en conmutadores habilitados OpenFlow, permitiendo la coexistencia de
redes mltiples y diversas. Se consideran cinco dimensiones de corte en
FlowVisor: ancho de banda, topologa, trfico, CPU del dispositivo y tablas de
reenvo. Adems, cada rebanada de red soporta un controlador, es decir,
mltiples controladores pueden coexistir en la parte superior de la misma
infraestructura de red fsica. A cada controlador se le permite actuar slo en
su propia rebanada de red. En trminos generales, una rebanada se define
como un conjunto particular de flujos en el plano de datos. Desde una
perspectiva de diseo de sistemas, FlowVisor es un proxy transparente que
intercepta mensajes OpenFlow entre switches y controladores. Particiona las
tablas de ancho de banda y flujo de enlace de cada switch. Cada segmento
recibe una velocidad de datos mnima y cada controlador invitado obtiene
su propia tabla de flujo virtual en los conmutadores. De forma similar a
FlowVisor, OpenVirteX [169], [170] acta como un proxy entre el NOS y los
dispositivos de reenvo. Sin embargo, su principal objetivo es proporcionar
SDN virtuales a travs de
Topologa, direccin y virtualizacin de funciones de control. Todas estas
propiedades son necesarias en entornos multitenant donde las redes
virtuales necesitan ser gestionadas y migradas de acuerdo con los recursos
virtuales de computacin y almacenamiento. Las topologas de redes
virtuales tienen que ser asignadas a los dispositivos de reenvo
subyacentes, con direcciones virtuales que permiten a los inquilinos
administrar completamente su espacio de direcciones sin depender de los
elementos de red subyacentes que abordan los esquemas. AutoSlice [179]
es otra propuesta de virtualizacin basada en SDN. Diferentemente de
FlowVisor, se centra en la automatizacin de la implementacin y operacin
de topologas virtuales SDN (vSDN) con mediacin mnima o arbitraje por
parte del operador de la red de sustratos. Adems, AutoSlice se dirige
tambin a los aspectos de escalabilidad de los hipervisores de red al
optimizar la utilizacin de los recursos y al mitigar las limitaciones de la
tabla de flujo mediante un control preciso de las estadsticas de trfico de
flujo. Al igual que AutoSlice, AutoVFlow [174] tambin habilita la
virtualizacin de red multidomain. Sin embargo, en lugar de tener un solo
tercero para controlar la asignacin de topologas vSDN, como es el caso de
AutoSlice, AutoVFlow utiliza una arquitectura multiproxy que permite a los
propietarios de redes implementar la virtualizacin de espacio de flujo de
manera autnoma intercambiando informacin entre los diferentes
dominios. FlowN [168], [180] se basa en un concepto ligeramente diferente.
Mientras que FlowVisor puede compararse con una tecnologa de
virtualizacin completa, FlowN es anlogo a una virtualizacin basada en
contenedores, es decir, un enfoque de virtualizacin ligero. FlowN tambin
fue concebido principalmente para abordar multitenancy en el contexto de
las plataformas de nube. Est diseado para ser escalable y permite utilizar
una plataforma de controlador compartido nica para administrar varios
dominios en un entorno de nube. Cada inquilino tiene un control total sobre
sus redes virtuales y es libre de implementar cualquier abstraccin de red y
la aplicacin en la parte superior de la plataforma del controlador. El
hipervisor composicin SDN [181] fue diseado con un conjunto diferente de
objetivos. Su principal objetivo es permitir la ejecucin cooperativa
(secuencial o paralela) de aplicaciones desarrolladas con diferentes
lenguajes de programacin o concebidas para diversas plataformas de
control. Por lo tanto, ofrece interoperabilidad y portabilidad, adems de las
funciones tpicas de hipervisores de red.
2) Hipervisores comerciales de la Red Multitenant: Ninguno de los enfoques
antes mencionados est diseado para abordar todos los desafos de los
centros de datos de mltiples agentes. Por ejemplo, los inquilinos quieren
ser capaces de migrar sus soluciones empresariales a los proveedores de la
nube sin la necesidad de modificar la configuracin de red de su red
domstica. Las tecnologas de redes existentes y las estrategias de
migracin han fracasado en su mayora en satisfacer tanto los requisitos de
los inquilinos como de los proveedores de servicios.
Un entorno multitenant debe ser anclado en un hipervisor de red capaz de
abstraer los dispositivos de reenvo de subyacentes y la topologa de red
fsica de los inquilinos. Adems, cada inquilino debe tener acceso a
abstracciones de control y administrar sus propias redes virtuales de forma
independiente y aislada de otros inquilinos. Con la demanda del mercado
para la virtualizacin de la red y la reciente investigacin sobre SDN
mostrando promesa como una tecnologa habilitadora, diferentes
plataformas de virtualizacin comercial basadas en los conceptos de SDN
han comenzado a aparecer. VMWare ha propuesto una plataforma de
virtualizacin de red (NVP) [112] que proporciona las abstracciones
necesarias para permitir la creacin de redes virtuales independientes para
entornos multitenant de gran escala. NVP es una solucin completa de
virtualizacin de red que permite la creacin de redes virtuales, cada una
con un modelo de servicio independiente, topologas y arquitecturas de
direccionamiento en la misma red fsica. Con NVP, los inquilinos no
necesitan saber nada acerca de la topologa de red subyacente, la
configuracin u otros aspectos especficos de los dispositivos de reenvo. El
hipervisor de red de NVP traduce las configuraciones y requerimientos de
los inquilinos en conjuntos de instrucciones de bajo nivel para ser instalados
en los dispositivos de reenvo. Para ello, la plataforma utiliza un grupo de
controladores SDN para manipular las tablas de reenvo de los vSwitches
Open en el hipervisor del host. Por lo tanto, las decisiones de reenvo se
hacen exclusivamente en el borde de la red. Despus de que se toma la
decisin, el paquete es tunneled sobre la red fsica al hypervisor del
anfitrin receptor (la red fsica ve nada sino paquetes IP ordinarios). IBM
tambin ha propuesto recientemente SDN VE [171], [172], otra plataforma
comercial y de clase empresarial de virtualizacin de la red. SDN VE utiliza
OpenDaylight como uno de los bloques de construccin de los llamados
entornos definidos por software (SDE), una tendencia que se discute ms
detalladamente en la Seccin V. Esta solucin tambin ofrece un marco
completo de implementacin para la virtualizacin de redes. Al igual que
NVP, utiliza un enfoque de superposicin basado en host, logrando una
abstraccin de red avanzada que permite servicios de red a nivel de
aplicacin en entornos multitenant de gran escala. Curiosamente, SDN VE
1.0 es capaz de apoyar en una sola consolidacin hasta 16.000 redes
virtuales y 128.000 mquinas virtuales [171], [172]. Para resumir,
actualmente ya hay algunas propuestas de hipervisor de red aprovechando
los avances de SDN. Hay, sin embargo, todava varias cuestiones a tratar.
Estos incluyen, entre otros, la mejora de las tcnicas de cartografa virtual-
fsica [182], la definicin del nivel de detalle que debe exponerse en el nivel
lgico, y el apoyo a la virtualizacin anidadas [29]. Sin embargo,
anticipamos que este ecosistema se expandir en un futuro prximo, ya que
la virtualizacin de la red probablemente desempear un papel clave en
futuros entornos virtualizados, al igual que la expansin que hemos estado
presenciando en la computacin virtualizada.
D. Capa IV: Sistemas operativos de red / controladores Los sistemas
operativos tradicionales proporcionan abstracciones (por ejemplo, API de
programacin de alto nivel) para acceder a dispositivos de nivel inferior,
gestionar el acceso concurrente a los recursos subyacentes (por ejemplo,
unidad de disco duro, adaptador de red,
Memoria), y proporcionar mecanismos de proteccin de seguridad. Estas
funcionalidades y recursos son factores clave para aumentar la
productividad, facilitando la vida de los desarrolladores de sistemas y
aplicaciones. Su uso generalizado ha contribuido significativamente a la
evolucin de varios ecosistemas (por ejemplo, lenguajes de programacin) y
el desarrollo de una mirada de aplicaciones. Por el contrario, hasta el
momento las redes se han gestionado y configurado utilizando conjuntos de
instrucciones de nivel inferior, especficos del dispositivo y principalmente
NOS propietarios cerrados (por ejemplo, Cisco IOS y Juniper JunOS). Por otra
parte, la idea de que los sistemas operativos abstraen las caractersticas
especficas de los dispositivos y proporcionen, de manera transparente, las
funcionalidades comunes, est an mayormente ausente en las redes. Por
ejemplo, hoy los diseadores de protocolos de enrutamiento necesitan lidiar
con complicados algoritmos distribuidos al resolver problemas de red. Los
profesionales de la red han resuelto los mismos problemas una y otra vez.
SDN se compromete a facilitar la gestin de la red y aliviar la carga de
resolver problemas de redes mediante el control lgicamente centralizado
que ofrece una NOS [26].
Al igual que con los sistemas operativos tradicionales, el valor crucial de una
NOS es proporcionar abstracciones, servicios esenciales y API comunes a los
desarrolladores. La funcionalidad genrica como el estado de red y la
informacin de topologa de red, el descubrimiento de dispositivos y la
distribucin de configuracin de red se pueden proporcionar como servicios
del NOS. Con NOS, para definir polticas de red, un desarrollador ya no
necesita preocuparse por los detalles de bajo nivel de la distribucin de
datos entre los elementos de enrutamiento, por ejemplo. Estos sistemas
pueden crear un nuevo entorno capaz de fomentar la innovacin a un ritmo
ms rpido al reducir la complejidad inherente a la creacin de nuevos
protocolos de red y aplicaciones de red. Una NOS (o un controlador) es un
elemento crtico en una arquitectura SDN, ya que es la pieza clave de
soporte para la lgica de control (aplicaciones) para generar la
configuracin de red basada en las polticas definidas por el operador de
red. Similar a un sistema operativo tradicional, la plataforma de control
abstrae los detalles de nivel inferior de conexin e interaccin con los
dispositivos de reenvo (es decir, materializar las directivas de red).
1) Ejes de Arquitectura y Diseo: Existe un conjunto muy diverso de
controladores y plataformas de control con diferentes opciones de diseo y
arquitectura [7], [13], [183] - [186]. Los controladores existentes pueden
categorizarse basndose en muchos aspectos. Desde el punto de vista
arquitectnico, uno de los ms relevantes es si estn centralizados o
distribuidos. Este es uno de los principales ejes de diseo de las plataformas
de control de SDN, por lo que comenzamos por discutir este aspecto a
continuacin.
2) Centralizado Versus Distribuido: Un controlador centralizado es una
entidad nica que gestiona todos los dispositivos de reenvo de la red.
Naturalmente, representa un nico punto de fallo y puede tener limitaciones
de escala. Un solo controlador puede no ser suficiente para administrar una
red con un gran nmero de elementos de plano de datos. Los controladores
centralizados como NOX-MT [187], Maestro [188], Beacon [186] y Floodlight
[189] han sido diseados como sistemas altamente concurrentes, para
lograr el rendimiento requerido por las redes de clase empresarial y los
centros de datos. Estos controladores se basan en diseos multiproceso
para explorar el paralelismo de las arquitecturas multicore. Como ejemplo,
Beacon puede manejar ms de 12 millones de flujos por segundo usando
nodos de computacin de gran tamao de proveedores de nube como
Amazon [186]. Otros controladores centralizados como Trema [190], Ryu
NOS [191], Meridian [192] y ProgrammableFlow [133], [193] apuntan a
entornos especficos tales como centros de datos, infraestructuras en nube
y redes de grado portador. Adems, controladores como Rosemary [194]
ofrecen funcionalidad y garantas especficas, a saber seguridad y
aislamiento de aplicaciones. Mediante el uso de una arquitectura basada en
contenedores llamada micro-NOS, logra su objetivo principal de aislar las
aplicaciones e impedir la propagacin de fallas a lo largo de la pila SDN.
Contrariamente a un diseo centralizado, una NOS distribuida puede
ampliarse para satisfacer los requisitos potencialmente de cualquier
entorno, desde redes de pequea a gran escala. Un controlador distribuido
puede ser un clster centralizado de nodos o un conjunto fsicamente
distribuido de elementos. Mientras que la primera alternativa puede ofrecer
un alto rendimiento para centros de datos muy densos, estos ltimos
pueden ser ms resistentes a diferentes tipos de fallas lgicas y fsicas. Un
proveedor de nube que abarca mltiples centros de datos interconectados
por una red de rea extensa puede requerir un enfoque hbrido, con
clsteres de controladores dentro de cada centro de datos y nodos de
control distribuidos en los diferentes sitios [8]. Onix [7], HyperFlow [195], HP
VAN SDN [184], ONOS [117], DISCO [185], yanc [196], PANE [197], SMaRt-
Light [198] y Fleet [199] Ejemplos de controladores distribuidos. La mayora
de los controladores distribuidos ofrecen
Consistency semantics, lo que significa que las actualizaciones de datos en
distintos nodos eventualmente se actualizarn en todos los nodos del
controlador. Esto implica que hay un perodo de tiempo en el cual nodos
distintos pueden leer valores diferentes (valor antiguo o nuevo) para la
misma propiedad. Por otro lado, la consistencia fuerte garantiza que todos
los nodos del controlador leern el valor de la propiedad ms actualizada
despus de una operacin de escritura. A pesar de su impacto en el
rendimiento del sistema, la consistencia fuerte ofrece una interfaz ms
sencilla para los desarrolladores de aplicaciones. Hasta la fecha, slo Onix,
ONOS y SMaRtLight proporcionan este modelo de coherencia de datos. Otra
propiedad comn de los controladores distribuidos es la tolerancia a fallos.
Cuando un nodo falla, otro nodo vecino debe asumir las funciones y
dispositivos del nodo fallido.
Hasta el momento, a pesar de que algunos controladores toleran fallos de
bloqueo, no toleran fallos arbitrarios, lo que significa que cualquier nodo con
un comportamiento anormal no ser reemplazado por uno potencialmente
bien comportado. Un nico controlador puede ser suficiente para
administrar una red pequea, sin embargo, representa un nico punto de
fallo. Del mismo modo, los controladores independientes se pueden
distribuir a travs de la red, cada uno de ellos la gestin de un segmento de
red, reduciendo el impacto de un fallo nico controlador. Sin embargo, si la
disponibilidad de control es importante, se pueden usar controladores de
control para obtener un mayor grado de disponibilidad y / o para soportar
ms dispositivos. En ltima instancia, un controlador distribuido puede
mejorar la resiliencia del plano de control y la escalabilidad y reducir el
impacto de los problemas causados por la particin de red, por ejemplo. La
resiliencia de SDN como un todo es un desafo abierto que ser discutido
ms a fondo en la Seccin V-C.
3) Diseccin de las plataformas de controlador SDN: Para proporcionar una
mejor descripcin arquitectnica y comprender el diseo de una NOS, la
Tabla 5 resume algunas de las propiedades arquitectnicas y de diseo ms
relevantes de los controladores SDN y las plataformas de control. Nos
hemos centrado en los elementos, servicios e interfaces de una seleccin de
controladores y plataformas de control a nivel de produccin y bien
documentados. Cada lnea de la tabla representa un componente que
consideramos importante en una plataforma de control modular y escalable.
Se observa un entorno muy diversificado, con diferentes propiedades y
componentes que son utilizados por distintas plataformas de control. Esto
no es sorprendente, dado un entorno con muchos competidores dispuestos
a estar a la vanguardia del desarrollo SDN. Tenga en cuenta tambin que no
todos los componentes estn disponibles en todas las plataformas. Por
ejemplo, las API de este / oeste no son necesarias en controladores
centralizados como Beacon. De hecho, algunas plataformas tienen nichos de
mercado muy especficos, tales como compaas de telecomunicaciones y
proveedores de nube, por lo que los requisitos sern diferentes. Basado en
el anlisis de los diferentes controladores SDN propuestos hasta la fecha
(tanto los presentados en la Tabla 5 como otros, como NOX [26], Meridian
[192], ForCES [30] y FortNOX [201]), Y proporcionar un primer intento de
disecar de forma clara y sistemtica una plataforma de control SDN en la
Fig. 8. Existen al menos tres capas relativamente bien definidas en la
mayora de las plataformas de control existentes: 1) la aplicacin, la
orquestacin y los servicios; 2) las funciones del controlador del ncleo; Y 3)
los elementos para las comunicaciones en direccin sur. La conexin en las
capas de nivel superior se basa en las interfaces hacia el norte como las API
REST [202] y los lenguajes de programacin como FML [203], Frenetic [204]
y NetCore [205]. En la parte de nivel inferior de una plataforma de control,
las API y los complementos de protocolo orientados hacia el sur interactan
con los elementos de reenvo. El ncleo de una plataforma de controlador
puede caracterizarse como una combinacin de sus funciones de servicio de
red de base y las diversas interfaces.
4) Funciones bsicas del controlador: Las funciones bsicas del servicio de
red son lo que consideramos la funcionalidad esencial que todos los
controladores deben proporcionar. Como una analoga, estas funciones son
como servicios bsicos de sistemas operativos, tales como ejecucin de
programas, control de operaciones de entrada / salida (E / S),
comunicaciones, proteccin, etc. Estos servicios son utilizados por otros
servicios de nivel del sistema operativo y aplicaciones de usuario. De forma
similar, funciones como la topologa, las estadsticas, las notificaciones y la
gestin de dispositivos, junto con el encaminamiento de ruta ms corto y los
mecanismos de seguridad, son funciones de control de red esenciales que
las aplicaciones de red pueden utilizar para construir su lgica. Por ejemplo,
el administrador de notificaciones debe ser capaz de recibir, procesar y
reenviar eventos (por ejemplo, notificaciones de alarma, alarmas de
seguridad, cambios de estado) [55]. Los mecanismos de seguridad son otro
ejemplo, ya que son componentes crticos para proporcionar aislamiento
bsico y aplicacin de seguridad entre servicios y aplicaciones. Por ejemplo,
las reglas generadas por servicios de alta prioridad no deben sobrescribirse
con las reglas creadas por las aplicaciones con una prioridad inferior.
5) Sur: En el nivel inferior de las plataformas de control, las API orientadas
hacia el sur pueden verse como una capa de controladores de dispositivos.
Proporcionan una interfaz comn para las capas superiores, mientras que
permiten a una plataforma de control utilizar diferentes APIs en el sur (por
ejemplo, OpenFlow, OVSDB y ForCES) y plug-ins de protocolo para
administrar dispositivos fsicos o virtuales existentes o nuevos (por ejemplo,
SNMP, BGP , Y NetConf). Esto es esencial tanto para la compatibilidad hacia
atrs como para la heterogeneidad, es decir, para permitir mltiples
protocolos y conectores de administracin de dispositivos. Por lo tanto, en el
plano de datos, una mezcla de dispositivos fsicos, dispositivos virtuales (por
ejemplo, Open vSwitch [109], [142], vRouter [206]) y una variedad de
dispositivos
Interfaces (por ejemplo, OpenFlow, OVSDB, de-config [207], NetConf y
SNMP) pueden coexistir. La mayora de los controladores admiten slo
OpenFlow como una API hacia el sur.
Sin embargo, algunos de ellos, como OpenDaylight, Onix y HP VAN SDN
Controller, ofrecen una gama ms amplia de APIs y / o protocolos en el sur.
Onix admite los protocolos OpenFlow y OVSDB. El controlador HP VAN SDN
tiene otros conectores en el sur, como los agentes L2 y L3. OpenDaylight va
un paso ms all al proporcionar una abstraccin de capa de servicio (SLA)
que permite que varias API y protocolos en direccin sur coexistan en la
plataforma de control. Por ejemplo, su arquitectura original fue diseada
para soportar al menos siete protocolos y plug-ins diferentes: OpenFlow,
OVSDB [153], NETCONF [44], PCEP [43], SNMP [208], BGP [42] y LISP Flow
Mapeo [13]. Por lo tanto, OpenDaylight es una de las pocas plataformas de
control concebidas para soportar una integracin ms amplia de tecnologas
en una sola plataforma de control.
6) hacia el este y hacia el oeste: API hacia el este / oeste, como se ilustra en
la Fig. 9, son un caso especial de interfaces requeridas por los controladores
distribuidos. Actualmente, cada controlador implementa su propia API de
este / oeste. Las funciones de estas interfaces incluyen datos de
importacin / exportacin entre controladores, algoritmos para modelos de
consistencia de datos y capacidades de supervisin / notificacin (por
ejemplo, compruebe si un controlador est activo o notifica una toma de
control en un conjunto de dispositivos de reenvo). De manera similar a las
interfaces hacia el sur y hacia el norte, las APIs de este / oeste son
componentes esenciales de los controladores distribuidos. Para identificar y
proporcionar la compatibilidad comn y la interoperabilidad entre los
diferentes controladores, es necesario contar con interfaces estndar este-
oeste. Por ejemplo, SDNi [209] define requisitos comunes para coordinar el
flujo de configuracin e intercambiar informacin sobre la accesibilidad a
travs de mltiples dominios.
En esencia, tales protocolos se pueden utilizar de una manera orquestada e
interoperable para crear plataformas de control distribuidas escalables y
confiables. La interoperabilidad puede ser aprovechada para aumentar la
diversidad del elemento de la plataforma de control. De hecho, la diversidad
Aumenta la robustez del sistema reduciendo la probabilidad de fallos
comunes, tales como fallos de software [210]. Otras propuestas que tratan
de definir interfaces entre controladores incluyen funciones de importacin /
exportacin de datos Onix [7], interfaz ForCES CE-CE [30], [211], ForCES
Intra-NE coldstandby mecanismos de alta disponibilidad [212] y almacenes
de datos distribuidos [213]. Una API de este / oeste requiere mecanismos
avanzados de distribucin de datos, tales como el protocolo de cola de
mensajes avanzado (AMQP) utilizado por DISCO [185], tcnicas para la
composicin de polticas concurrentes y consistentes distribuidas [215],
bases de datos transaccionales y DHTs [216] (asusedinOnix [7]).
Consistencia y tolerancia a fallos [198], [213]. En una configuracin
multidominio, east / westbound APIs pueden requerir tambin protocolos de
comunicacin ms especficos entre SDN controladores de dominio [217].
Algunas de las funciones esenciales de tales protocolos son coordinar la
configuracin de flujo originada por aplicaciones, intercambiar informacin
de accesibilidad para facilitar el enrutamiento inter-SDN, actualizar la
accesibilidad para mantener el estado de la red consistente, entre otros.
Otra cuestin importante con respecto a las interfaces este / oeste es la
heterogeneidad. Por ejemplo, adems de comunicarse con controladores
SDN iguales, los controladores tambin pueden necesitar comunicarse con
controladores subordinados (en una jerarqua de controladores) y
controladores no SDN [218], como es el caso del flujo cerrado [219]. Para
ser interoperables, las interfaces de este / oeste deben adaptarse a
diferentes interfaces de controladores, con su conjunto especfico de
servicios y las diversas caractersticas de la infraestructura subyacente,
incluida la diversidad de tecnologa, el alcance geogrfico y la escala de la
red y la distincin Entre WAN y LANVpotencialmente a travs de los lmites
administrativos. En esos casos, debe intercambiarse informacin diferente
entre los controladores, incluida la adyacencia y el descubrimiento de
capacidad, la informacin de topologa (en la medida de los contratos
acordados entre los dominios administrativos), la informacin de
facturacin, entre muchos otros [218]. Por ltimo, una "metodologa de la
brjula SDN" [220] sugiere una distincin ms fina entre las interfaces
horizontales en direccin este y oeste, haciendo referencia a las interfaces
hacia el oeste como protocolos SDN a SDN y API controladoras, mientras
que las interfaces eastbound se utilizaran para referirse a protocolos
estndar utilizados Para comunicarse con los planos de control de red
heredados (por ejemplo, PCEP [43] y GMPLS [221]).
7) hacia el norte: Los controladores actuales ofrecen una variedad bastante
amplia de APIs en direccin norte, como APIs ad hoc, APIs RESTful [202],
interfaces de programacin multinivel, sistemas de archivos, entre otras
APIs ms especializadas como NVP NBAPI [7] Y SDMN API [222]. La Seccin
IV-E est dedicada a una discusin ms detallada sobre la capa en evolucin
de las API en direccin norte. Un segundo tipo de interfaces hacia el norte
son los que se derivan de lenguajes de programacin de SDN como Frenetic
[204], Nettle [223], NetCore [205], Procera [224], Pyretic [225], NetKAT
[226] Basado en idiomas [227]. La Seccin IV-G ofrece una visin ms
detallada de los varios lenguajes de programacin existentes para SDN.
8) Comparacin de comentarios y plataformas: La Tabla 6 muestra un
resumen de algunos de los controladores existentes con sus respectivas
arquitecturas y caracteres
Ticas. Como puede observarse, la mayora de los controladores estn
centralizados y multiproceso. Curiosamente, la API hacia el norte es muy
diversa. En particular, cinco controladores (Onix, Floodlight, MuL, Meridian y
SDN Unified Controller) prestan un poco ms de atencin a esta interfaz,
como una declaracin de su importancia. Los modelos de consistencia y
tolerancia a fallos slo estn presentes en Onix, HyperFlow, HP VAN SDN,
ONOS y SMaRtLight. Por ltimo, cuando se trata del estndar OpenFlow
como API hacia el sur, slo Ryu admite sus tres versiones principales (v1.0,
v1.2 y v1.3). Para concluir, es importante destacar que la plataforma de
control es uno de los puntos crticos para el xito de SDN [234]. Uno de los
principales problemas que debe abordarse a este respecto es la
interoperabilidad. Esto es bastante interesante, ya que fue el primer
problema que las API en direccin sur (como OpenFlow) intentaron resolver.
Por ejemplo, mientras que las redes WiFi y de larga evolucin (LTE) [235]
necesitan plataformas de control especializadas como MobileFlow [222] o
SoftRAN [236], las redes de centros de datos tienen diferentes requisitos
que se pueden cumplir con plataformas como Onix [7]. ] O OpenDaylight
[13]. Por esta razn, en ambientes donde la diversidad de redes
Infraestructuras es una realidad, la coordinacin y cooperacin entre los
diferentes controladores es crucial. Por lo tanto, las API estandarizadas para
despliegues multicontroller y multidominio se consideran un paso
importante para lograr este objetivo.
E. Layer V: Northbound Interfaces Las interfaces northbound y southbound
son dos abstracciones clave del ecosistema SDN. La interfaz southbound ya
tiene una propuesta ampliamente aceptada (OpenFlow), pero una interfaz
comn hacia el norte sigue siendo un problema abierto. En este momento
todava puede ser un poco demasiado pronto para definir una interfaz
estndar hacia el norte, ya que los casos de uso todava estn siendo
elaborados [237]. De todos modos, es de esperar un comn (oradefacto)
northboundinterfacetoariseasSDNevolves. Una abstraccin que permita que
las aplicaciones de red no dependan de implementaciones especficas es
importante para explorar todo el potencial de SDN. La interfaz hacia el norte
es principalmente un ecosistema de software, no un hardware, como es el
caso de las APIs hacia el sur. En estos ecosistemas, la implementacin es
comnmente el motor de vanguardia, mientras que los estndares emergen
ms tarde y son esencialmente impulsados por una amplia adopcin [238].
Sin embargo, un estndar inicial y mnimo para las interfaces hacia el norte
puede todava desempear un papel importante para el futuro de la DSN.
Las discusiones sobre esta cuestin ya han comenzado [237] - [244], y un
consenso comn es que las API en direccin norte son realmente
importantes pero que es demasiado pronto para definir una nica Estndar
ahora mismo. La experiencia del desarrollo de diferentes controladores ser
sin duda la base para llegar a una interfaz de nivel de aplicacin comn. Las
interfaces abiertas y estndar hacia el norte son cruciales para promover la
portabilidad de las aplicaciones y la interoperabilidad entre las diferentes
plataformas de control. Una API en direccin norte se puede comparar con el
estndar POSIX [245] en sistemas operativos, representando una
abstraccin que garantiza el lenguaje de programacin y la independencia
del controlador. NOSIX [246] es uno de los primeros ejemplos de un esfuerzo
en esta direccin. Intenta definir interfaces de aplicaciones porttiles de
bajo nivel (por ejemplo, modelo de flujo), haciendo que APIs orientadas
hacia el sur como OpenFlow parezcan '' controladores de dispositivos ''. Sin
embargo, NOSIX no es exactamente una interfaz de propsito general hacia
el norte sino una abstraccin de nivel superior Para interfaces hacia el sur.
De hecho, podra ser parte de la capa de abstraccin comn en una
plataforma de control como la descrita en la Seccin IV-D. Los controladores
existentes, como Floodlight, Trema, NOX, Onix y OpenDaylight, proponen y
definen sus propias API en direccin norte [239], [247]. Sin embargo, cada
uno de ellos tiene sus propias definiciones especficas. Los lenguajes de
programacin como Frenetic [204], Nettle [223], NetCore [205], Procera
[224], Pyretic [248] y NetKAT [226] tambin resumen los detalles internos
de las funciones del controlador y el comportamiento del plano de datos de
la aplicacin Desarrolladores.
Adems, como explicamos en la Seccin IV-G, los lenguajes de
programacin pueden proporcionar una amplia gama de poderosas
abstracciones y mecanismos tales como composicin de aplicaciones, datos
transparentes
La tolerancia a fallos en el plano y una variedad de bloques de construccin
bsicos para facilitar el desarrollo de mdulos y aplicaciones de software.
SFNet [249] es otro ejemplo de una interfaz hacia el norte. Se trata de una
API de alto nivel que convierte los requisitos de las aplicaciones en
solicitudes de servicio de nivel inferior. Sin embargo, SFNet tiene un alcance
limitado, dirigindose a consultas para solicitar el estado de congestin de
la red y servicios como la reserva de ancho de banda y la multidifusin.
Otras propuestas utilizan diferentes enfoques para permitir que las
aplicaciones interacten con los controladores. La plataforma de control
yanc [196] explora esta idea proponiendo una plataforma de control general
basada en Linux y abstracciones como el sistema de archivos virtual (VFS).
Este enfoque simplifica el desarrollo de aplicaciones SDN, ya que los
programadores pueden utilizar un concepto tradicional (archivos) para
comunicarse con dispositivos y subsistemas de nivel inferior.
Eventualmente, es poco probable que una nica interfaz en direccin norte
resulte como la ganadora, ya que los requisitos para las diferentes
aplicaciones de red son muy diferentes. Es probable que las API de las
aplicaciones de seguridad sean diferentes de las de las aplicaciones de
enrutamiento o financieras. Un posible camino de evolucin para las API
hacia el norte son propuestas orientadas verticalmente, antes de que ocurra
cualquier tipo de estandarizacin, un reto que la ONF ha comenzado a
emprender en el GT NBI en paralelo con los desarrollos SDN de fuente
abierta. El trabajo de arquitectura de la ONF [218] incluye la posibilidad de
que las API del norte proporcionen recursos para permitir el control dinmico
y granular de los recursos de la red de las aplicaciones de los clientes,
eventualmente a travs de diferentes fronteras empresariales y
organizacionales. Tambin hay otros tipos de API, como los proporcionados
por el controlador PANE [197]. Diseado para ser adecuado para el concepto
de redes participativas, PANE permite a los administradores de red definir
cuotas especficas de mdulos y polticas de control de acceso en recursos
de red. El controlador proporciona una API que permite que las aplicaciones
de host final soliciten de forma dinmica y autnoma recursos de red. Por
ejemplo, las aplicaciones de audio (por ejemplo, VoIP) y vdeo se pueden
modificar fcilmente para utilizar la API PANE para reservar el ancho de
banda para ciertas garantas de calidad durante la sesin de comunicacin.
PANE incluye un compilador y un motor de verificacin para asegurar que
las solicitudes de ancho de banda no excedan los lmites establecidos por el
administrador y evitar la inanicin, es decir, otras aplicaciones no se vern
afectadas por nuevas solicitudes de recursos.
F. Capa VI: Virtualizacin Basada en Lenguaje Dos caractersticas esenciales
de las soluciones de virtualizacin son la capacidad de expresar la
modularidad y de permitir diferentes niveles de abstraccin, al tiempo que
garantiza las propiedades deseadas como la proteccin. Por ejemplo, las
tcnicas de virtualizacin pueden permitir diferentes vistas de una nica
infraestructura fsica. Por ejemplo, un "switch grande" virtual podra
representar una combinacin de varios dispositivos de reenvo subyacentes.
Esto simplifica intrnsecamente la tarea de los desarrolladores de
aplicaciones, ya que no necesitan pensar en la secuencia de los
conmutadores en los que deben instalarse las reglas de reenvo, sino ms
bien ver la red como un simple "gran conmutador". Desarrollo y despliegue
de aplicaciones de red complejas, como servicios avanzados relacionados
con la seguridad.
Pyretic [248] es un ejemplo interesante de un lenguaje de programacin que
ofrece este tipo de abstraccin de alto nivel de la topologa de red.
Incorpora este concepto de abstraccin introduciendo objetos de red. Estos
objetos consisten en una topologa de red abstracta y los conjuntos de
polticas que se le aplican. Los objetos de red simultneamente ocultan
informacin y ofrecen los servicios necesarios. Otra forma de virtualizacin
basada en lenguaje es el corte esttico. Este es un esquema en el que la red
es cortada por un compilador, basado en las definiciones de la capa de
aplicacin. La salida del compilador es un programa de control monoltico
que ya tiene definiciones de corte y comandos de configuracin para la red.
En tal caso, no es necesario que un hipervisor administre dinmicamente las
rebanadas de la red. El rebanado esttico puede ser valioso para
despliegues con requisitos especficos, en particular aquellos en los que es
preferible un mayor rendimiento y unas sencillas garantas de aislamiento
frente al corte dinmico. Un ejemplo de enfoque de corte esttico es el
aislamiento Esplndido [250]. En esta solucin, las rebanadas de red estn
formadas por tres componentes: 1) topologa, que consiste en
conmutadores, puertos y enlaces; 2) asignacin de conmutadores, puertos y
enlaces de nivel de segmento en la infraestructura de red; Y 3) predicados
en paquetes, donde cada puerto de los interruptores de borde de la
rebanada tiene un predicado asociado. La topologa es un grfico simple de
los nodos, puertos y enlaces cortados. La asignacin traducir los elementos
abstractos de la topologa en los correspondientes fsicos. Los predicados se
utilizan para indicar si se permite a un paquete introducir un segmento
especfico. Se pueden asociar diferentes aplicaciones a cada segmento. El
compilador toma la combinacin de sectores (topologa, asignacin y
predicados) y los programas respectivos para generar una configuracin
global para toda la red. Tambin
Asegura que las propiedades tales como el aislamiento se impongan entre
las rebanadas, es decir, ningn paquete de rebanada A puede atravesar a la
rebanada B a menos que se permita explcitamente. Otras soluciones, como
libNetVirt [251], intentan integrar tecnologas heterogneas para crear
rebanadas de red esttica. LibNetVirt es una biblioteca diseada para
proporcionar una forma flexible de crear y administrar redes virtuales en
diferentes entornos informticos. Su idea principal es similar al proyecto
OpenStack Quantum [252]. Mientras que Quantum est diseado para
OpenStack (ambientes de nube), libNetVirt es una biblioteca de propsito
ms general que se puede utilizar en diferentes entornos. Adems, va un
paso ms all de OpenStack Quantum al habilitar capacidades QoS en redes
virtuales [251]. La biblioteca libNetVirt tiene dos capas: una interfaz de red
genrica y controladores de dispositivo especficos de tecnologa (por
ejemplo, VPN, MPLS, OpenFlow). En la parte superior de las capas estn las
aplicaciones de red y las descripciones de redes virtuales. El controlador
OpenFlow utiliza un controlador NOX para administrar la infraestructura
subyacente, utilizando tablas de flujo basadas en reglas OpenFlow para
crear redes virtuales aisladas. Al soportar diferentes tecnologas, puede
utilizarse como un componente de puente en redes heterogneas. La Tabla
7 resume las tecnologas de virtualizacin hipervisora y no hipervisorbida.
Como se puede observar, slo libNetVirt soporta tecnologas heterogneas,
no restringiendo su aplicacin a redes habilitadas para OpenFlow. FlowVisor,
AutoSlice y OpenVirteX permiten mltiples controladores,
onepernetworkslice.FlowNprovidesacontainerbased enfoque donde mltiples
aplicaciones de diferentes usuarios pueden coexistir en un solo controlador.
FlowVisor permite garantas de aprovisionamiento de QoS utilizando bits
PCP de VLAN para colas de prioridad. SDN VE y NVP tambin proporcionan
sus propios mtodos de aprovisionamiento para garantizar la QoS.
G. Capa VII: Lenguajes de programacin Los lenguajes de programacin
proliferan desde hace dcadas.
Tanto la academia como la industria han evolucionado desde lenguajes de
mquina especficos de hardware de bajo nivel, como ensamblaje para
arquitecturas x86, hasta lenguajes de programacin de alto nivel y
poderosos como Java y Python. Los avances hacia un cdigo ms porttil y
reutilizable han impulsado un cambio significativo en la industria informtica
[254], [255]. Del mismo modo, la programacin en las redes est
comenzando a moverse de lenguajes de mquina de bajo nivel como
OpenFlow ('' montaje '') a lenguajes de programacin de alto nivel [112],
[203] - [205], [223] - [225] . Los lenguajes de mquina de ensamblaje, como
OpenFlow [9] y POF [31], [120], esencialmente imitan el comportamiento de
los dispositivos de reenvo, forzando a los desarrolladores a pasar
demasiado tiempo en detalles de bajo nivel en lugar de resolver el
problema. Los programas Raw OpenFlow tienen que ocuparse de los detalles
del comportamiento del hardware, tales como las reglas que se superponen,
el orden de prioridad de las reglas y las inconsistencias en los planos de
datos que surgen de los paquetes en vuelo cuyas reglas de flujo estn bajo
la instalacin [204, 205, 256]. El uso de estos lenguajes de bajo nivel
dificulta la reutilizacin del software, la creacin de cdigo modular y
extenso y conduce a un proceso de desarrollo ms propenso a errores [225],
[257], [258]. Las abstracciones proporcionadas por los lenguajes de
programacin de alto nivel pueden ayudar significativamente a resolver
muchos de los desafos de estos conjuntos de instruccin de nivel inferior
[203] - [205], [223] - [225]. En SDN, los lenguajes de programacin de alto
nivel pueden ser diseados y utilizados para: 1) crear abstracciones de nivel
superior para simplificar la tarea de programar dispositivos de reenvo; 2)
posibilitar entornos ms productivos y centrados en problemas para los
programadores de software de red, acelerando el desarrollo y la innovacin;
3) promover la modularizacin del software y la reutilizacin del cdigo en el
plano de control de la red; 4) fomentar el desarrollo de la virtualizacin de
red. Varios desafos pueden ser mejor abordados por lenguajes de
programacin en SDNs. Por ejemplo, en SDN puros basados en OpenFlow, es
difcil asegurar que mltiples tareas de una sola aplicacin (por ejemplo,
enrutamiento, supervisin, control de acceso) no interfieran entre s. Por
ejemplo, las reglas generadas para una tarea no deben anular la
funcionalidad de otra tarea [204], [256]. Otro ejemplo es cuando mltiples
aplicaciones se ejecutan en un nico controlador [201], [225], [256], [259],
[260]. Normalmente, cada aplicacin genera reglas basadas en sus propias
necesidades y polticas sin ms conocimientos sobre las reglas generadas
por otras aplicaciones. Como consecuencia, se pueden generar e instalar
reglas conflictivas en los dispositivos de reenvo, lo que puede crear
problemas para el funcionamiento de la red. Los lenguajes de programacin
y los sistemas de tiempo de ejecucin pueden ayudar a resolver estos
problemas que de otro modo seran difciles de prevenir. Importantes
tcnicas de diseo de software como la modularidad de cdigo y la
reutilizacin son muy difciles de lograr usando modelos de programacin de
bajo nivel [225]. Las aplicaciones as construidas son monolticas y
consisten en bloques de construccin que no pueden ser reutilizados en
otras aplicaciones. El resultado final es un proceso de desarrollo muy lento y
propenso a errores.
Otra caracterstica interesante que proporcionan las abstracciones de
lenguaje de programacin es la capacidad de crear y escribir programas
para topologas de redes virtuales [248], [250]. Este concepto es similar a la
programacin orientada a objetos, donde los objetos resumen datos y
funciones especficas para los desarrolladores de aplicaciones, facilitando el
enfoque en resolver un problema en particular sin preocuparse por las
estructuras de datos y su gestin. Por ejemplo, en un contexto SDN, en
lugar de generar e instalar reglas en cada dispositivo de reenvo, se puede
pensar en crear topologas de redes virtuales simplificadas que representen
toda la red o un subconjunto de ella. Por ejemplo, el desarrollador de
aplicaciones debera ser capaz de abstraer la red como un gran cambio
atmico, en lugar de una combinacin de varios dispositivos fsicos
subyacentes.
Los lenguajes de programacin o los sistemas de tiempo de ejecucin deben
ser responsables de generar e instalar las instrucciones de nivel inferior
requeridas en cada dispositivo de reenvo para aplicar la poltica de usuario
a travs de la red. Con este tipo de abstracciones, el desarrollo de una
aplicacin de enrutamiento se convierte en un proceso sencillo. Del mismo
modo, un solo interruptor fsico podra ser representado como un conjunto
de conmutadores virtuales, cada uno de ellos pertenecientes a una red
virtual diferente. Estos dos ejemplos de topologas de red abstractas seran
mucho ms difciles de implementar con conjuntos de instrucciones de bajo
nivel. En contraste, un lenguaje de programacin o sistema de ejecucin
puede proporcionar ms fcilmente abstracciones para topologas de redes
virtuales, como ya lo han demostrado lenguajes como Pyretic [248].
1) Lenguajes de programacin SDN de alto nivel: Los lenguajes de
programacin de alto nivel pueden ser herramientas poderosas como medio
para implementar y proporcionar abstracciones para diferentes propiedades
y funciones importantes de SDN tales como estructuras de red,
actualizaciones distribuidas, composicin modular, virtualizacin y
Verificacin formal [29]. Los conjuntos de instrucciones de bajo nivel sufren
varios problemas. Para abordar algunos de estos desafos, se han propuesto
lenguajes de programacin de nivel superior, con diversas metas, tales
como: Evitar configuraciones y dependencias de bajo nivel y especficas
de dispositivos distribuidas por la red, como sucede en los enfoques
tradicionales de configuracin de redes; Proporcionar abstracciones que
permitan realizar diferentes tareas de gestin a travs de una fcil
comprensin y mantenimiento de las polticas de red; desacoplamiento de
mltiples tareas (por ejemplo, enrutamiento, control de acceso, ingeniera
de trfico); la implementacin de interfaces de programacin de nivel
superior para evitar conjuntos de instrucciones de bajo nivel; resolver
problemas de reglas de reenvo, por ejemplo, reglas conflictivas o
incompletas que pueden impedir que un evento de conmutacin se active,
de una manera automatizada; abordar diferentes problemas de condicin
racial que son inherentes a los sistemas distribuidos; Mejorar las tcnicas de
resolucin de conflictos en entornos con tomadores de decisiones
distribuidos; Proporcionar capacidades nativas de tolerancia a fallos en la
configuracin de ruta de plano de datos; reducir la latencia en el
procesamiento de nuevos flujos; facilitar la creacin de aplicaciones con
estado (por ejemplo, firewall con estado). Los lenguajes de programacin
tambin pueden proporcionar abstracciones especializadas para hacer
frente a otros requisitos de gestin, tales como el monitoreo [204], [224],
[227], [261]. Por ejemplo, el sistema de tiempo de ejecucin de un lenguaje
de programacin puede hacer todo el trabajo de lavandera de instalar
reglas, de sondear los contadores, de recibir las respuestas, de combinar los
resultados segn sea necesario y de componer consultas de monitoreo junto
con otras polticas. En consecuencia, los desarrolladores de aplicaciones
pueden aprovechar la simplicidad y la potencia de las instrucciones de
consulta de nivel superior para implementar fcilmente mdulos o
aplicaciones de supervisin. Otro aspecto de suma importancia es la
portabilidad del lenguaje de programacin, necesaria para que los
desarrolladores no tengan que volver a implementar aplicaciones para
diferentes plataformas de control. La portabilidad de un lenguaje de
programacin puede considerarse como un valor aadido significativo para
el ecosistema del plano de control. Mecanismos como los back-ends
desacoplados podran ser ingredientes arquitectnicos clave para permitir la
portabilidad de la plataforma. De forma similar a la mquina virtual Java,
una interfaz port-
Permiten fcilmente que las aplicaciones se ejecuten en diferentes
controladores sin requerir ninguna modificacin.
Como ejemplo, el lenguaje de Pyretic requiere solamente una interfaz de
socket estndar y un cliente OpenFlow simple en la plataforma de
controlador de destino [225]. Varios lenguajes de programacin han sido
propuestos para SDNs, como se resume en la Tabla 8. La gran mayora
proponen abstracciones para redes habilitadas para OpenFlow. El paradigma
de programacin predominante es el declarativo, con una sola excepcin, el
piretico, que es un lenguaje imperativo. La mayora de los lenguajes
declarativos son funcionales, pero hay casos de los tipos lgicos y reactivos.
El propsito, los problemas especficos que pretenden resolver y el poder de
expresividad varan de un lenguaje a otro, mientras que el objetivo final es
casi siempre el mismo: proporcionar abstracciones de nivel superior para
facilitar el desarrollo de la lgica de control de red. Los lenguajes de
programacin como FML [203], Nettle [223] y Procera [224] son funcionales
y reactivos. Las polticas y aplicaciones escritas en estos idiomas se basan
en acciones reactivas activadas por eventos (por ejemplo, un nuevo host
conectado a la red o la carga de red actual). Dichos lenguajes permiten a los
usuarios expresar declarativamente diferentes reglas de configuracin de
red como listas de control de acceso (ACL), LANs virtuales (VLANs) y muchas
otras. Las reglas se expresan esencialmente como polticas de permitir o
negar, que se aplican a los elementos de reenvo para asegurar el
comportamiento deseado de la red.
Otros lenguajes de programacin SDN, como Frenetic [204], tablas de flujo
jerrquico (HFT) [256], NetCore [205], y Pyretic [225], fueron diseados con
el objetivo simultneo de expresar eficientemente las polticas de envo de
paquetes y tratar la superposicin Reglas de diferentes aplicaciones,
ofreciendo operadores avanzados para la composicin paralela y secuencial
de mdulos de software. Para evitar conflictos que se superponen, Frenetic
desambigua reglas con patrones superpuestos asignando diferentes
prioridades enteras, mientras que HFT utiliza polticas jerrquicas con
operadores mejorados de resolucin de conflictos. Las abstracciones de See-
every-pack y la semntica libre de raza tambin representan caractersticas
interesantes proporcionadas por lenguajes de programacin (como Frenetic
[204]). El primero asegura que todos los paquetes de control estarn
disponibles para anlisis, tarde o temprano, mientras que el ltimo
proporciona los mecanismos para suprimir paquetes sin importancia. Como
ejemplo, los paquetes que surgen de una condicin de carrera de red, tal
como debido a una instalacin de regla de flujo concurrente en
conmutadores, pueden ser descartados simplemente por el sistema de
ejecucin. Los operadores avanzados para la composicin en paralelo y
secuencial ayudan a enlazar (a travs de operadores de flujo de trabajo
internos) las caractersticas clave de lenguajes de programacin como
Pyretic [225]. La composicin en paralelo hace posible operar mltiples
polticas en el mismo conjunto de paquetes, mientras que la composicin
secuencial facilita la definicin de un flujo de trabajo secuencial de polticas
a procesar en un conjunto de paquetes. El procesamiento secuencial de
polticas permite que mltiples mdulos (por ejemplo, control de acceso y
encaminamiento) operen de una manera cooperativa. Mediante el uso de
composiciones secuenciales, las aplicaciones complejas pueden construirse
a partir de una combinacin de diferentes mdulos (de manera similar a
como las tuberas pueden usarse para crear sofisticadas aplicaciones Unix).
Otras caractersticas avanzadas son proporcionadas por otros lenguajes de
programacin SDN. FatTire [262] es un ejemplo de un lenguaje declarativo
que depende en gran medida de las expresiones regulares para permitir a
los programadores describir las rutas de red con requisitos de tolerancia a
fallos. Por ejemplo, cada flujo puede tener sus propios caminos alternativos
para tratar el fallo de las rutas primarias. Curiosamente, esta caracterstica
se proporciona de una manera muy programador-amigable, con el
programador de la aplicacin que slo tiene que utilizar expresiones
regulares con caracteres especiales, como un asterisco. En el caso particular
de FatTire, un asterisco producir el mismo comportamiento que una
expresin regular tradicional, pero se traducir en rutas de desplazamiento
alternativas. Los lenguajes de programacin, como FlowLog [257] y Flog
[258], traen diferentes caractersticas, como la comprobacin de modelos, la
verificacin dinmica y las middleboxes con estado.
Por ejemplo, utilizando un lenguaje de programacin como Flog, es posible
construir una aplicacin de firewall con estado con slo cinco lneas de
cdigo [258]. Merlin [264] es uno de los primeros ejemplos de marco
unificado para controlar diferentes componentes de red, tales como
dispositivos de reenvo, middleboxes y hosts finales. Una ventaja importante
es la compatibilidad
Sistemas existentes. Para lograr este objetivo, Merlin genera cdigo
especfico para cada tipo de componente. Tomando una definicin de
poltica como entrada, el compilador de Merlin determina rutas de reenvo,
colocacin de transformacin y asignacin de ancho de banda. Las salidas
compiladas son conjuntos de instrucciones especficas de bajo nivel de
componentes que se instalarn en los dispositivos. El lenguaje de polticas
de Merlin tambin permite a los operadores delegar el control de una subred
a los inquilinos, asegurando al mismo tiempo el aislamiento. Este control
delegado se expresa mediante polticas que pueden ser perfeccionadas por
cada propietario del inquilino, lo que les permite personalizar las polticas
para sus necesidades particulares. Otras iniciativas recientes (por ejemplo,
los lenguajes de programacin de sistemas [265]) apuntan a problemas
como la deteccin de anomalas para mejorar la seguridad de los protocolos
de red (por ejemplo, Open-Flow) y la optimizacin de la escalabilidad
horizontal para lograr un alto rendimiento en aplicaciones que funcionan
con arquitecturas multincleo. ]. Sin embargo, todava hay margen para
ms investigacin y desarrollo en lenguajes de programacin. Por ejemplo,
una investigacin reciente ha revelado que los compiladores de polticas
actuales generan actualizaciones de reglas innecesarias (redundantes), la
mayora de las cuales slo modifican el campo de prioridad [266]. La mayor
parte del valor de SDN provendr de las aplicaciones de gestin de redes
construidas sobre la infraestructura. Los avances en los lenguajes de
programacin de alto nivel son un componente fundamental para el xito de
un prolfico ecosistema de desarrollo de aplicaciones SDN. Con este fin, se
estn realizando esfuerzos para conformar prximas interfaces estndar
(vase [267]) y hacia la realizacin de entornos de desarrollo integrados
(por ejemplo, NetIDE [268]) con el objetivo de fomentar el desarrollo de una
gran variedad de aplicaciones SDN. Discutimos estos prximos.
H. Capa VIII: Aplicaciones de red Las aplicaciones de red pueden ser vistas
como los "cerebros de red". Implementan la lgica de control que se
traducir en comandos a instalar en el plano de datos, dictando el
comportamiento de los dispositivos de reenvo. Tome una aplicacin simple
como enrutamiento como un ejemplo. La lgica de esta aplicacin es definir
la ruta a travs de la cual los paquetes fluirn desde el punto A al punto B.
Para lograr este objetivo, una aplicacin de enrutamiento tiene que, sobre la
base de la entrada de topologa, decidir el camino a utilizar e instruir al
controlador a Instale las reglas de reenvo respectivas en todos los
dispositivos de reenvo en la ruta elegida, de A a B. Los SDN se pueden
implementar en cualquier entorno de red tradicional, desde redes
domsticas y empresariales hasta centros de datos y puntos de intercambio
de Internet. Esta variedad de entornos ha llevado a una amplia gama de
aplicaciones de red. Las aplicaciones de red existentes realizan
funcionalidades tradicionales como enrutamiento, equilibrio de carga y
aplicacin de polticas de seguridad, pero tambin exploran enfoques
novedosos, como reducir el consumo de energa. Otros ejemplos incluyen
fail-over y funcionalidades de confiabilidad para el plano de datos,
cumplimiento de QoS de extremo a extremo, virtualizacin de red,
administracin de movilidad en redes inalmbricas, entre muchos otros. Se
espera que la variedad de aplicaciones de red, combinada con despliegues
reales de casos de uso, sea una de las fuerzas principales para fomentar
una amplia adopcin de SDN [269]. A pesar de la gran variedad de casos de
uso, la mayora de las aplicaciones de SDN pueden agruparse en una de
cinco categoras: ingeniera de trfico, movilidad e inalmbrica, medicin y
monitoreo, seguridad y confiabilidad y redes de centros de datos. Las Tablas
9 y 10 resumen varias aplicaciones clasificadas como tales, indicando su
propsito principal, el controlador donde se implement / evalu y se us la
API hacia el sur.
1) Ingeniera de trfico: Se han propuesto varias aplicaciones de ingeniera
de trfico, incluyendo ElasticTree [274], Hedera [276], balanceo de carga
basado en OpenFlow [338], Plug-n-Serve [285] y Aster * x [273] QoS [289],
QoS para SDN [288], ALTO [270], ViAgregre SDN [293], ProCel [282], el filtro
de Bloom en paquete [277], SIM-PLE [292], QNOX [287] FlowQoS [275], y
Middlepipes [27].
Adems de stas, las propuestas recientes incluyen la optimizacin de la
colocacin de reglas [339], el uso de MAC como rtulo universal para el
enrutamiento eficiente en centros de datos [340], entre otras tcnicas de
gestin de flujo, tolerancia a fallos, actualizacin de topologa y
caracterizacin de trfico [341] .La mayora de las aplicaciones son el trfico
de ingenieros con el objetivo de minimizar el consumo de energa,
maximizar la utilizacin de la red agregada, proporcionar un equilibrio de
carga optimizado y otras tcnicas genricas de optimizacin del trfico. El
balanceo de carga fue una de las primeras aplicaciones previstas para SDN /
OpenFlow. Diferentes algoritmos y tcnicas se han propuesto para este fin
[338], [273], [285]. Una preocupacin particular es la escalabilidad de estas
soluciones. Una tcnica para permitir que este tipo de aplicaciones a escala
es el uso de reglas basadas en comodn para realizar balanceo de carga
proactivo [338]. Los comodines se pueden utilizar para agregar solicitudes
de cliente basadas en los rangos de prefijos IP, por ejemplo, permitiendo la
distribucin y direccin de grandes grupos de solicitudes de clientes sin
necesidad de intervencin del controlador para cada nuevo flujo. En
tndem, la operacin en modo reactivo todava se puede utilizar cuando se
detectan rfagas de trfico. La aplicacin de controlador necesita supervisar
el trfico de red y utilizar algn tipo de umbral en los contadores de flujo
para redistribuir clientes entre los servidores cuando es probable que se
produzcan cuellos de botella. SDN balanceo de carga tambin simplifica la
colocacin de los servicios de red en la red [285]. Cada vez que se instala
un nuevo servidor, el servicio de equilibrio de carga puede tomar las
acciones adecuadas para distribuir el trfico entre los servidores
disponibles, teniendo en cuenta tanto la carga de red como la capacidad de
computacin disponible de los respectivos servidores. Esto simplifica la
gestin de red y proporciona ms flexibilidad a los operadores de red. Las
interfaces existentes hacia el sur pueden utilizarse para supervisar
activamente la carga del plano de datos. Esta informacin puede ser
Apalancada para optimizar el consumo energtico de la red [274]. Mediante
el uso de algoritmos de optimizacin especializados y opciones de
configuracin diversificada, es posible cumplir con los objetivos de
infraestructura de latencia, rendimiento y tolerancia a fallos, por ejemplo,
mientras se reduce el consumo de energa. Con el uso de tcnicas simples,
como el cierre de enlaces y dispositivos inteligentemente en respuesta a la
dinmica de carga de trfico, los operadores de centros de datos pueden
ahorrar hasta un 50% de la energa de la red en condiciones normales de
trfico [274]. Uno de los objetivos importantes de las redes de centros de
datos es evitar o mitigar el efecto de los cuellos de botella en la red sobre el
funcionamiento de los servicios informticos ofrecidos. El ancho de banda
de biseccin lineal es una tcnica que puede adoptarse para los patrones de
trfico que hacen hincapi en la red explorando la diversidad de rutas en
una topologa de centros de datos. Tal tcnica se ha propuesto en un ajuste
SDN, lo que permite la maximizacin de la utilizacin de la red agregada con
una mnima sobrecarga de programacin [276]. SDN tambin se puede
utilizar para proporcionar un sistema totalmente automatizado para
controlar la configuracin de routers. Esto puede ser particularmente til en
los escenarios que aplican la agregacin virtual [342]. Esta tcnica permite
a los operadores de red reducir los datos replicados en las tablas de
enrutamiento, que es una de las causas del crecimiento de las tablas de
enrutamiento [343]. Una aplicacin de enrutamiento especializada [293]
puede calcular, dividir y configurar las tablas de enrutamiento de los
diferentes dispositivos de enrutamiento a travs de una API hacia el sur
como OpenFlow. La optimizacin del trfico es otra aplicacin interesante
para los proveedores de servicios a gran escala, donde se requiere una
escala dinmica. Por ejemplo, el aprovisionamiento dinmico y escalable de
VPNs en infraestructuras de nube, utilizando protocololos como ALTO [272],
puede simplificarse a travs de un enfoque basado en SDN [270]. Trabajos
recientes tambin han demostrado que la optimizacin de la colocacin de
reglas puede aumentar la eficiencia de la red [339]. Soluciones como ProCel
[282], diseadas para redes de ncleo celular, son capaces de reducir el
trfico de sealizacin hasta un 70%, lo que representa un logro
significativo. Otras aplicaciones que realizan el enrutamiento y la ingeniera
de trfico incluyen la creacin de redes de aplicacin para el streaming de
video y datos [344], [345] y QoS mejorada mediante el uso de mltiples
planificadores de paquetes [290] y otras tcnicas [279], [287], [289] , [346].
Como la ingeniera de trfico es una cuestin crucial en todo tipo de redes,
se pueden esperar mtodos, tcnicas e innovaciones en el contexto de las
SDNs.
2) Movilidad e Inalmbrico: El actual plano de control distribuido de las
redes inalmbricas es subptimo para gestionar el espectro limitado,
asignar recursos de radio, implementar mecanismos de transferencia,
gestionar interferencias y realizar un balanceo de carga eficiente entre
celdas. Los enfoques basados en SDN representan una oportunidad para
facilitar el despliegue y la gestin de diferentes tipos de redes inalmbricas,
como las WLAN y las redes celulares [236], [296], [300], [302], [347], [348].
Tradicionalmente duro-toimplement pero las caractersticas deseadas estn
sin duda convirtindose en una realidad con las redes inalmbricas basadas
en SDN. [347], [349], balanceo de carga [236], [300], creacin de puntos de
acceso virtuales (VAP) [297], [300] de ondemand, programacin de enlace
descendente (por ejemplo, , Un conmutador OpenFlow puede hacer una
conformacin de velocidad o divisin de tiempo [297], uso del espectro
dinmico [297], coordinacin de interferencia entre clulas mejorada [297],
[347], descarga de dispositivo a dispositivo (es decir, decidir cundo y cmo
LTE [350], por asignacin de bloques de recursos de cliente y / o estacin
base (es decir, ranuras de tiempo y frecuencia en redes LTE / ortogonal de
acceso mltiple por divisin de frecuencia (OFDMA) [296] , Que son
conocidos como bloques de recursos) [236], [296], [348], controlan y
asignan parmetros de transmisin y potencia en dispositivos o en grupos
(por ejemplo, algoritmos para optimizar los parmetros de transmisin y
potencia de dispositivos WLAN, Asignar valores de potencia de transmisin
a cada bloque de recursos, en cada estacin base, en redes LTE / OFDMA)
[236], [296], administracin simplificada [236], [300], [302], fcil manejo de
tecnologas de red heterogneas [236]. , [302], [351], la interoperabilidad
entre diferentes redes [348], [351], las infraestructuras inalmbricas
compartidas [351], la movilidad continua de los abonados y las redes
celulares [347], la QoS y las polticas de control de acceso factibles y fciles
[347]. ], [348], y el empleo de nuevas aplicaciones [236], [300], [351]. Uno
de los primeros pasos hacia la realizacin de estas caractersticas en las
redes inalmbricas es proporcionar capas de pilas programables y flexibles
para redes inalmbricas [236], [352]. Uno de los primeros ejemplos es
OpenRadio [352], que propone un soft
Ware capa de abstraccin para desacoplar la definicin del protocolo
inalmbrico del hardware, lo que permite compartir las capas MAC a travs
de diferentes protocolos utilizando las plataformas multicore commodity.
OpenRadio puede ser visto como el "OpenFlow para redes inalmbricas".
Similarmente, SoftRAN [236] propone repensar la capa de acceso de radio
de las actuales infraestructuras LTE. Su principal objetivo es permitir a los
operadores mejorar y optimizar algoritmos para mejores traspasos, control
de granos finos de poderes de transmisin, asignacin de bloques de
recursos, entre otras tareas de gestin. Los puntos de acceso virtuales
ligeros (LVAPs) son otra forma interesante de mejorar las capacidades de
gestin de las redes inalmbricas, tal como lo propone el marco Odin [300].
Diferentemente de OpenRadio, funciona con el hardware inalmbrico
existente y no impone ningn cambio en los estndares IEEE 802.11. Un
LVAP se implementa como una identificacin de conjunto de servicios
bsicos nica asociada con un cliente especfico, lo que significa que hay un
mapeo uno a uno entre LVAP y clientes. Esta abstraccin de punto de acceso
(AP) por cliente simplifica el manejo de las asociaciones de clientes, la
autenticacin, las transferencias y el corte unificado de partes tanto
cableadas como inalmbricas de la red. Odin logra la separacin del control
entre los distintos segmentos, ya que los PVAs son el tipo primitivo sobre el
cual las aplicaciones toman decisiones de control, y las aplicaciones no
tienen visibilidad de los LVAP desde fuera de su segmento. Esto permite que
los operadores de infraestructura proporcionen servicios a travs de las
aplicaciones de Odin, como un administrador de movilidad, un equilibrador
de carga basado en cliente, un algoritmo de seleccin de canal y una
aplicacin de solucin de problemas inalmbrica con diferentes segmentos
de red. Por ejemplo, cuando un usuario se desplaza de un AP a otro, Actuar
de manera automtica y proactiva y trasladar al cliente LVAP de un AP a
otro. De esta manera, un cliente inalmbrico ni siquiera se dar cuenta de
que empez a usar un AP diferente porque no hay un retraso perceptible en
el traspaso, como sera el caso en las redes inalmbricas tradicionales. Las
redes inalmbricas heterogneas muy densas tambin han sido un objetivo
para SDN. Estos DenseNets tienen limitaciones debido a restricciones tales
como cuellos de botella de acceso de radio, control de gastos generales y
altos costos de operacin [296]. Una jerarqua dinmica de controlador de
dos niveles SDN se puede adaptar para abordar algunas de estas
restricciones [296]. Los controladores locales pueden utilizarse para tomar
decisiones rpidas y finas, mientras que los controladores regionales (o
'globales') pueden tener un alcance ms amplio y ms grueso, es decir,
tomar decisiones ms lentas pero globales. De esta manera, el diseo de
una nica arquitectura integrada que abarque las clulas LTE (macro / pico /
femto) y WiFi, aunque desafiante, parece factible.
3) Medicin y monitoreo: Las soluciones de medicin y monitoreo se pueden
dividir en dos clases: primero, aplicaciones que proporcionan nueva
funcionalidad para otros servicios de redes; Y en segundo lugar, las
propuestas que apuntan a mejorar las caractersticas de los SDN basados en
OpenFlow, tales como reducir la sobrecarga del plano de control debido a la
recopilacin de estadsticas. Un ejemplo de la primera clase de solicitudes
es mejorar la visibilidad del rendimiento de la banda ancha [6], [353]. Una
conexin domiciliaria de banda ancha basada en SDN puede simplificar la
adicin de nuevas funciones en sistemas de medicin como BISmark [353],
lo que permite al sistema reaccionar a las condiciones cambiantes en la red
[6]. Por ejemplo, una pasarela puede realizar una configuracin reactiva del
trfico considerando los resultados de medicin actuales De la red
domstica. La segunda clase de soluciones normalmente implica diferentes
tipos de tcnicas de muestreo y estimacin que se aplicarn, con el fin de
reducir la carga del plano de control con respecto a la recopilacin de
estadsticas de planos de datos. Diferentes tcnicas han sido aplicadas para
lograr este objetivo, tales como las tcnicas de muestreo de paquetes
estocstico y determinista [354], estimacin de la matriz de trfico [261],
monitoreo de grano fino de las cadenas de wildcard [355], dos
etapasBloomfilters [356] La precisin de la medicin sin incurrir en una
sobrecarga de trfico de la memoria adicional o del plano de control [304], y
funciones de monitorizacin especiales (extensiones a OpenFlow) en los
dispositivos de reenvo para reducir el trfico y procesar la carga en el plano
de control. La estimacin de la matriz de trfico punto a punto, en
particular, puede ayudar en el diseo de la red y en tareas operativas tales
como equilibrio de carga, deteccin de anomalas, planificacin de
capacidad y aprovisionamiento de red. Con informacin sobre el conjunto de
flujos activos en la red, informacin de enrutamiento (por ejemplo, desde la
aplicacin de enrutamiento), rutas de flujo y contadores de flujo en los
conmutadores, es posible construir una matriz de trfico utilizando diversos
niveles de agregacin para fuentes y destinos [ 261].
Otras iniciativas de esta segunda clase proponen un mayor
desacoplamiento entre primitivas bsicas (por ejemplo, coincidencia y
conteo) y funciones de anlisis de trfico ms pesadas, como la deteccin
de ataques de condiciones de anomala [358]. Una separacin ms fuerte
favorece la portabilidad y la flexibilidad. Por ejemplo, una funcionalidad para
detectar flujos anormales no debe ser restringida por las primitivas bsicas
o la implementacin especfica de hardware. Dicho de otro modo, los
desarrolladores deben estar capacitados con abstracciones de flujo continuo
y capacidades de programacin de nivel superior. En ese sentido, algunas
abstracciones de planos de datos y de control se han diseado
especficamente para fines de medicin. OpenSketch [311] es una API
orientada al sur de propsito especial diseada para proporcionar
flexibilidad para mediciones de red. Por ejemplo, al permitir que mltiples
tareas de medicin se ejecuten simultneamente sin perjudicar la precisin.
El diseo interno de un switch OpenSketch se puede considerar como una
tubera con tres etapas (hashing, clasificacin y conteo). Los paquetes de
entrada pasan primero por una funcin de hashing. Luego, se clasifican de
acuerdo con una regla de coincidencia. Finalmente, la regla de coincidencia
identifica un ndice de conteo, que se utiliza para calcular la posicin del
contador en la etapa de recuento. Mientras que un TCAM con pocas
entradas es suficiente para la etapa de clasificacin, los contadores flexibles
se almacenan en SRAM. Esto hace que la operacin de OpenSketch sea
eficiente (rpida coincidencia) y rentable (SRAM ms barato para almacenar
contadores). Otros marcos de monitoreo, tales como OpenSample [309] y
PayLess [313], proponen diferentes mecanismos para entregar en tiempo
real, baja latencia y capacidades de monitoreo flexible a SDN sin perjudicar
la carga y el rendimiento del plano de control. Las soluciones propuestas se
aprovechan de tecnologas de muestreo como sFlow [310] para monitorear
redes de alta velocidad y colecciones flexibles de componentes acoplados
de forma holgada (plug-and-play) para proporcionar vistas abstractas de la
red que proporcionan enfoques de monitoreo de red eficientes y
eficientes. ], [313], [355].
4) Seguridad y Confiabilidad: Un conjunto de propuestas de seguridad y
confiabilidad ya est emergiendo en el contexto de las NDS. La mayora
aprovecha el SDN para mejorar los servicios requeridos para asegurar
sistemas y redes, como la aplicacin de polticas (por ejemplo, control de
acceso, firewalling, middleboxes como middlepipes [27], [100], [326], [328],
[337], deteccin y mitigacin de ataques DoS [325], [336], mutacin
aleatoria del anfitrin [326] (es decir, manda aleatoriamente y
frecuentemente las direcciones IP de los hosts finales para romper la
suposicin de los atacantes sobre IPs estticos, que es la [331], el monitoreo
de las infraestructuras de nube para las inspecciones de seguridad de grano
fino (es decir, analizar automticamente y desviar el trfico sospechado
para ser inspeccionado por dispositivos especializados de seguridad de la
red, como los sistemas de inspeccin profunda de paquetes) [323] [325],
[336], [354], el control de acceso a redes de grano fino basado en flujo
[327], la aplicacin de polticas de grano fino para aplicaciones mviles
personales [329], etc. [100], [323], [ 325], [326], [328], [331], [337], [354].
Otros abordan problemas de redes basadas en OpenFlow, tales como
priorizacin de reglas de flujo, composicin de servicios de seguridad,
proteccin contra la sobrecarga de trfico y proteccin contra
administradores malintencionados [199], [201], [259], [322], [330]. Hay
esencialmente dos enfoques, uno implica el uso de SDN para mejorar la
seguridad de la red, y otro para mejorar la seguridad de la propia SDN. El
enfoque ha sido, hasta ahora, en el segundo.
5) Uso de SDN para mejorar la seguridad de las redes actuales:
Probablemente la primera instancia de SDN fue una aplicacin para la
aplicacin de polticas de seguridad [100]. Un SDN permite que se haga la
imposicin en el primer punto de entrada a la red (por ejemplo, el
conmutador Ethernet al que el usuario est conectado). Alternativamente,
en un entorno hbrido, la aplicacin de la poltica de seguridad puede
hacerse en un permetro de red ms amplio a travs de dispositivos
programables (sin necesidad de migrar toda la infraestructura a OpenFlow)
[328]. Con cualquiera de las aplicaciones, las acciones malintencionadas se
bloquean antes de entrar en las regiones crticas de la red. SDN se ha
aplicado con xito para otros fines, a saber, para la deteccin (y la reaccin)
contra los ataques distribuidos de denegacin de servicio (DDoS) [325], y la
seguridad activa [321]. Los dispositivos de reenvo de OpenFlow facilitan la
recopilacin de una variedad de informacin de la red, de manera oportuna,
lo cual es muy til para algoritmos especializados en la deteccin de
ataques DDoS. Las capacidades ofrecidas por los SDN para aumentar la
capacidad de recopilar datos estadsticos de la red y permitir que las
aplicaciones programen activamente los dispositivos de reenvo, son
poderosas para las tcnicas de proteccin y de seguridad policial, como
Seguridad activa [321]. Esta nueva metodologa de seguridad propone un
nuevo circuito de retroalimentacin para mejorar el control de los
mecanismos de defensa de una infraestructura en red y se centra alrededor
de cinco capacidades principales: proteger, detectar, ajustar, recoger y
contrarrestar. En esta perspectiva, la seguridad activa proporciona una
interfaz de programacin centralizada que simplifica la integracin de
mecanismos para detectar ataques mediante: 1) recoleccin de datos de
diferentes fuentes (para identificar ataques); 2) convergir a una
configuracin consistente para los dispositivos de seguridad; Y 3) reforzar
las contramedidas para bloquear o minimizar el efecto de los ataques.
6) Mejorar la seguridad de SDN: Ya existen algunos esfuerzos de
investigacin para identificar las amenazas crticas a la seguridad de los
SDN y aumentar su seguridad y fiabilidad [201], [259], [359]. Los primeros
enfoques tratan de aplicar tcnicas simples, como clasificar las aplicaciones
y utilizar la priorizacin de reglas, para asegurar que las reglas generadas
por las aplicaciones de seguridad no sern sobrescritas por las aplicaciones
de menor prioridad [201]. Otras propuestas tratan de ir un paso ms all al
proporcionar un marco para el desarrollo de aplicaciones relacionadas con la
seguridad en las NDS [259]. Sin embargo, todava hay un largo camino por
recorrer en el desarrollo de infraestructuras SDN seguras y fiables [359]. Un
profundo sobre en la seccin V-F.
7) Redes de centros de datos: Desde las pequeas empresas hasta los
proveedores de cloud computing a gran escala, la mayora de los sistemas y
servicios de TI existentes dependen en gran medida de centros de datos
altamente escalables y eficientes. Sin embargo, estas infraestructuras
siguen planteando desafos significativos en cuanto a computacin,
almacenamiento y redes. En lo que respecta a este ltimo, los centros de
datos deben disearse y desplegarse de tal manera que ofrezcan ancho de
banda de alta y flexible seccin y baja latencia, QoS basado en los requisitos
de la aplicacin, altos niveles de resiliencia, utilizacin inteligente de
recursos para reducir el consumo de energa y mejorar La agilidad en el
aprovisionamiento de los recursos de la red, por ejemplo, mediante la
virtualizacin de la red y la orquestacin con la computacin y el
almacenamiento, y as sucesivamente [360] - [362]. No es sorprendente que
muchas de estas cuestiones permanezcan abiertas debido a la complejidad
e inflexibilidad de las arquitecturas de red tradicionales. Se espera que el
surgimiento de SDN cambie la situacin actual. Los primeros esfuerzos de
investigacin han demostrado que la creacin de redes de centros de datos
puede beneficiarse significativamente de SDN en la solucin de diferentes
problemas, como la migracin en red viva [318], la mejora de la gestin de
red [317], [318], eminente fracaso [317] [318], la solucin de problemas
[318], [319], la optimizacin de la utilizacin de la red [314], [316], [317],
[319], el suministro dinmico y elstico de middleboxes-as-a -servicio [27], y
la minimizacin de la latencia de configuracin de flujo y la reduccin de los
costos de operacin del controlador [363]. SDN tambin puede ofrecer
primitivas de red para aplicaciones en nube, soluciones para predecir
transferencias de aplicaciones de red [314], [316], mecanismos para la
reaccin rpida a problemas de operacin, colocacin de VM en red [315],
[319] 316], [319], servicios y mecanismos de aplicacin de la poltica de
seguridad [315], [319], y permitir la adaptacin programtica de los
protocolos de transporte [314] , [320]. SDN puede ayudar a los proveedores
de infraestructura a exponer ms primitivas de red a sus clientes,
permitiendo el aislamiento virtual de la red, el direccionamiento
personalizado y la colocacin de las cajas de acceso mltiples y las
aplicaciones virtuales del escritorio [315], [364]. Para explorar
completamente el potencial de las redes virtuales en las nubes, una
caracterstica esencial es la migracin de la red virtual. De manera similar a
la migracin de mquinas virtuales tradicionales, es posible que sea
necesario migrar una red virtual cuando sus mquinas virtuales se mueven
de un lugar a otro. Integrar la migracin en vivo de mquinas virtuales y
redes virtuales es uno de los retos ms importantes [318]. Para lograr este
objetivo, es necesario reconfigurar dinmicamente todos los dispositivos de
red afectados (fsicos o virtuales). Esto se ha demostrado que es posible con
las plataformas SdN, tales como NVP [112]. Otra aplicacin potencial de
SDN en centros de datos es la deteccin de comportamientos anormales en
la operacin de la red [317]. Mediante la utilizacin de diferentes modelos
de comportamiento y la recopilacin de la informacin necesaria de los
elementos involucrados en el funcionamiento de un centro de datos
(infraestructura, operadores, aplicaciones), es posible crear continuamente
firmas para aplicaciones capturando pasivamente el trfico de control.
Entonces, la historia de la firma se puede utilizar para identificar diferencias
en comportamiento. Cada vez que se detecta una diferencia, los operadores
pueden tomar medidas correctivas de forma reactiva o proactiva. Esto
puede ayudar a aislar componentes anormales y evitar mayores daos a la
infraestructura.
8) hacia almacenes de la aplicacin de SDN: Como se puede observar en las
tablas 9 y 10, la mayora de las aplicaciones de SDN confan en NOX y
OpenFlow. NOX fue el primer controlador disponible para uso general, por lo
que es una eleccin natural para la mayora de los casos de uso hasta el
momento. Como se indica por el gran nmero de aplicaciones relacionadas
con la seguridad, la seguridad es probablemente una de las aplicaciones
asesinas para SDNs. Curiosamente, mientras que la mayora de los casos de
uso se basan en OpenFlow, nuevas soluciones como SoftRAN estn
considerando diferentes APIs, como es el caso del Femto API [253], [303].
Esta diversidad de aplicaciones y APIs probablemente seguir creciendo en
SDN. Hay otros tipos de aplicaciones de red que no encajan fcilmente en
nuestra taxonoma, como Avior [365], OESS [366] y SDN App Store [367],
[368]. Avior y OESS son interfaces grficas y conjuntos de herramientas de
software que facilitan la configuracin y administracin de controladores
(por ejemplo, Floodlight) y conmutadores habilitados para OpenFlow,
respectivamente. Al aprovechar sus funciones grficas es posible programar
dispositivos habilitados para OpenFlow sin codificar en un lenguaje de
programacin particular. La tienda de aplicaciones SDN [367], [368],
propiedad de HP, es probablemente la primera tienda del mercado de
aplicaciones SDN. Los clientes que usan el controlador OpenFlow de HP
tienen acceso a la Tienda de aplicaciones SDN en lnea y pueden seleccionar
aplicaciones que se descargarn e instalarn dinmicamente en el
controlador. La idea es similar al Android Market o Apple Store, lo que facilita
a los desarrolladores proporcionar nuevas aplicaciones y que los clientes las
obtengan.
I. Problemas de capa cruzada En esta seccin, examinamos problemas de
capa cruzada como depuracin y solucin de problemas, pruebas,
verificacin, simulacin y emulacin. Un resumen de las herramientas
existentes para hacer frente a los problemas de la capa transversal se
puede encontrar en la Tabla11.
1) Depuracin y solucin de problemas: La depuracin y la solucin de
problemas han sido temas importantes en las infraestructuras informticas,
sistemas paralelos y distribuidos, sistemas embebidos y aplicaciones de
escritorio [369] - [375]. Las dos estrategias predominantes aplicadas a la
depuracin y solucin de problemas son la depuracin en tiempo de
ejecucin (por ejemplo, las herramientas tipo gdb) y el anlisis post-mortem
(por ejemplo, rastreo, reproduccin y visualizacin). A pesar de la constante
evolucin y la aparicin de nuevas tcnicas para mejorar la depuracin y
solucin de problemas, todava hay varias vas abiertas y preguntas de
investigacin [370].
La depuracin y la solucin de problemas en las redes est en una etapa
muy primitiva. En las redes tradicionales, los ingenieros y desarrolladores
tienen que usar herramientas como ping, traceroute, tcpdump, nmap,
netflow y estadsticas SNMP para depurar y solucionar problemas. Depurar
una red compleja con estas herramientas primitivas es muy difcil. Incluso
cuando se consideran marcos tales como XTrace [374], Netreplay [376] y
NetCheck [377], que mejoran las capacidades de depuracin en las redes,
sigue siendo difcil solucionar las infraestructuras de red. Por ejemplo, estos
marcos requieren un esfuerzo enorme en trminos de instrumentacin de
red. La complejidad adicional introducida por diferentes tipos de
dispositivos, tecnologas y componentes y caractersticas especficos del
proveedor empeora las cosas. Como consecuencia, estas soluciones pueden
resultar difciles de implementar y desplegar ampliamente en las redes
actuales.
SDN ofrece algunas esperanzas en este sentido. Las capacidades de control
basadas en software hardwareagnostic y el uso de estndares abiertos para
la comunicacin de control pueden potencialmente facilitar la depuracin y
la resolucin de problemas. La flexibilidad y la programabilidad introducida
por SDN est de hecho abriendo nuevas vas para desarrollar mejores
herramientas para depurar, solucionar problemas, verificar y probar redes
[378] - [385]. Las primeras herramientas de depuracin para redes
habilitadas para OpenFlow, como ndb [378], OFRewind [379] y NetSight
[386], facilitan descubrir la fuente de problemas de red como el firmware del
dispositivo defectuoso [378], flujo inconsistente o inexistente Reglas [378],
[379], falta de accesibilidad [378], [379] y enrutamiento defectuoso [378],
[379]. De forma similar al conocido depurador de software gdb, ndb
proporciona acciones bsicas de depuracin tales como punto de
interrupcin, watch, backtrace, single step y continuar. Estos primitivos
ayudan a los desarrolladores de aplicaciones a depurar redes de una
manera similar al software tradicional. Mediante el uso de las tarjetas
postales de ndb (es decir, un identificador de paquete nico compuesto por
una copia truncada del encabezado del paquete, la entrada de flujo
coincidente, el conmutador y el puerto de salida), por ejemplo, un
programador puede identificar y aislar rpidamente un OpenFlow Con
problemas de hardware o software. Si el conmutador est presentando un
comportamiento anormal como la corrupcin de partes del encabezado del
paquete, analizando las secuencias de flujo problemticas con una
herramienta de depuracin, se puede encontrar (en cuestin de segundos)
donde los paquetes de un flujo estn siendo daados, y tomar Las acciones
necesarias para resolver el problema. La herramienta OFRewind [379]
funciona de manera diferente. La idea es registrar y reproducir eventos de
red, en particular mensajes de control. Estos suelen representar menos del
1% del trfico de datos y son responsables del 95% -99% de los errores
[385]. Esta herramienta permite a los operadores realizar un rastreo de
grano fino del comportamiento de la red, pudiendo decidir qu subconjuntos
de la red sern grabados y, a continuacin, seleccionar partes especficas
de las trazas a reproducir. Estas repeticiones proporcionan informacin
valiosa para encontrar la causa raz de la mala conducta de la red.
Asimismo, NetRevert [387] tambin registra el estado de las redes
OpenFlow. Sin embargo, el objetivo principal no es reproducir el
comportamiento de la red, sino ms bien proporcionar recuperacin de
reversin en caso de fallos, que es un enfoque comn utilizado en sistemas
distribuidos para eliminar errores transitorios en los nodos [388], [389]. A
pesar de la disponibilidad de estas herramientas de depuracin y
verificacin, todava es difcil responder preguntas como: Qu est
sucediendo a mis paquetes que fluyen desde el punto A al punto B? Qu
camino siguen? Qu modificaciones de cabecera sufren en el camino? Para
responder a algunas de estas preguntas uno podra volver a la historia de
los paquetes. El historial de un paquete corresponde a las rutas que utiliza
para recorrer la red ya las modificaciones de encabezado en cada salto de la
ruta. NetSight [386] es una plataforma cuyo objetivo principal es permitir
que las aplicaciones que utilizan el historial de los paquetes para ser
construido, con el fin de averiguar los problemas en una red. Esta
plataforma se compone de tres elementos esenciales: 1) NetSight, con sus
servidores dedicados que reciben y procesan las tarjetas postales para
construir el historial de paquetes; 2) el NetSigh-SwitchAssist, que se puede
utilizar en conmutadores para reducir la carga de procesamiento en los
servidores dedicados; Y 3) el NetSight-HostAssist para generar y procesar
tarjetas postales en los hosts finales (por ejemplo, en el hipervisor en una
infraestructura virtualizada). Netwatch [386], netshark [386], y nprof [386]
son tres ejemplos de herramientas construidas sobre NetSight. El primero es
un monitor invariante de red en vivo. Por ejemplo, se puede activar una
alarma cada vez que un paquete viola cualquier invariante (por ejemplo, sin
bucles). El segundo, netshark, permite a los usuarios definir y ejecutar filtros
en todo el historial de paquetes. Con esta herramienta, un operador de red
puede ver una lista completa de propiedades de paquetes en cada salto,
como puerto de entrada, puerto de salida y valores de encabezado de
paquete. Finalmente, nprof puede usarse para perfilar conjuntos de enlaces
de red para proporcionar datos para analizar patrones de trfico y
decisiones de enrutamiento que podran estar contribuyendo a la carga de
enlaces.
2) Pruebas y Verificacin: Las herramientas de verificacin y prueba pueden
complementar la depuracin y la solucin de problemas. Investigaciones
recientes [380], [382] - [385], [390], [391] ha demostrado que las tcnicas
de verificacin se pueden aplicar para detectar y evitar problemas en SDN,
tales como bucles de reenvo y agujeros negros. La verificacin se puede
hacer en diferentes capas (en los controladores, aplicaciones de red o
dispositivos de red). Adems, hay diferentes propiedades de redV
principalmente topolgicas especficasV que se pueden verificar
formalmente, siempre que haya un modelo de red disponible. Ejemplos de
tales propiedades son la conectividad, la libertad de lazo, y el control de
acceso [29]. Tambin se han propuesto varias herramientas para evaluar el
rendimiento de los controladores OpenFlow emulando la carga de las redes
a gran escala (por ejemplo, Cbench [392], OFCBenchmark [393], PktBlaster
[394]). Del mismo modo, las herramientas de evaluacin comparativa para
los conmutadores OpenFlow estn tambin disponibles (por ejemplo,
OFLOPS [381] y FLOPS-Turbo [395]). Herramientas como NICE [380] generan
conjuntos de diversas corrientes de paquetes para probar tantos eventos
como sea posible, exponiendo casos de esquina tales como condiciones de
carrera. Del mismo modo, OFLOPS [381] proporciona un conjunto de
caractersticas y funciones que
Permiten el desarrollo y la ejecucin de un rico conjunto de pruebas en
dispositivos habilitados para OpenFlow. Su objetivo final es medir la
capacidad de procesamiento y los cuellos de botella de las aplicaciones de
control y los dispositivos de reenvo. Con esta herramienta, los usuarios
pueden observar y evaluar la consistencia de la tabla de reenvo, la latencia
de la configuracin de flujo, la granularidad del espacio de flujo, los tipos de
modificacin de paquetes y las capacidades de supervisin de trfico (por
ejemplo, contadores). FlowChecker [382], OFTEN [384] y VeriFlow [383] son
tres ejemplos de herramientas para verificar las infracciones de propiedades
de correccin en el sistema. Mientras que los dos anteriores se basan en
anlisis offline, este ltimo es capaz de comprobar en lnea de invariants de
red. Las restricciones de verificacin incluyen problemas de seguridad y
accesibilidad, actualizaciones de configuracin en la red, bucles, agujeros
negros, etc. Otras tcnicas formales de modelado, como Alloy, pueden
aplicarse a los SDN para identificar un comportamiento inesperado [390].
Por ejemplo, una especificacin de protocolo puede ser dbil cuando
subestima algunos aspectos del protocolo o debido a una secuencia muy
especfica de eventos. En tales situaciones, las tcnicas de comprobacin de
modelos como Alloy pueden ayudar a encontrar y corregir comportamientos
inesperados. Herramientas como FLOWGUARD [396] estn diseadas
especficamente para detectar y resolver infracciones de polticas de
seguridad en redes habilitadas para OpenFlow. FLOWGUARD es capaz de
examinar las actualizaciones de la poltica de red al instante, comprobar
infracciones de seguridad indirectas (por ejemplo, la modificacin de las
acciones de Set-Field de OpenFlow) y realizar un monitoreo con estado. El
marco utiliza cinco estrategias de resolucin para la resolucin de
violaciones de polticas de seguridad en tiempo real, rechazo de flujo,
ruptura de dependencia, rechazo de actualizacin, eliminacin de flujo y
bloqueo de paquetes [396]. Estas resoluciones se aplican a diversas
situaciones de actualizacin en redes habilitadas para OpenFlow. Ms
recientemente, se han diseado herramientas como VeriCon [397] para
verificar la correccin de las aplicaciones SDN en una amplia gama de
topologas de red y analizar una amplia gama de secuencias de eventos de
red. En concreto, VeriCon confirma o no la correcta ejecucin del programa
SDN. Uno de los desafos en la prueba y verificacin es verificar las tablas
de reenvo en redes muy grandes para encontrar errores de enrutamiento,
lo que puede causar prdidas de trfico y violaciones de seguridad, tan
pronto como sea posible. En las redes a gran escala, no es posible suponer
que la instantnea de la red, en ningn momento, es consistente, debido a
los frecuentes cambios en el estado de enrutamiento. Por lo tanto, las
soluciones tales como HSA [398], Anteater [399], NetPlumber [400], Veri-
Flow [383] y lenguajes de asercin [401] no son adecuados para este tipo
de entorno. Otra cuestin importante est relacionada con la rapidez con
que se realiza el proceso de verificacin, especialmente en los centros de
datos modernos que tienen requisitos de sincronizacin muy ajustados.
Libra [391] representa uno de los primeros intentos de abordar estos
desafos particulares de las redes a gran escala. Esta herramienta
proporciona los medios para capturar instantneas estables y consistentes
de despliegues de red a gran escala, al tiempo que aplica tcnicas de
coincidencia de prefijos largos para aumentar la escalabilidad del sistema.
Mediante el uso de clculos MapReduce, Libra es capaz de verificar la
correccin de una red con un mximo de 10 000 nodos dentro de un minuto.
Anteater [399] es una herramienta que analiza el estado del plano de datos
de los dispositivos de red mediante la codificacin de configuraciones de
conmutador como instancias de problema de satisfaccin booleana (SAT),
permitiendo utilizar un solver SAT para analizar el estado de la red. La
herramienta es capaz de verificar violaciones de invariantes tales como
reenvo sin bucle, conectividad y consistencia. Estos invariantes indican
generalmente un error en la red, es decir, su deteccin ayuda a aumentar la
fiabilidad del plano de datos de red.
3) Simulacin y emulacin: El software de simulacin y emulacin es de
importancia particular para el diseo y la prueba de prototipos sin necesidad
de dispositivos fsicos costosos. Mininet [110] es el primer sistema que
proporciona una manera rpida y fcil de prototipos y evaluar protocolos y
aplicaciones SDN. Una de las principales propiedades de Mininet es su uso
de conmutadores OpenFlow basados en software en contenedores
virtualizados, proporcionando la semntica exacta de los conmutadores
OpenFlow basados en hardware. Esto significa que los controladores o
aplicaciones desarrolladas y probadas en el entorno emulado pueden (en
teora) desplegarse en una red OpenFlowenabled sin la modificacin. Los
usuarios emulan fcilmente una red OpenFlow con cientos de nodos y
docenas de conmutadores usando un solo ordenador personal. Mininet-HiFi
[402] es una evolucin de Mininet que mejora la virtualizacin basada en
contenedores (ligera) con mecanismos para reforzar el aislamiento del
rendimiento, el aprovisionamiento de recursos y el monitoreo preciso de la
fidelidad al rendimiento. Uno de los principales objetivos de Mininet-HiFi es
mejorar la reproducibilidad de la investigacin en red. Mininet CE [403] y
SDN Cloud DC [404] son extensiones de Mininet para permitir simulaciones
a gran escala. Mininet CE combina grupos de instancias de Mininet en un
cluster de instancias de simulador para modelar redes de escala global. SDN
Cloud DC mejora Mininet y POX para emular una red intra-DC basada en
SDN mediante la implementacin de nuevas capacidades de anlisis de
redes y generacin de trfico de red. Las propuestas recientes de la
plataforma de emulacin que permiten realizar experimentos a gran escala
siguiendo un enfoque distribuido incluyen Max-iNet [405], DOT [406]
yCityFlow [407]. El proyecto es un proyecto con el objetivo de construir una
capacidad de control controlada de millones de habitantes. Tales iniciativas
son un punto de partida para proporcionar conocimientos experimentales
para despliegues SDN a gran escala. La capacidad de simular dispositivos
OpenFlow tambin se ha aadido al popular simulador ns-3 [408]. Otro
simulador es fs-sdn, el cual extiende el motor de simulacin de ffs [409]
incorporando un controlador y conmutando componentes con soporte de
OpenFlow. Su principal objetivo es proporcionar una plataforma de
simulacin ms realista y escalable en comparacin con Mininet. Por ltimo,
STS [410] es un simulador diseado para permitir a los desarrolladores
especificar y aplicar una variedad de casos de prueba, mientras que les
permite examinar de forma interactiva el estado de la red.
VI. CONCLUSIN
Las redes tradicionales son complejas y difciles de manejar. Una de las
razones es que los planos de control y de datos estn integrados
verticalmente y especficos del proveedor. Otra razn concurrente es que los
dispositivos de red tpicos tambin estn estrechamente vinculados a
productos de lnea y versiones. En otras palabras, cada lnea de producto
puede tener sus propias interfaces particulares de configuracin y gestin,
lo que implica ciclos largos para producir actualizaciones de productos (por
ejemplo, nuevos firmware) o actualizaciones (por ejemplo, nuevas versiones
de los dispositivos). Todo esto ha dado lugar a problemas de bloqueo de
proveedores para propietarios de infraestructuras de red, adems de
plantear severas restricciones al cambio ya la innovacin. SDN cre una
oportunidad para resolver estos problemas de larga data. Algunas de las
ideas clave de SDN son la introduccin de la programacin dinmica en los
dispositivos de reenvo a travs de interfaces abiertas en direccin sur, la
disociacin del plano de control y datos y la visin global de la red mediante
la centralizacin lgica del cerebro de red. Los elementos del plano de datos
se convirtieron en dispositivos de reenvo de paquetes, pero altamente
eficientes y programables, los elementos de plano de control ahora estn
representados por una nica entidad, el controlador o NOS. Las aplicaciones
que implementan la lgica de red se ejecutan en la parte superior del
controlador y son mucho ms fciles de desarrollar y desplegar en
comparacin con las redes tradicionales. Dada la visin global, la coherencia
de las polticas es sencilla de hacer cumplir. SDN representa un importante
cambio de paradigma en el desarrollo y la evolucin de las redes,
introduciendo un nuevo ritmo de innovacin en la infraestructura de redes.
A pesar de los recientes e interesantes intentos de investigar este nuevo
captulo en la historia de las redes [14] - [16], la literatura todava careca, a
nuestro entender, de una sola visin amplia y completa de los bloques de
construccin, los conceptos , Y los desafos de los SDN. Tratando de abordar
esta laguna, este documento utiliz un enfoque en capas para diseccionar
metdicamente el estado de la tcnica en trminos de conceptos, ideas y
componentes de SDN, que abarca una amplia gama de soluciones
existentes, as como las direcciones futuras. Comenzamos comparando este
nuevo paradigma con redes tradicionales y discutiendo cmo la academia y
la industria ayudaron a formar SDN. Siguiendo un enfoque de abajo hacia
arriba, ofrecimos una visin en profundidad de lo que consideramos las ocho
facetas fundamentales del problema SDN: 1) infraestructura de hardware; 2)
interfaces hacia el sur; 3) virtualizacin de red (capa de hipervisor entre los
dispositivos de reenvo y los NOS), 4) NOS (SDNcontrollersandcontrol
platforms); 5) interfaces en direccin norte (abstracciones comunes de
programacin ofrecidas a aplicaciones de red); 6) virtualizacin utilizando
tcnicas de corte proporcionadas por bibliotecas de propsito especial y / o
lenguajes de programacin y compiladores, 7) lenguajes de programacin
de red; Y finalmente, 8) aplicaciones de red.
SDN ha conseguido abrir el camino hacia una red de prxima generacin,
generando un innovador ambiente de investigacin y desarrollo,
promoviendo avances en varias reas: diseo de plataforma de
conmutadores y controladores, evolucin de escalabilidad y rendimiento de
dispositivos y arquitecturas, promocin de seguridad y fiabilidad.
Seguiremos siendo testigos de una amplia actividad en torno a SDN en un
futuro prximo. Temas emergentes que requieren ms investigacin son, por
ejemplo: la ruta de migracin a SDN, extendiendo SDN hacia redes de
transporte de portadores, la realizacin del paradigma de cloud computing
de red como servicio o SDE. Como tal, nos gustara recibir retroalimentacin
de la comunidad de redes / SDN a medida que evoluciona este nuevo
paradigma, para convertirlo en un '' documento vivo '' que se actualiza y
mejora basado en la retroalimentacin de la comunidad. Hemos creado un
repositorio github (https://github.com/SDN-Survey/latex/ wiki) para este
propsito, e invitamos a nuestros lectores a unirse a nosotros en este
esfuerzo comunal. Adems, los nuevos lanzamientos de la encuesta estarn
disponibles en http://arxiv.org/abs/1406.0440.