presentacincomsoc-170629122341
presentacincomsoc-170629122341
presentacincomsoc-170629122341
Componentes
Switches de
redes
Custom
Silicon
Estado de
Estado enlace configuración estática
distribuido
Adapted from: Transforming the Network with OpenSDN by Big Switch Network
Camino a la Evolución
Existentes Nuevas
- CLIs - APIs
- Código cerrado - Código abierto
- Proporcionado por el - Proporcionado por el
proveedor cliente
- Aplicaciones conocidas - Funciones de Redes
Virtuales (NFV)
- Cambios en los
patrones de tráfico.
- El consumismo de IT
- El aumento de los
servicios en la nube
Plano de Datos:
Streaming de paquetes
Plano de Control:
Algoritmos Distribuidos
Plano de Gestión:
Escala de tiempo
Tonto &
Rápido
Agilidad y Flexibilidad
Centralmente gestionado
Estándares abiertos y
neutral al vendor
Directamente Programable
Source: https://www.opennetworking.com
Redes Definidas por Software (SDN)
Nuevas habilidades y
oportunidades
Herramientas
sofisticadas
Reduce CapEx/OpEx
Redes Definidas por Software (SDN)
Redes Definidas por Software (SDN)
- Ahorro en espacio y
energía
- Asignación flexible de
recursos
- Multiplicidad de usuarios
- Mayor rentabilidad
Source: https://www.opennetworking.com , Network Function Virtualization: Perspectivas, Realidades e Desafios
Open Networking
Source: Porqué los Tier-1 están adoptando las SDN y nFV?, whitestack
Certificaciones ONF: SDN/Openflow
SDN vs NFV
Flexibilidad y Programabilidad en la Red
(SDN & NFV)
- Estándard abiertos
- Software de código
abierto
- APIs and SDKs
- Hardware abierto
Modelo: Hybrid SDN
- Método de despliegue
para virtualización de
redes
- Ejecutado sobre una
red separada
logicamente
- Big Switch Network y
Vmware usan overlay
Protocolo OpenFlow y su Evolución
Historia de Openflow, ACM SIGCOMM2008
● Openflow se originó en
la Univ. de Stanford en
2008.
Source: https://www.sdxcentral.com/sdn/definitions/what-is-openflow/
A Quick Jump Into SDN
Definición según la ONF:
SDN no es OpenFlow
pero ...
OpenFlow si es SDN
Openflow y SDN
Beneficios de
Openflow
- Programabilidad
- Inteligencia
centralizada
- Abstracción
Interface Programable
Permite el acceso directo y manipulación del
plano de forwarding de los dispositivos de redes
tales como switches y routers, ambos físicos o
virtuales (basado en hypervisor).
Las primitivas básicas que pueden ser usadas
por una app. de software externa para
programar el plano de forwarding puede ser
comparada al conjunto de intrucción de un
CPU.
Versions OpenFlow
Version Release
Diferentes Capacidades
OpenFlow 1.3 tiene más características y cubre más aspectos que
faltan en OpenFlow 1.0
->Multiple Tables, Groups, Rate Limiting, Controller Role
OpenFlow Channel
Comunicación entre el SW y el
controlador
Group Table
Opciones adicionales para reenviar
paquetes Disponible desde OpenFlow 1.1
Meter Table
Mecanismo simple QoS.
Disponible desde OpenFlow 1.3
Tabla de Flujos
Contiene entrada de flujo
OpenFlow 1.0 Flow entry
Apply-Actions
Clear-Actions
Write-Actions
Write-Metadata
Goto-Table
OpenFlow 1.0 vs OpenFlow 1.3
Actions
OpenFlow 1.0 OpenFlow 1.3
Output Output
Drop Set-Queue
Enqueue Change-TTL
Tabla: Group
Disponible desde OpenFlow 1.1
Switch Controller
Hello Message
Solves the Hello. If
Solves the OpenFlow
the version is not
version
supported sends an
Error message
Features Request
Features Reply
OpenFlow Connection
Established
Controlador OpenFlow
OpenFlow
Controlador OpenFlow
Oh God! What
I’m gonna do?
OpenFlow
Controlador OpenFlow
OpenFlow
OpenFlow Channel
THE almighty
OpenFlow Controller
Network OS
El controlador puede ser visto como un sistema operativo de red
en donde las aplicaciones pueden ser construidas sobre el TOP
de éste sistema operativo.
Proactive vs Reactive Flows
Proactive
El controlador instala los flujos antes que el tráfico de
paquetes llegue al switch. Éste modelo es usado
cuando nosotros ya sabemos el tráfico que queremos
manejar.
Ejemplo de aplicación: Packet Monitor
Reactive
Los flujos que no se encuentran en la tabla de entrada de
flujos del switch son enviados al controlador, que instala
estos flujos basados sobre los campos del paquete. El
paquete es luego enviado nuevamente al switch para su
debido procesamiento.
Ejemplo de aplicación: Learning Switch
Arquitectura de Controladores
Centralized Distributed
Popular Open Source controllers
Phyton
Java Java
Phyton C/Ruby
Problematica de OpenFlow
Configuración Run-Time
Capa Independiente del Protocolo
Lo nuevo: Programación en Plano
de Datos (P4)
Lo nuevo: Programación en Plano
de Datos (P4)
Open SDN Migration Use Cases
Casos de Uso (Open Source)
Ofsoftswitch13
CPqD y Ericsson OpenFlow 1.3 software switch, basado sobre el switch de
referencia de Stanford
Ryu controller
Ryu y OpenDayLight son uno de nuestros controladores elegidos
debido a su soporte a OpenFlow 1.0 y OpenFlow 1.3
Mininet
Mininet iniciará casi todo lo que necesitas. Mininet emularía
una completa red de hosts, enlaces, y switches sobre una
simple maquina. Para crear un ejemplo de dos hosts, una red
con un switch, solo sería ejecutar: ‘sudo mn’ .
Eth0 Eth1
Host H1 Host H2
Mininet
El controlador de referencia local (ref) usa OpenFlow 1.0 por
defecto. Para usar OpenFlow 1.3, indicar el parametro
“protocols=OpenFlow13”. Por ejemplo:
$ sudo mn --mac --switch ovsk,protocols=OpenFlow13 --controller ref
mininet> dpctl show -O OpenFlow13
mininet> dpctl dump-flows -O OpenFlow13
mininet> h1 ping -c 3 h2
Switch Description
mininet> sh ovs-ofctl dump-desc s1 -O OpenFlow13
Add Flow
mininet> sh ovs-ofctl -O OpenFlow13 add-flow s1
priority=100,in_port=1,actions=output:2
Port statistics
mininet> sh ovs-ofctl dump-ports s1 -O OpenFlow13
Dpctl con switch “user”
El switch software OpenFlow 1.3 tiene una similar herramienta
al ovs-ofctl: “sudo mn --switch user --controller ref”
Adicionar flujos
$ sh dpctl unix:/tmp/s1 flow-mod cmd=add,table=0 in_port=1 apply:output=2
$ sh dpctl unix:/tmp/s1 flow-mod cmd=add,table=0 in_port=2 apply:output=1
cd ~/distribution-karaf-0.4.4-Beryllium-SR4
sudo ./bin/karaf
cd ~/ryu
sudo ./bin/ryu-manager --verbose ryu/app/simple_switch_13.py
Controlador Ryu
Components:
Proporciona interface para
control y estado y genera
eventos.
Libraries:
Funciones llamadas por los
componentes:
Ex: OF-Config, Netflow,
sFlow,
Netconf, OVSDB
Controlador Open DayLight
Ryu Controller con OpenFlow 1.3
cd ~/distribution-karaf-0.4.4-Beryllium-SR4
sudo ./bin/karaf