INF – 273 TELEMATICA
Reenvío Generalizado y SDN
Lic. Roberto Vargas Blacutt
2020
Contenido
● Estudiaremos el reenvió generalizado, donde los paquetes pueden ser
reenviados en función a otros valores de la cabecera y no solo por la
dirección de destino de los paquetes
● Esta forma mas general de reenvío es un importante concepto de las redes
definidas por software (SDN).
@Roberto Vargas B. R Generalizado 2
Introducción
● La redes actuales e Internet definen un modelo de red totalmente distribuido
○ Dispositivos autónomos comparten información entre sí para garantizar el transito de los
paquetes - Conmutación de paquetes y reenvío basado en destino
● Redes IP son complejas y presentan problemas en su administración
○ No existen mecanismos de reconfiguración automática
○ Proliferación de dispositivos intermediarios que realizan funciones de capa 3
○ NATs, Cortafuegos, Balanceadores de carga - alteran direcciones IP o reenvían trafico
○ Cada uno con su propio hardware, software e interfaz de administración !!!
● Problema para los administradores de red
@Roberto Vargas B. R Generalizado 3
Redes definidas por Software
● Enfoque que se contrapone al concepto una
de red distribuida de nodos autónomos
● Los avances de las SDN proporcionan Remote Controller
control
○ Un enfoque unificado para muchas de las plane
funciones de la capa de red y ciertas funciones data
plane
de la capa de enlace de manera elegante e CA
integrada
○ Un nuevo modelo que aboga por centralizar el
0111 1
control de la red en un único nodo de gestión -
3 2
controlador
@Roberto Vargas B. R Generalizado 4
Reenvió generalizado y SDN
● Una tabla de de tipo Correspondencia – Acción (match-plus-action)
generaliza la noción de una tabla de reenvío basada en el destino
● En SDN, el termino “conmutador de paquetes” hace referencia a todos los
dispositivos de reenvío (routers y switches)
● Cada conmutador de paquetes tiene una tabla de Flujo
● Las decisiones de renvío se toman en base a la información contenida en
esta tabla.
@Roberto Vargas B. R Generalizado 5
Tabla de Correspondencia – Acción
● Se la conoce como Tabla de Flujo
● La correspondencia puede buscarse en múltiples campos de la cabecera
asociados con distintos protocolos en diferentes capas
● La acción puede ser:
○ Reenviar el paquete en base a su dirección (tradicional)
○ Enviar el paquete a un cierto servicio (balanceo)
○ Reescribir valores de la cabecera (NAT)
○ Bloquear/eliminar el paquete (firewall)
○ Enviar el paquete a un servidor para procesamiento adicional
@Roberto Vargas B. R Generalizado 6
Protocolo OpenFlow
● Ofrece una comunicación entre el plano de
control y el plano de datos
● Permite al controlador programar los
conmutadores para conseguir un detallado
control del tráfico.
● Los conmutadores de paquetes encaminan
el tráfico gracias a la información recibida del
controlador y almacenada en sus tablas de
flujos.
@Roberto Vargas B. R Generalizado 7
Open Flow - Tabla de flujo
logically-centralized routing controller
Es calculada, instalada y actualizada por un
controlador remoto
control plane
Contenido de la tabla
data plane
• Valores de campos de cabecera local flow table
○ Con los que se buscara una correspondencia en el headers counters
paquete entrante actions
• Contadores
○ Se actualizan cuando se encuentran correspondencias
con entradas de la tabla
1
• Acciones a tomar 0100
1101
○ Eliminar, reenviar, modificar el paquete o enviarlo al 3 2
controlador
values in arriving
packet’s header
@Roberto Vargas B. R Generalizado 8
Open Flow - Tabla de Flujo
Rule Action Stats
Packet + byte counters
1. Forward packet to port(s)
2. Encapsulate and forward to controller
3. Drop packet
4. Send to normal processing pipeline
5. Modify Fields
Switch VLAN MAC MAC Eth IP IP IP TCP TCP
Port ID src dst type Src Dst Prot sport dport
Link layer Network layer Transport layer
@Roberto Vargas B. R Generalizado 9
OpenFlow: Tabla de Flujo
● La tabla de flujo define las reglas correspondencia – acción
● OpenFlow permite emparejar campos de las cabeceras capas 4, 3 y 2
● Cada entrada de la tabla tiene una lista de acciones que determina el
procesamiento que hay que aplicar a un paquete
● Ejemplo de reglas:
1. src=1.2.*.*, dest=3.4.5.* drop
2. src = *.*.*.*, dest=3.4.*.* forward(2)
3. src=10.1.2.3, dest=*.*.*.* send to controller
@Roberto Vargas B. R Generalizado 10
Reenvió basado en el destino:
Switch MAC MAC Eth VLAN IP IP IP TCP TCP
Action
Port src dst type ID Src Dst Prot sport dport
* * * * * * 51.6.0.8 * * * port6
Datagramas IP con destino a 51.6.0.8 se renvían al enlace de salida 6
Ejemplos Firewall:
Switch MAC MAC Eth VLAN IP IP IP TCP TCP
Forward
Port src dst type ID Src Dst Prot sport dport
* * * * * * * * * 22 drop
Bloquear todos los datagramas destinados a TCP puerto22
Switch MAC MAC Eth VLAN IP IP IP TCP TCP
Forward
Port src dst type ID Src Dst Prot sport dport
* * * * * 128.119.1.1
* * * * drop
Bloquear todos los datagramas enviados por el host 128.119.1.1
@Roberto Vargas B. R Generalizado 11
Ejemplo
Reenvió basado en el destino Capa 2 (switch) :
Switch MAC MAC Eth VLAN IP IP IP TCP TCP
Action
Port src dst type ID Src Dst Prot sport dport
22:A7:23:
* 11:E1:02 * * * * * * * * port3
Tramas de capa 2 de la MAC 22:A7:23:11:E1:02 se reenvían al enlace de salida 3
@Roberto Vargas B. R Generalizado 12
Ejemplo match action
IP Src = 10.3.*.* Host h6
IP Dst = 10.2.*.* forward(3)
10.3.0.6
1 s3 controller
2
3 4
Una red con 6 hosts (h1, h2, h3, h4, h5 y h6)
y 3 conmutadores (s1, s2 y s3), cada uno Host h5
10.3.0.5
con cuatro interfaces ( numeradas del al 4)
Se desea implementar que los datagramas
de los hosts h5 y h6 se reenvíen a h3 o h4 a 1 s1 1 s2
través de s1 y de ahí a s2 2 Host h4
4 2 4
Host h1 10.2.0.4
3 3
10.1.0.1
Host h2
10.1.0.2 match action
match action Host h3 ingress port = 2
10.2.0.3 forward(3)
ingress port = 1 IP Dst = 10.2.0.3
IP Src = 10.3.*.* forward(4) ingress port = 2
IP Dst = 10.2.0.4 forward(4)
IP Dst = 10.2.*.*
@Roberto Vargas B. R Generalizado 13
Trabajo en casa
Comprender el renvío generalizado y su
relación con las funciones de la capa de
red
Que debo preparar para el
siguiente salto?
• Funciones del plano de control
• Algoritmos de enrutamiento
@Roberto Vargas B. R Generalizado 14
FIN
@Roberto Vargas B. R Generalizado 15