Download - Prototipos de redes definidas por software
![Page 1: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/1.jpg)
PROTOTIPOS DE REDES DEFINIDAS POR SOFTWARE
David Mejí[email protected]
Noviembre 2013
Iván [email protected]
![Page 2: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/2.jpg)
Agenda
Situación Actual de Internet SDN OpenFlow Mininet Prototipo usando switches
habilitados Prototipo usando switches virtuales
![Page 3: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/3.jpg)
Internet
Éxito Increíble: Proyecto de investigación -> infraestructura
global Basado en:
Red (entrega de mejor esfuerzo de paquetes) y Hosts (aplicaciones arbitrarias)
Innovación: Web, P2P, VoIP, redes sociales, mundos
virtuales Los cambios solo son posibles en los
extremos.
![Page 4: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/4.jpg)
Dentro de la “red”
Equipamiento cerrado Software incluido en el hardware Interfaces específicas del vendedor
(lenta) Estandarización de protocolos Poca innovación
Vendedores (retardo) Introducción de nuevas
características
![Page 5: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/5.jpg)
Cambios provocados por los usuario
Nuevos requerimientos: Redes de gran escala Movilidad QoS Migración de máquinas virtuales Gran cantidad de datos (BigData)
![Page 6: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/6.jpg)
Los planos del “networking” Plano de Datos
Procesamiento y entrega de paquetes en base a políticas de reenvío: Estado de reenvío + cabecera de paquete
-> decisión de reenvió
Plano de Control Establece el estado de reenvío
Protocolos distribuidos Configuración manual Computación centralizada
![Page 7: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/7.jpg)
Plano de Datos (Abstracciones) Capas:
Aplicaciones
Transporte (confiable o no)
Entrega de paquetes de mejor esfuerzo (global)
Entrega de paquetes de mejor
esfuerzo (local)
Transferencia física
![Page 8: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/8.jpg)
Plano de Control (Abstracciones)
![Page 9: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/9.jpg)
Mecanismos del Plano de Control
Diferentes Objetivos: Enrutamiento Aislamiento Ingeniería de Tráfico
No hay modularidad Funcionalidad limitada
Demasiados mecanismos sin abstracciones, lo que provoca una funcionalidad limitada.
![Page 10: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/10.jpg)
El problema del Plano de Control
El plano de control debe calcular el estado de reenvío. Consistente con el hardware/software de
bajo nivel. Basarse en la topología completa de la
red. Realizarse en cada equipo de
comunicaciones.
![Page 11: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/11.jpg)
Plano de Control (Abstracciones)
Ser compatible con hardware/software de bajo nivel Abstracción para el modelo de reenvío
general. Tomar decisiones basadas en la topología
de red Abstracción para el estado de la red.
Configuración de cada dispositivo de red Abstracción que simplifique el proceso de
configuración.
![Page 12: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/12.jpg)
Abstracción del Reenvío
Independiente de hardware/software. Propuesta actual: OpenFlow
Interfaz estandarizado para manipular el plano de control.
Configuración en términos de flujos Los detalles del diseño se basan en:
Coincidencia en cabeceras Acciones
![Page 13: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/13.jpg)
Abstracción del Estado de Red
Abstracción: Vista Global de la Red Implementación: Sistema Operativo de
Red Ejecución en varios servidores
replicación -> confiabilidad
Información fluye en dos vías: Información desde equipos de red para
formar la vista Configuración hacia equipos de red para
controlar el reenvió
![Page 14: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/14.jpg)
Red Tradicional
![Page 15: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/15.jpg)
Mecanismos de Control Tradicional Algoritmos distribuidos en los
equipos (vecinos)
![Page 16: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/16.jpg)
SDN
SO de red
![Page 17: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/17.jpg)
SDN
SO de red
Vista Global de la Red
![Page 18: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/18.jpg)
SDN
SO de red
Vista Global de la Red
Aplicación de ControlEnrutamiento, control de acceso, firewall, …
![Page 19: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/19.jpg)
Arquitectura de SDN
Fuente: “SDN and OpenFlow for beginners” – Tiweari, V.
![Page 20: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/20.jpg)
Arquitectura de SDN
Infraestructura de Red: Dispositivos de conectividad
Físicos o virtuales Habilitados o dedicados
Denominados usualmente switches
![Page 21: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/21.jpg)
Arquitectura de SDN
Controlador: Software centralizado (lógicamente) Interactúa con todos los dispositivos de
conectividad. Dispone de API abiertas. Actúa como un sistema operativo de red
Visión general de la misma. Las aplicaciones que se ejecutan en el
controlador determinarán cómo se comportan los flujos.
Diferentes alternativas: Beacon, Floodlight, Trema, NOX/POX, Open DayLight, entre otros.
![Page 22: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/22.jpg)
Arquitectura de SDN
Aplicaciones: Aplicaciones y servicios de red. Interactúan con el controlador
solicitándole ciertos requerimientos que la red debe cumplir.
Protocolo OpenFlow: Permite que el controlador (plano de
control) se comunique con los dispositivos de conectividad (plano de datos).
![Page 23: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/23.jpg)
OpenFlow
Plano de Datos
Plano de Control
OpenFlow
Controlador OpenFlow
Protocolo OpenFlow (SSL/TCP)
![Page 24: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/24.jpg)
Funcionamiento de OpenFlow
Controlador
PC
Tabla de OpenFlow
MACsrc
MACdst
IPSrc
IPDst
TCPsport
TCPdport Acción
OpenFlow
**5.6.7.8*** puerto 1
puerto 4puerto 3puerto 2puerto 1
1.2.3.45.6.7.8
![Page 25: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/25.jpg)
25
Registros de la Tabla
SwitchPort
MACsrc
MACdst
Ethtype
VLANID
IPSrc
IPDst
IPProt
TCPsport
TCPdport
Regla Acción Estadísticas
Contadores (paquetes – bytes)
1. Reenvío2. Encapsulamiento para envío al controlador3. Drop4. Procesamiento “normal”5. …
![Page 26: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/26.jpg)
Mininet
Simulador de SDN. Corre sobre Linux. Permite crear topologías
personalizadas mediante scripts. Python
Para la simulación emula los diferentes enlaces, PC, switches y controladores Emplea diferentes mecanismos de
virtualización del sistema operativo Linux
![Page 27: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/27.jpg)
Mininet
![Page 28: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/28.jpg)
Mininetfrom mininet.topo import Topo, Node class MiTopo( Topo ) : def __init__( self, enable_all = True ) : super( MiTopo.self ).__init__() hostIzquierdoA = 1 hostIzquierdoB = 2 switchIzquierdo = 3 switchDerecho = 4 hostDerechoA = 5 hostDerechoA = 6 self.add_node( switchIzquierdo,
Node( is_switch = True )) self.add_node( switchDerecho,
Node( is_switch = True )) self.add_node( hostIzquierdoA,
Node( is_switch = False )) self.add_node( hostIzquierdoB,
Node( is_switch = False )) self.add_node( hostDerechoA, Node( is_switch
= False )) self.add_node( hostDerechoA, Node( is_switch
= False )) self.add_edge( hostIzquierdoA,
switchIzquierdo ) self.add_edge( hostIzquierdoB,
switchIzquierdo ) self.add_edge( hostDerechoA, switchDerecho ) self.add_edge( hostDerechoB, switchDerecho ) self.add_edge( switchIzquierdo,
switchDerecho ) self.enable_all() topos = { ‘mitopo’ : ( lambda : MiTopo() ) }
![Page 29: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/29.jpg)
Prototipo de SDN basado en Switches Habilitados
Prototipo de SDN empleando switches habilitados. Switches de bajo costo con su firmware modificado Linksys WRT54GL - OpenWRT Soporte del protocolo OpenFlow
Se emplearon cuatro de los principales controladores: NOX, POX, Beacon y Floodlight.
Para cada controlador se desarrolló un componente de software Python y Java
![Page 30: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/30.jpg)
Prototipo de SDN basado en Switches Habilitados
Host Izquierdo H1
Host Derecho H2
Conmutador izquierdoS1
192.168.1.1
Conmutador derechoS2
192.168.1.3
Controladoreth0
192.168.1.2
Conmutador no OpenFlow
![Page 31: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/31.jpg)
Prototipo de SDN basado en Switches Habilitados
Reglas: ARP - intercambio de mensajes entre todos los
hosts. ICMP - intercambio de mensajes entre V11 y V21. HTTP - intercambio de mensajes entre V11
(cliente– puerto dinámico) y V21 (servidor – puerto 80).
Telnet - intercambio de tráfico entre V12 (cliente – puerto dinámico) y V22 (servidor – puerto 23).
Video streaming - intercambio de mensajes entre V13 (cliente) y V23 (servidor - puerto 8081).
![Page 32: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/32.jpg)
Prototipo de SDN basado en Switches Habilitados
![Page 33: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/33.jpg)
Prototipo de SDN basado en Switches Habilitados
Pruebas:
![Page 34: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/34.jpg)
Prototipo de SDN basado en Switches Habilitados
Pruebas:
![Page 35: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/35.jpg)
Prototipo de SDN basado en Switches Habilitados
Pruebas:
![Page 36: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/36.jpg)
Prototipo de SDN basado en Switches Habilitados
Pruebas:
![Page 37: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/37.jpg)
Prototipo de SDN basado en Switches Habilitados
La programación de los tres componentes es similar. Cambios debido a los nombres de
métodos o variables. El administrador tiene el control
completo sobre todo el tráfico que pasa por la red.
![Page 38: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/38.jpg)
Prototipo de SDN basado en Switches Virtuales
Prototipo de SDN empleando switches virtuales. Switches implementados en software Open vSwitch
Se emplearon cuatro de los principales controladores: NOX, Beacon, Trema y Floodlight.
Para cada controlador se hicieron pruebas para determinar en cual de ellos es más sencillo desarrollar una aplicación NAC Python, Ruby y Java
![Page 39: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/39.jpg)
Prototipo de SDN basado en Switches Virtuales
PC 01 PC 02
SWITCH_1: 192.168.1.10
Interfaz: Virbr0
SWITCH_2: 192.168.1.12
Interfaz: Virbr0
VM_CONTROLADOR: 192.168.1.117Interfaz: Vnet0Puerto_sw: 2
VM_11: 192.168.1.1.119 Interfaz: Vnet1Puerto_sw: 3
VM_12: 192.168.1.118Interfaz: Vnet2Puerto_sw: 4
VM_21: 192.168.1.1.190 Interfaz: Vnet0Puerto_sw: 3
VM_22: 192.168.1.1.191 Interfaz: Vnet1Puerto_sw: 4
ETH0 ETH0
![Page 40: Prototipos de redes definidas por software](https://reader033.vdocumento.com/reader033/viewer/2022061517/568150ba550346895dbed543/html5/thumbnails/40.jpg)
Prototipo de SDN basado en Switches Virtuales
NAC (básico): Permite control de acceso a la red. Aplicativo cliente en cada PC.
Permitirá indicar si el PC está “saludable”. Aplicación de control
Genera las reglas en función de la información del aplicativo cliente.
Deja pasar el tráfico o no permite el acceso del PC a la red.