Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Software (SDN)
Componentes
Switches de
redes
Custom
Silicon
(ASIC)
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
Source: http://www2.technologyreview.com/news/412194/tr10-software-defined-networking/
Redes Definidas por Software (SDN)
Plano logicamente centralizado
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
Flexibilidad y Programabilidad en la Red
(SDN & NFV)
Source: Porqué los Tier-1 están adoptando las SDN y nFV?, whitestack
Certificaciones ONF: SDN/Openflow
Agenda
- Estándares abiertos
(openflow)
- APIs y SDKs
- Método de despliegue
para virtualización de
redes
Phyton
Java Java
Phyton C/Ruby
Controladores SDN (Open Source y
Vendors)
https://www.sdxcentral.com/sdn/definitions/sdn-controllers/sdn-controllers-compre
hensive-list/
https://www.sdxcentral.com/sdn/definitions/sdn-controllers/open-source-sdn-contr
ollers/
Open DayLight (Lithium)
Lista de Proyectos en Open DayLight
Open DayLight (Lithium)
➢ Java multiplataforma
➢ Interfaces Java: escucha eventos
(listening), especificaciones y forma
patrones
➢ Maven: construye sistemas para Java.
➢ OSGi: Permite cargar bundles
dinamicamente, registrar dependencias
y servicios exportados e intercambiar
información entre bundles.
➢ Karaf: Ligero runtime para cargar
modules/bundles. Basado en OSGi.
Agenda
Entrar:
a) http://<IP>:8181/index.html
p1- ¿Expliqué que cambios sucede cuando haces Ping entre H1 y H2?, y ¿Qué
feature permite dicha visualización?
b) http://<IP>:8181/restconf/operational/network-topology:network-topology/
c) http://<IP>:8181/apidoc/explorer/index.html
Components:
Provides interface for
control and state and
generates events
Communicates using
message passing
Libraries:
Functions called by
components
Ex: OF-Config, Netflow,
sFlow,
Netconf, OVSDB
Controlador Ryu
cd /home/ubuntu/ryu
./bin/ryu-manager --verbose ryu/app/simple_switch_13.py
● 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
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
Flow Table
Lookup and forwarding
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
Acciones
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
Tipos de Mensajes
Controller-to-Switch Controller
Symmetric uest
Req
Enviado sin solicitación Echo
OpenFlow
Controlador OpenFlow
Éste es en donde la inteligencia de
la red red es localizada. Switches
puro Openflow sin un controlador
son switches tontos.
Oh God! What
I’m gonna do?
OpenFlow
Controlador OpenFlow
Éste es en donde la inteligencia de
I’m here for you! Take
la red red es localizada. Switches the power of the
puro Openflow sin un controlador Learning Switch!
OpenFlow
OpenFlow Channel
THE almighty
OpenFlow Controller
Principales diseños de un
controlador
Que se espera de los controladores?
Que sean capaces de ejecutar y detener aplicaciones
durante el tiempo de ejecución del controlador
Reactive
Los flujos que no hacen “match” son enviados al controlador,
que instala los flujos basados sobre los campos del paquete. El
paquete es enviado de vuelta al switch para su debido
procesamiento.
Application Example: Learning Switch
Arquitectura en Controladores
Centralized Distributed
Open SDN Migration Use Cases
Casos de Uso (Open Source)
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)
Agenda
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 con switch “ovsk”
El controlador de referencia local (ref) usa OpenFlow 1.0 por defecto. Para
usar OpenFlow 1.3, es necesario indicarlo con el siguiente parámetro:
“protocols=OpenFlow13”. For example:
$ 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 …..(x1)
Adicionar flujos
$ mininet> sh dpctl unix:/tmp/s1 flow-mod cmd=add,table=0 in_port=1
apply:output=2
$ mininet> sh dpctl unix:/tmp/s1 flow-mod cmd=add,table=0 in_port=2
apply:output=1
$ mininet> iperf h1 h2
Adicionando un Bridge
curl -u admin:admin -H 'Content-Type: application/json' -X POST
http://IP:8080/controller/nb/v2/networkconfig/bridgedomain/bridge/OVS/HOST1/br1
Agenda
feature:install sdnhub-tutorial-learning-switch
Configuración del Karaf (No haga esto por
ahora!)
Topologia basada en Mininet
Learning-Switch
Ejercicio 1: Configurando Learning-Switch
El objetivo de éste ejercicio es convertir el “Hub Learning Switch” a un “Switch
de aprendizaje de MACs” que programa flujos.
vim $learn/TutorialL2Forwarding.java
Poner atención en las lineas #79 y #143. En la línea #79 se puede notar que la
función por defecto del código esta en modo “hub”. Esto significa que nuestro
programa learning-switch actuaría como Hub, por tanto el Ping entre Hosts
tendría un RTT alto.
Karaf Parameters:
feature:install odl-restconf-all
2. Iniciamos mininet
$ sudo mn --topo single,3 --mac --switch ovsk,protocols=OpenFlow13
--controller remote
3. En la Capa SDN
Fuente:
http://www.networkworld.com/article/2840273/sdn/sdn-security-attack-vectors-and-sdn-hardening.html
Agenda
Source: Paper AuthFlow Authentication and Access Control Mechanism for Software Defined Networking
PUCPLight: An SDN/OpenFlow Controller
for an Academic Campus Network
Testing y Validación
1. Mejor explotación de la
capacida sobrante
2. Mejor escalabilidad
Mininet-Wifi
Mininet-WiFi es un Fork de Mininet (http://mininet.org/) y que permite el uso de
Access Points y estaciones WiFi al mismo tiempo. Mininet-WiFi solamente
adiciona características WiFi para que puedas trabajar con Mininet y estaciones
base
Preguntas?