rafael eduardo carrillo villamizar

23
1 SOFTWARE DEFINED NETWORKING (SDN) Proyecto de grado presentado por RAFAEL EDUARDO CARRILLO VILLAMIZAR [email protected] Asesor YEZID DONOSO, Ph.D Profesor Asociado Departamento de Ingeniería de Sistemas y Computación UNIVERSIDAD DE LOS ANDES Mayo de 2014, Bogotá D.C., Colombia

Upload: others

Post on 10-Jul-2022

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RAFAEL EDUARDO CARRILLO VILLAMIZAR

1

SOFTWARE DEFINED NETWORKING (SDN)

Proyecto de grado presentado por

RAFAEL EDUARDO CARRILLO VILLAMIZAR

[email protected]

Asesor

YEZID DONOSO, Ph.D

Profesor Asociado Departamento de Ingeniería de Sistemas y Computación

UNIVERSIDAD DE LOS ANDES

Mayo de 2014, Bogotá D.C., Colombia

Page 2: RAFAEL EDUARDO CARRILLO VILLAMIZAR

2

Tabla de Contenidos

RESUMEN ...................................................................................................................................................... 3

1. INTRODUCCIÓN ..................................................................................................................................... 3

2. DESCRIPCIÓN GENERAL......................................................................................................................... 6

2.1. Objetivos ...................................................................................................................................... 6

2.1.1. Objetivo General .................................................................................................................. 6

2.1.2. Objetivos Específicos ........................................................................................................... 6

3. INVESTIGACIÓN ..................................................................................................................................... 6

3.1. Software Defined Networking (SDN) ......................................................................................... 6

3.1.1. Descripción .......................................................................................................................... 6

3.1.2. Inicio ..................................................................................................................................... 7

3.1.3. Beneficios ............................................................................................................................. 7

3.1.4. Principal Promotor .............................................................................................................. 8

3.2. Network Function Virtualization (NFV) .................................................................................... 8

3.2.1. Descripción .......................................................................................................................... 8

3.2.2. Inicio ..................................................................................................................................... 9

3.2.3. Beneficios ............................................................................................................................. 9

3.2.4. Principal Promotor ............................................................................................................ 10

3.3. SDN vs NFV ................................................................................................................................ 10

4. IMPLEMENTACIÓN .............................................................................................................................. 11

4.1. Herramientas ............................................................................................................................. 11

4.1.1. Herramientas Generales ................................................................................................... 11

4.1.2. Herramientas Generales ................................................................................................... 12

4.2. Despliegue de la topología ........................................................................................................ 13

4.2.1. Aspectos Generales ........................................................................................................... 13

4.2.2. Controladores .................................................................................................................... 16

5. RESULTADOS ....................................................................................................................................... 22

5.1. Conclusiones .............................................................................................................................. 22

5.2. Trabajos Futuros ....................................................................................................................... 23

6. REFERENCIAS ....................................................................................................................................... 23

Page 3: RAFAEL EDUARDO CARRILLO VILLAMIZAR

3

RESUMEN

Hoy día se utilizan arquitecturas de red tradicionales que no se ajustan correctamente a los

requerimientos actuales de diversas empresas, operadores de la industria y usuarios finales. Gran parte

del problema está en que dichas arquitecturas fueron propuestas hace más de 20 años donde la

computación cliente-servidor era dominante, sin embargo estas no se adaptan correctamente a la

computación y almacenamiento dinámico que es requerido en la actualidad para soportar los servicios

como virtualización, cloud computing, computación móvil, big data, entre otros. Adicionalmente el hecho

que la mayoría de las implementaciones están sujetas a plataformas cerradas y que las funcionalidades

soportadas dependan directamente del proveedor/vendedor, ha tornado extremadamente difícil la

innovación y adaptación de tales dispositivos para enfrentar los requerimientos de negocio mencionados

previamente.

1. INTRODUCCIO N

MOTIVACIÓN

Las distintas tendencias tecnológicas que han surgido en los últimos años son las responsables en la

generación de nuevos paradigmas al momento de diseñar y construir arquitecturas de redes. Es

fundamental resaltar que la mayoría de estas arquitecturas actuales son jerárquicas con una estructura

de árbol, las cuales se adaptan perfectamente en modelos de computación cliente-servidor. Sin embargo,

al mismo tiempo estas arquitecturas son estáticas frente a los nuevos desafíos en donde una computación

y un almacenamiento dinámico son necesarios.

Algunas de las principales tendencias tecnológicas que han influenciado en este proceso de generación

de nuevos paradigmas y en un sentido similar, han generado nuevas necesidades y requerimientos de

negocio en la industria son presentadas a continuación:

Virtualización: El hecho principal que una máquina/servidor tenga la capacidad de simular más

máquinas/servidores y simular funciones de diferentes dispositivos (Ej: routers, switches), han

convertido a la virtualización una tendencia en la computación. Cabe aclarar que las ventajas en

la virtualización no es solo ahorrar espacio físico, sino por el contrario aprovechar los recursos

computacionales que poseen las máquinas/servidores y su superioridad para simular cualquier

dispositivo, ofreciendo beneficios económicos no sólo en infraestructura, sino también en la

administración.

Page 4: RAFAEL EDUARDO CARRILLO VILLAMIZAR

4

Cloud Computing: Ante el auge de los servicios de computación en la nube (ya sean nubes

privadas, públicas y mixtas) y la gran adopción por parte de la industria y de los usuarios finales,

cloud computing es una tendencia fundamental que ha estado (y seguirá) creciendo en el tiempo.

Algunos de los elementos diferenciadores frente a los modelos On Premise son:

o Ahorros en tiempos de ejecución debido a que la mayoría de proyectos consisten en una

personalización de una solución en lugar de instalación de un software empresarial donde

existen altas probabilidades de fallos y errores en la implementación de los proyectos.

o Está basado principalmente en un modelo de subscripción, ofreciendo una flexibilidad al

momento de consumir un servicio al poder tanto crecer cómo decrecer de acuerdo a las

necesidades del negocio y de pagar por los recursos que realmente se estén usando (Pay

as You Need), dejando atrás la complejidad en la adquisición de licencias, la instalación y

el mantenimiento de infraestructura.

o Gran efectividad de estas soluciones en diferentes frentes debido a que empresas de gran

tamaño cómo Oracle, Amazon o Microsoft han invertido grandes sumas de dinero para

ofrecer niveles de servicios o SLAs (Service Level Agreements) que son complejos de

sostener con infraestructura propia. Esto principalmente influye en empresas con poco

capital de inversión cómo las startups.

Son estas algunas de las principales razones por la cloud computing es una tendencia, ofreciendo

una gran cantidad de ventajas tanto en modelos B2B (orientado a empresas) como en B2C

(orientado a clientes). Sin embargo desde el punto de vista de las empresas que ofrecen estos

servicios, este modelo exige un nivel alto de flexibilidad y escalabilidad frente a los recursos de

computación, almacenamiento y redes.

Big Data: La gran cantidad de información generada a partir de la interacción de las personas en

los diferentes medios digitales, conocido como la web 2.0, les da a las organizaciones la opción

de analizar data que generalmente es no estructurada (ej: blogs, comentarios, imágenes, videos)

presente en fuentes tanto internas como externas, buscando enriquecer sus sistemas

empresariales. Un claro ejemplo se puede observar en torno a lo que se conoce como Experiencia

del Cliente (CX), en la cual las redes sociales son consideradas como un canal fundamental para

las organizaciones debido a que muchas conversaciones de sus clientes, usuarios o ciudadanos

están ocurriendo allí. Por ende, poder interactuar con ellos, llevarles una trazabilidad multi-canal

a mis usuarios y ofrecerles una experiencia única es fundamental hoy en día en las organizaciones

principalmente en una época (customer centric) donde los usuarios tienen cada vez más poder y

voz.

Computación Móvil (BYOD): Adicionalmente a los diversos medios digitales que han surgido, la

tecnología ha influido enormemente al cambio en el comportamiento de los usuarios a través de

múltiples dispositivos cómo los smartphones, tablets, smartwatches, portátiles, entre otros. Esta

tendencia ha influenciado a los usuarios a estar siempre conectados desde cualquier dispositivo

tanto empresarial como personal (Bring Your Own Device, BYOD), obligando a los encargados de

TI (Tecnología de información) a tomar acciones para ajustar las redes a los patrones de tráfico

variables sin perder de vista los requerimientos de seguridad existentes en las organizaciones.

Page 5: RAFAEL EDUARDO CARRILLO VILLAMIZAR

5

Son estos los principales motivos y las nuevas necesidades a las que se enfrentan las organizaciones, por

lo que se empezaron a generar nuevos paradigmas en torno a esta situación. Es acá donde han sido

creadas algunas arquitecturas emergentes cómo Software-Defined Networking (SDN) o Network Function

Virtualization (NFV), y la iniciativa y el interés de investigar acerca de este tipo de soluciones, en el cual se

concentrará este proyecto.

Imagen 1. Motivación de Software-Defined Networking [1]

Estructura del documento

El documento presente se dividió en 3 secciones principales con el objetivo de llevar un hilo conductor

del proyecto y lograr su completo entendimiento. La primera sección está conformada por los primeros

dos capítulos, los cuales dan una introducción y descripción del problema que abarcará el proyecto, junto

a los objetivos propuestos. La segunda sección está conformada por los capítulos 3 &4, donde se realiza

una investigación de aquellas arquitecturas emergentes propuestas cuya función es combatir el nuevo

paradigma presentado y se realiza de igual modo, la implementación de estas arquitecturas con su

descripción detallada. Finalmente la última sección está compuesta por el capítulo 5, el cual detalla las

conclusiones del proyecto y resalta el trabajo futuro.

Page 6: RAFAEL EDUARDO CARRILLO VILLAMIZAR

6

2. DESCRIPCIO N GENERAL

2.1. Objetivos

2.1.1. Objetivo General

Ante las nuevas arquitecturas emergentes cuyo propósito ha sido atacar la problemática

presentada anteriormente, el objetivo será investigar dos de aquellas arquitecturas emergentes

(SDN & NFV) e implementar una topología de red basada en Software-Defined Networking (SDN).

2.1.2. Objetivos Específicos

1. Realizar una investigación sobre las arquitecturas emergentes de SDN & NFV

2. Implementación de un proyecto de SDN con el despliegue de una topología previamente

definida

3. Implementación de diferentes controladores (“cerebros”) de SDN en los distintos niveles de

acceso presentados a continuación:

a. Al mismo nivel de la herramienta Mininet

b. Al mismo nivel de la máquina virtual

c. A nivel del host (fuera de la máquina virtual)

3. INVESTIGACIO N

3.1. Software Defined Networking (SDN)

3.1.1. Descripción

Arquitectura emergente la cual desacopla el control de la red del ruteo (forwarding) realizado por

los diferentes dispositivos que componen una red (switches & routers), permitiendo que la

infraestructura sea abstraída de las aplicaciones y los servicios de la red. Es decir, a través de un

controlador se centralizará la inteligencia de la red, y por ende, la misma red estará representada

por un único switch lógico ante las diferentes aplicaciones y dispositivos que quieran accederla

como se puede apreciar en la Imagen 2.

Page 7: RAFAEL EDUARDO CARRILLO VILLAMIZAR

7

Imagen 2. Arquitectura basada en Software Defined Networking [3]

3.1.2. Inicio

En base a la información de SDN Central [2] & Open Networking Foundation [3], SDN nació en las

redes de los campus (~ 2008) donde los investigadores buscaban centralizar el control para evitar

tener que entrar el software de cada dispositivo de la red al momento de querer realizar cambios.

Se argumenta que nació allí ya que ellos fueron los encargados de impulsar diferentes aspectos

fundamentales en una arquitectura SDN como el desacoplamiento de la inteligencia (control) de

la red de las funciones de forwarding (tarea de cada dispositivo) y posterior centralización del

control. Sin embargo, los data centers y las nubes (privadas, públicas o hibridas) son los casos de

uso en la industria donde más tuvo y siguen teniendo éxito por la flexibilidad, agilidad y demás

beneficios que ofrece SDN (presentados a continuación).

3.1.3. Beneficios

A continuación se presentan algunos beneficios asociados a este nuevo paradigma de diseñar y

crear arquitectura de redes:

Administración centralizada: Toda la inteligencia de la red queda centralizada como una

única entidad lógica frente a todas las aplicaciones, motores de políticas y demás

dispositivos, permitiendo una configuración y orquestación dinámica frente a cualquier

nuevo requerimiento. Adicionalmente SDN interactúa y relaciona el hardware con el

software, facilitando la administración de cualquier dispositivo físico o virtual en la red.

Agilidad: Permite de forma dinámica ajustar el tráfico de la red y crear nuevas políticas de

acuerdo a las nuevas necesidades en cualquier momento y desde cualquier lugar.

Page 8: RAFAEL EDUARDO CARRILLO VILLAMIZAR

8

Flexibilidad: La red puede crecer o disminuir de forma sencilla debido a que un “cerebro”

los controla y orquestra dichos dispositivos, evitando entrar físicamente a cada

dispositivo a cambiar el control de comunicación. Adicionalmente cómo es una capa de

software que desacopla la inteligencia de la red de los dispositivos físicos, SDN no es

dependiente de las funcionalidades que preste el hardware (vendedor/proveedor).

Habilita la innovación: Las organizaciones pueden desplegar rápidamente nuevas

aplicaciones y servicios para ajustarse a nuevos requerimientos de negocio.

Costos: Este nuevo paradigma impacta en la reducción de costos tanto en el capital

(CapEX) cómo en la operación (OpEX). El motivo principal de la reducción en el CapEX se

ve asociado a la eliminar los costos adicionales de sobre-aprovisionamiento donde no se

explotan los recursos al máximo y evitar la compra de recursos de circuito integrados para

aplicaciones específicas (ASIC, sigla en inglés) gracias a OpenFlow, protocolo del cual se

hablará más adelante. Adicionalmente reduce adicionalmente la complejidad en la

gestión de las redes tanto en tiempo como en la disminución de errores humanos al tener

una visión global de la red, afectando directamente en el OpEX.

3.1.4. Principal Promotor

La principal entidad promotora de SDN es la Open

Networking Foundation, comunidad encargada de

facilitar la adopción de esta arquitectura en base a

estándares de desarrollo abiertos orientados a la

industria, como el OpenFlow Standard [4], protocolo del

cual se discutirá más adelante.

3.2. Network Function Virtualization (NFV)

3.2.1. Descripción

Arquitectura de red la cual desacopla los servicios de red de hardware propietario y de propósito

específico. Es decir, su objetivo principal es poder prestar cualquier servicio de la red cómo la

traducción de las direcciones de red (NAT, sigla en inglés), firewall, balanceo de carga, caching,

sistema de nombres de dominio (DNS, sigla en inglés), entre otros, de una forma virtual a través

de software. Cómo se mencionó previamente, dado a los grandes avances que se han presentado

tecnológicamente y al uso de la virtualización, en pocas palabras cualquier función o servicio que

sea generado por un dispositivo puede ser replicado en software y de esta forma desacoplar estos

servicios del hardware, ilustrándose estos cambios de arquitectura en la Imagen 3 y trayendo

consigo un conjunto de beneficios los cuales se ilustrarán más adelante.

Page 9: RAFAEL EDUARDO CARRILLO VILLAMIZAR

9

Imagen 3. Network Function Virtualization. Fuente: Steve Noble

3.2.2. Inicio

A diferencia de SDN, el concepto de NFV nació por parte de los proveedores de servicio del sector

de Telecomunicaciones, los cuales ante la necesidad de acelerar los despliegues de servicios y al

contar con restricciones a nivel de dispositivos físicos (hardware), decidieron usar tecnologías de

virtualización estándares para ejecutar dichos servicios previamente mencionados.

3.2.3. Beneficios

A continuación se presentan algunos beneficios asociados a la arquitectura NFV:

Acelerar el tiempo de salida al mercado (Time-to-Market): Reduce el tiempo de

despliegue de los nuevos servicios y el riesgo asociado que conlleva esta acción.

Flexibilidad & Agilidad: Similar a SDN, esta arquitectura ofrece dichos beneficios para

adaptarse de forma rápida a los cambios en el negocio o nuevos requerimientos por

ofrecerse virtualmente.

Costos: Similar a SDN, reduce el CapEX en este caso al evitar comprar hardware de

propósito específico (Ej: servidor encargado de realizar el NAT) y evitar el sobre-

aprovisionamiento. Por otro lado, reduce el OpEX en la gestión de los servicios

(disminución de complejidad) y al evitar el mantenimiento de los dispositivos.

Page 10: RAFAEL EDUARDO CARRILLO VILLAMIZAR

10

3.2.4. Principal Promotor

Diversos proveedores (Telcos) [5] tomaron la iniciativa

de crear un comité con el apoyo de la ETSI (European

Telecommunications Standards Institute) conocido

como ETSI Industry Specification Group for NFV, los

cuales se centraran en crear estándares para esta

arquitectura definiendo los requerimientos sobre la

virtualización de las funciones ya mencionadas.

3.3. SDN vs NFV

Es claro reconocer que las dos arquitecturas emergentes no son comparables directamente ya que

están enfocadas en “atacar” diferentes problemáticas. Sin embargo, en la Tabla 1 se puede resumir

las principales características de cada una [2].

Categoría SDN NFV

Principales necesidades a

cubrir

Desacoplamiento del control de la red de la función de forwarding

Centralización del control

Virtualizar servicios y funciones que normalmente realiza hardware de propósito específico

Inicios Campus [Alrededor del 2008] Proveedores de servicio del sector de telecomunicaciones (Telcos) [2012]

Casos de uso Data centers y nubes (privadas, publicas e hibridas).

Proveedores de servicio del sector de telecomunicaciones (Telcos)

Infraestructura necesaria

Servidores & switches Servidores & switches

Funcionalidad inicial

Orquestación de la red

Orquestación del cloud

Virtualizar funciones cómo routers, firewalls, gateways, CDN, caching, etc.

Protocolos usados

OpenFlow, creado en Standford y desarrollado por la ONF.

No está definido

Principal Promotor

Open Networking Foundation (ONF). Principales miembros [6]:

Deutsche Telekom

Facebook

Goldman Sachs

Google

Microsoft

NTT Communications

Verizon

Yahoo!

ETSI Industry Specification Group for NFV. Principales miembros [5]:

AT&T

BT

China Mobile

CenturyLink

Deutsche Telekom

Orange

Telefonica

Verizon Tabla 1. Resumen de SDN vs NFV

Page 11: RAFAEL EDUARDO CARRILLO VILLAMIZAR

11

4. IMPLEMENTACIO N

4.1. Herramientas

4.1.1. Herramientas Generales

A continuación se presenta el listado con una corta descripción de aquellas herramientas utilizadas en el proyecto, asociadas específicamente a SDN o NFV.

4.1.1.1. OpenFlow (www.openflow.org)

Interfaz abierta que permite controlar las tablas encargadas del forwarding en switches, routers y access points. Se utilizó cómo protocolo de comunicación entre el controlador de SDN y los dispositivos de la red.

4.1.1.2. Mininet (www.mininet.org)

Herramienta Open-Source que permite crear una red virtual de SDN con hosts, controladores y switches (basado en Open vSwitch). Hace uso de OpenFlow cómo protocolo de comunicación y de POX como controlador. Se utilizó justamente para crear la topología de la red virtual.

4.1.1.3. POX (http://www.noxrepo.org/)

Controlador de SDN Open-Source implementado en Python. Es el controlador que Mininet tiene instalado por defecto. Se utilizó para ejecutar un controlador al mismo nivel de acceso de Mininet.

4.1.1.4. FloodLight (www.projectfloodlight.org)

Controlador de SDN Open-Source implementado en Java. Se utilizó como controlador de Mininet con el objetivo de ejecutar un controlador a un nivel de acceso remoto pero dentro de la misma máquina virtual.

4.1.1.5. OpenDayLight (http://www.opendaylight.org/)

Controlador de SDN Open-Source creado para la industria con el apoyo de Linux Fundation. Incluye también Network Function Virtualization (NFV). Se utilizó como controlador de Mininet con el objetivo de ejecutar un controlador a un nivel de acceso remoto (fuera de la máquina virtual).

Page 12: RAFAEL EDUARDO CARRILLO VILLAMIZAR

12

4.1.2. Herramientas Generales

A continuación se presenta el listado con una corta descripción de aquellas herramientas utilizadas en el proyecto, pero que no están asociadas específicamente a SDN o NFV.

4.1.2.1. Wireshark (http://www.wireshark.org/)

Herramienta Open-Source cuya función principal es analizar paquetes transmitidos en una red. Se utilizó para monitorear una interfaz de red donde se estaban transmitiendo los paquetes con el protocolo de OpenFlow.

4.1.2.2. VirtualBox (https://www.virtualbox.org/)

Herramienta de virtualización de sistemas operativos de Oracle Corporation. Se utilizó para ejecutar el sistema operativo Ubuntu en la máquina virtual.

4.1.2.3. Ubuntu (http://www.ubuntu.com/)

Sistema operativo de Linux basado en Debian y S.O por defecto en la máquina virtual de Mininet.

4.1.2.4. PuTTY (http://www.putty.org/)

Herramienta Open-Source usada como emulador de terminales (consolas). Se utilizó para iniciar distintas sesiones de forma simultánea y ejecutar distintos procesos paralelamente.

4.1.2.5. Xming (http://www.straightrunning.com/XmingNotes/)

Implementación del Sistema de ventanas X (X Window System) para sistemas

operativos de Microsoft Windows. Se utilizó para habilitar las interfaces gráficas

de Firefox y Wireshark.

4.1.2.6. Firefox (http://www.mozilla.org/en-US/firefox)

Navegador Web Open-Source desarrollado para Windows, OS X, Linux y Android.

Se utilizó para desplegar la GUI de FloodLight y ver en el navegador web la

topología desplegada.

4.1.2.7. Java (http://www.java.com/en) & Python (https://www.python.org)

Lenguaje de programación orientado a objetos desarrollado por

Oracle Corporation en el caso de Java. Python es un lenguaje de

programación de propósito general desarrollado por Python Software

Foundation. Se utilizaron principalmente para compilar y ejecutar

FloodLight & POX respectivamente.

Page 13: RAFAEL EDUARDO CARRILLO VILLAMIZAR

13

4.2. Despliegue de la topología

4.2.1. Aspectos Generales

En esta sección se discutirán aspectos generales en el despliegue de la topología. Primero, fue

necesario iniciar la máquina virtual la cual contiene Mininet (http://mininet.org/download/) y

empezar a instalar diferentes herramientas tales como Java, Firefox y los controladores que tenían

pensado ir dentro de la máquina virtual. En la Imagen 4 se puede apreciar la configuración de red

de la máquina virtual.

Imagen 4. Configuración de la red

Luego, cuando está configurado, a través de Mininet se ejecuta la topología necesaria con el

siguiente comando: $ sudo mn y adicionalmente se adicionan los parámetros que definen dicha

topología. Cómo parámetros principales está definir la estructura de la topología (- -topo), el tipo

del switch en el cual se desea que este sea uno virtual (- -switch) y el controlador en el caso que

se desee usar otro adicional al POX que viene preinstalado (- -controller). Mininet cuenta con una

estructura de directorios con archivos que son de Python (extensión .py), los cuales son

fundamentales al momento de querer reescribir la topología (crear una personalizada) o escribir

un controlador que aprenda de forma proactiva sobre los elementos que conforman la red.

Page 14: RAFAEL EDUARDO CARRILLO VILLAMIZAR

14

La topología sobre la cual se trabajó se puede observar en detalle en la Imagen 5 y la Imagen 6.

En la primera de estas se puede observar desde Mininet la estructura de la red, donde existe un

controlador (c0) del cual se entrará en detalle más adelante, 1 switch principal (s1) el cual servirá

como router y 2 switches (s2 & s3) debajo de este (s1), los cuales poseen las conexiones con los

hosts. En esta topología se crearon 4 hosts, los cuales están separados en parejas por switch,

implicando que el switch (s2), estará conectado con 2 hosts (h1 & h2) y el switch (s3) estará

conectado con los otros 2 hosts (h3 & h4). Esta misma topología se puede observar en la segunda

imagen (Imagen 6), la cual es una representación gráfica de lo mencionado previamente.

Imagen 5. Topología desplegada en Mininet

Imagen 6. Representación gráfica de la topología

Page 15: RAFAEL EDUARDO CARRILLO VILLAMIZAR

15

La información acerca de los controladores se hablará en la siguiente sección. Sin embargo, un

aspecto fundamental general es el protocolo OpenFlow del cual se habló anteriormente, y más en

concreto, el análisis sobre los paquetes que usan este protocolo con una herramienta como

Wireshark. A continuación la Imagen 7 representa justamente una captura realizada en esta

herramienta luego de realizar un ping desde el primer host (h1) hasta el tercer host (h3), los cuales

según nuestra topología se encuentran bajo switches distintos.

Imagen 7. Wireshark

Los aspectos fundamentales a describir de esta imagen son los siguientes:

En el filtro de Wireshark se encuentran 2 caracteres, ‘of’, los cuales realiza un filtro rápido para

visualizar aquellos paquetes que usen el protocolo OpenFlow.

En el primer conjunto de paquetes registrados, se puede observar que el destino es broadcast,

y esto ocurre ya que las tablas de forwarding inicialmente están vacías, por lo que es necesario

lanzar un mensaje en broadcast para preguntarles a todos. En este conjunto el protocolo usado

es OFP + ARP y está basado en una comunicación a través de las direcciones MAC.

Page 16: RAFAEL EDUARDO CARRILLO VILLAMIZAR

16

En el segundo conjunto de paquetes registrados, se puede observar que el host 3 responde al

mensaje de broadcast diciendo la IP del host a través del protocolo OFP + ARP.

En el tercer conjunto de paquetes registrados, se pueden observar que el protocolo es OFP,

cuya descripción establece que se realiza un Flow Mod. Este Flow mod se puede ver en detalle

al final de la imagen, donde es parte del protocolo de OpenFlow para que el controlador

comience a almacenar dichas tablas y a aprender sobre la red de la cual está a cargo (Flow

Mod=Flow Modification). Allí en este protocolo se pueden definir diferentes parámetros entre

los cuales está por ejemplo los timeouts para eliminar la información de las tablas, una índice

de prioridad sobre el flujo de comunicación entre distintos puntos, un comando que en este

ejemplo es “New Flow” ya que hasta ahora se está aprendiendo sobre la red, entre otros

parámetros.

Finalmente el ultimo conjunto de paquetes registrados, identificados con el protocolo OFP +

ICMP, corresponden ya al ping realizado desde primer host (h1) hasta el tercer host (3), ya a

través de las direcciones IPs.

4.2.2. Controladores

4.2.2.1. POX

Este es el primer controlador usado ya que viene preinstalado con Mininet y está basado en

Python. La razón por la cual se usó era para realizar las pruebas iniciales (disminuir curva de

aprendizaje) y ejecutar un controlador que esté en el mismo nivel de la solución (Mininet).

Respecto a este controlador es necesario programarlo para el auto-aprendizaje, ya que por

defecto la única forma de añadir los flujos es a través del comando $ dpctl, en donde con un

comando cómo $ dpctl add-flow tcp:127.0.0.1:6634 in_port=1,actions=output:2, se define

el flujo entre los distintos puertos especificados. Es decir, que es responsabilidad de el usuario

agregar los flujos ya sea programándolos o de forma manual cómo se presentó

anteriormente, porque de lo contrario va a ocurrir la situación de la Imagen 8 en donde todos

los paquetes se van a perder inicialmente ya que nadie se comunica con nadie.

Imagen 8. Pingall 100% dropped

Page 17: RAFAEL EDUARDO CARRILLO VILLAMIZAR

17

4.2.2.2. FloodLight

Este es el segundo controlador usado el cual se instaló en la maquina virtual y es basado en

Java. La razón por la cual se usó principalmente fue para ejecutar un controlador que esté

dentro de la máquina virtual no a nivel de la solución (Mininet) y poder probar diferentes

aspectos de la programación debido a que su lenguaje es Java.

FloodLight funciona similar al siguiente controlador (OpenDayLight) desde el punto de vista

SDN, y lo interesante en este aspecto es que estos controladores aprenden automáticamente,

por lo cual en una fase inicial tienen que hacer el broadcast para que se conozcan los

diferentes elementos de la red, sin embargo esto cambia después de la primera comunicación

disminuyendo considerablemente el tiempo de respuesta de los mensajes. Esto último

mencionado se puede apreciar en las siguientes 3 imágenes, las cuales se encuentran

divididas por fases. La primera fase (Imagen 9) consiste en la primera vez que se van a

comunicar, por lo cual el primer ping tiene una duración de 6.02 ms (etapa de conocimiento

y aprendizaje) mientras que los siguientes tienen un duración menor a 0.2ms. La segunda fase

consiste en realizar un ping después de haber transcurrido un tiempo, esto con motivo de que

caduque el flujo en la tabla por el cual sea necesario volver a realizar un broadcast, sin

embargo aunque el primer flujo es alto en comparación a los siguientes pings, se puede

observar que la duración del primer ping es mucho menor respecto al ping inicial de la primera

fase. Finalmente la tercera fase consistió en realizar un ping enseguida de la segunda fase,

por lo cual se puede observar que los tiempos son muy bajos.

Imagen 9. h1 ping h2 (1era fase)

Imagen 10. h1 ping h2 (2nda fase)

Page 18: RAFAEL EDUARDO CARRILLO VILLAMIZAR

18

Imagen 11. h1 ping h2 (3ra fase)

Otra de las ventajas de Floodlight es su GUI web donde en tiempo real se puede monitorear

la topología de la red que administra el controlador. En la Imagen 12 se puede observar la

misma información respecto a la topología, donde existen actualmente 3 switches y 4

distintos hosts, lo cual a través de la Imagen 13 lo representa gráficamente.

Imagen 12. Dashboard de Floodlight

Page 19: RAFAEL EDUARDO CARRILLO VILLAMIZAR

19

Imagen 13. Representación Gráfica de la Topología en Floodlight

4.2.2.3. OpenDayLight

Este es el último controlado usado en el proyecto, el cual corre sobre el S.O local de la

máquina, es decir afuera de la máquina virtual. La razón por la cual se utilizó OpenDayLight

fueron principalmente 2 motivos: el primero debido a la gran acogida por parte de la industria

de este controlador, y la segunda ya que posee tanto SDN como NFV.

Luego de ejecutar este controlador y ejecutar la topología en Mininet definiendo como

parámetro que el controlador estará remoto en una dirección IP asignada, se prosiguió a

realizar las pruebas entre los diferentes hosts. Allí, al igual que Floodlight, existe un periodo

de adaptación en donde las tablas de forwarding se comienzan a llenar. Sin embargo, este

controlador es mucho más robusto ofreciendo una gran oferta de distintas opciones al

momento de crear un flujo cómo se puede apreciar en la Imagen 14, o hasta especificar que

los nodos en mi red se comporten de forma reactiva o proactiva (Imagen 15). Finalmente en

la Imagen 16 & la Imagen 17, se puede apreciar gráficamente la configuración de la topología

junto a las características de los dispositivos (nodos) y de los flujos construidos, permitiendo

desde la misma interfaz una fácil modificación de estas (cabe resaltar que en las últimas

versiones de OpenDayLight, no se visualizan los hosts en el dashboard).

Page 20: RAFAEL EDUARDO CARRILLO VILLAMIZAR

20

Imagen 14. Opciones de configuración de OpenDayLight

Imagen 15. Información del nodo

Page 21: RAFAEL EDUARDO CARRILLO VILLAMIZAR

21

Imagen 16. Topología prevista en OpenDayLight

Imagen 17. Configuración de flujos en OpenDayLight

Page 22: RAFAEL EDUARDO CARRILLO VILLAMIZAR

22

4.2.2.4. Resumen

Categoría POX FloodLight OpenDayLight

Lenguaje Python Java Java

Comunidad Nicira Networks Big Switch Networks The Linux Foundation

Nivel de Ejecución

Local (dentro de Mininet) Remota (dentro de la

misma máquina virtual) Remota (fuera de la

máquina virtual)

Ventajas Controlador liviano que

viene preinstalado en la MV de Mininet.

Versión licenciada de Apache y es el core de los productos de Big Switch Networks.

Existen 3 versiones del controlador con distintas características.

Soporta NFV

Interfaz que permite la edición de topologías desde el portal web

Desventajas

Es una versión muy básica a partir de NOX.

Flujos es necesario agregarlos de forma manual

No soporta NFV

No soporta NFV

Desde la interfaz web no se puede editar las topologías

Al estar pre-construido en 3 versiones cuenta a veces con herramientas innecesarias y un ambiente no liviano.

Link http://www.noxrepo.org/pox/about-pox/

http://www.projectfloodlight.org/floodlight/

https://www.opendaylight.org

Tabla 2. Comparación de los distintos controladores

5. RESULTADOS

5.1. Conclusiones

En el proyecto se presentó una aproximación a aquellas arquitecturas de redes emergentes que han

estado tomado fuerza con el tiempo para contrarrestar las antiguas arquitecturas de red que se

acoplaban a modelos clientes-servidor, las cuales permiten agilidad en el despliegue de

infraestructura para ofrecer nuevos servicios emergentes y un mejor diseño ante nuevos paradigmas

como la computación en la nube, virtualización, computación móvil, entre otros. En resumen, en este

proyecto se logró lo siguiente:

1. Estudio de la problemática a tratar y un análisis de las alternativas más conocidas y soportadas

por la industria y la academia que son las arquitecturas SDN & NFV

2. Ejecución de una arquitectura SDN con la topología propuesta compuesta de un controlador,

un router, dos switches y cuatro hosts apoyado en Mininet, software para realizar

virtualización de redes (switches & hosts).

Page 23: RAFAEL EDUARDO CARRILLO VILLAMIZAR

23

3. Investigación de los distintos controladores existentes en el mercado compatibles con el

protocolo OpenFlow.

4. Ejecución de 3 distintos controladores con diferentes niveles de acceso respecto a Mininet

cómo lo son POX, FloodLight & OpenDayLight.

Finalmente cabe resaltar la gran acogida que han tenidos estos nuevos paradigmas en la industria y

en la academia, y el respaldo que han tenido de distintas asociaciones donde los principales

promotores son empresas de gran tamaño como Google, Microsoft, AT&T y Verizon.

5.2. Trabajos Futuros

Ante la necesidad de querer solucionar una problemática extensa y compleja, el proyecto se centró

en investigar principalmente dos arquitecturas emergentes cómo lo fueron SDN & NFV. Al investigar

acerca de ellas y observar que no son directamente comparables ya que tienen objetivos distintos, se

enfocó el proyecto en SDN y en desplegar dicha arquitectura a través de diferentes cerebros o

controladores cómo fue presentado. Sin embargo, cabe resaltar la importancia de la NFV cómo

arquitectura para la virtualización de distintos servicios prestados por la red cómo DNS, caching,

firewall, NAT, entre otros, por lo cual se recomendaría explorar a profundidad en trabajos futuros.

6. REFERENCIAS

[1] Ochs, G. (2013). Software Defined Network (SDN). Universidad de Stuttgart – Curso de SmartCloud

realizado por IBM . [En línea] [Citado el 14 de mayo de 2014] http://www.iaas.uni-stuttgart.de/lehre/vorlesung/2013_ws/vorlesungen/smcc/materialien/SoftwareDefinedNetwork_20131024_v04.pdf

[2] Pate, P. (2013) NFV and SDN: What’s the Difference? [En línea] [Citado el 14 de mayo de 2014]

http://www.sdncentral.com/technology/nfv-and-sdn-whats-the-difference/2013/03/

[3] ONF White Paper (2013). Software-Defined Networking: The New Norm for Networks [En línea]

[Citado el 14 de mayo de 2014]

https://www.opennetworking.org/images/stories/downloads/sdn-resources/white-papers/wp-sdn-newnorm.pdf

[4] Open Networking Foundation. OpenFlow Standard. [En línea] [Citado el 14 de mayo de 2014]

https://www.opennetworking.org/sdn-resources/onf-specifications/openflow

[5] ISG NFV. List of Members. [En línea] [Citado el 14 de mayo de 2014]

http://portal.etsi.org/NFV/NFV_List_members.asp

[6] NEC Corporation of America. Ten things to Look for in an SDN Controller. [En línea] [Citado el 20 de

mayo de 2014] https://www.necam.com/Docs/?id=23865bd4-f10a-49f7-b6be-a17c61ad6fff