Logo Studenta

Slides TD IV - clases (24)

¡Este material tiene más páginas!

Vista previa del material en texto

TD4 2022TD4 2022
Agenda
▪ Vista general del nivel de red
• Plano de datos
• Plano de control
▪ Software Defined Networking (SDN)
2
▪ Routers
• Puertos de input y output
• Switching
▪ El Protocolo de Internet (IP)
• Datagrama
• Direccionamiento
• NAT
• IPv6
TD4 2022TD4 2022
DHCP: Dynamic Host Configuration Protocol
servidor DHCP: 
223.1.2.5
nuevo clienteDHCP discover
src : 0.0.0.0, 68 
dest.: 255.255.255.255,67
yiaddr: 0.0.0.0
transaction ID: 654
DHCP offer
src: 223.1.2.5, 67 
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 654
lifetime: 3600 secs
DHCP request
src: 0.0.0.0, 68 
dest:: 255.255.255.255, 67
yiaddrr: 223.1.2.4
transaction ID: 655
lifetime: 3600 secs
DHCP ACK
src: 223.1.2.5, 67 
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 655
lifetime: 3600 secs
Broadcast: ¿hay algún 
servidor DHCP por ahí?
Broadcast: soy un 
servidor DHCP; acá tenés 
una dirección disponible
Broadcast: OK, me gustaría 
usarla
Broadcast: OK, ya la tenés 
reservada
Los dos primeros pasos 
pueden omitirse si el cliente 
“recuerda” una dirección 
utilizada previamente y 
desea volver a usarla
[RFC 2131]
3
TD4 2022TD4 2022
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
red local 10.0.0.0/24
138.76.29.7
resto de
Internet
 
 
NAT: Network Address Translation
los datagramas con origen o destino en la 
red tienen dirección 10.0.0.0/24 como 
origen o destino (de la forma usual)
todo datagrama saliente tiene la misma 
dirección IP origen, 138.76.29.7
(se diferencian por el puerto origen)
NAT: todos los dispositivos en la red local comparten una única 
dirección IPv4 pública (i.e. visible desde el exterior)
4
TD4 2022TD4 2022
NAT: Network Address Translation
S: 10.0.0.1, 3345
D: 128.119.40.186, 80
1
10.0.0.4
138.76.29.7
1: el host 10.0.0.1 envía un 
datagrama a 128.119.40.186, 80
Tabla de traducción NAT
Dirección WAN Dirección LAN
138.76.29.7, 5001 10.0.0.1, 3345
…… ……
S: 128.119.40.186, 80 
D: 10.0.0.1, 3345 4
S: 138.76.29.7, 5001
D: 128.119.40.186, 802
2: el router NAT reemplaza la 
dirección origen 10.0.0.1, 3345 
por 138.76.29.7, 5001, actualiza 
la tabla de traducción e inyecta el 
paquete en el enlace respectivo
S: 128.119.40.186, 80 
D: 138.76.29.7, 5001 3
3: al llegar una respuesta, el 
router cambia el destino del 
paquete por 10.0.0.1, 3345
10.0.0.1
10.0.0.2
10.0.0.3
 
5
4: el router inyecta el
paquete en la red local y el host lo recibe
TD4 2022TD4 2022
▪ Todos los dispositivos en una red local tienen direcciones de 
32 bits en un espacio de direcciones privado
▪ Prefijos 10.0.0.0/8, 172.16.0.0/12 o 192.168.0.0/16
▪ Sólo pueden ser utilizadas en una red local
▪ Ventajas:
▪ Sólo una dirección IP asignada por el ISP
▪ Posibilidad de cambiar direcciones de hosts en la red sin 
notificar al mundo exterior
▪ Posibilidad de cambiar de ISP sin cambiar las direcciones 
de los dispositivos
▪ Seguridad: los dispositivos en la red no son directamente 
visibles/direccionables 
NAT: Network Address Translation
6
TD4 2022TD4 2022
 Implementación: el router NAT debe (transparentemente):
▪ Reemplazar el par (dirección IP origen, puerto origen) de cada 
datagrama saliente por el par (dirección IP pública, nuevo 
puerto)
• Los hosts remotos responden utilizando el par (dirección IP pública, 
nuevo puerto) como destino de sus segmentos
▪ Almacenar (en una tabla de traducción) los mapeos de 
(dirección IP origen, puerto origen) a (dirección IP pública, nuevo 
puerto)
▪ Hacer el reemplazo inverso en la dirección y el puerto destino de 
cada paquete entrante
NAT: Network Address Translation
7
TD4 2022TD4 2022
▪ Motivación inicial: escasez del espacio de direcciones de 32 bits 
de IPv4
▪ Otras motivaciones:
• Mejorar la velocidad de procesamiento y forwarding en routers 
(header de longitud fija de 40 bytes)
• Permitir otro tipo de manejo de “flujos” en el nivel de red
IPv6: motivación
8
TD4 2022TD4 2022
IPv6: formato del datagrama
 payload
dirección destino
(128 bits)
dirección origen
(128 bits)
longitud payload próx. hdr límite hops
etiqueta de flujopri
32 bits
priodidad entre 
datagramas de un flujo 
o para ciertas apps 
(símil ToS IPv4)
identificación de 
datagramas en el mismo 
“flujo” (concepto no muy 
bien definido)
Qué falta (respecto de IPv4): 
▪ No está el checksum (para optimizar el procesamiento en los routers)
▪ Sin fragmentación (operación costosa; sólo permitida en origen/destino)
▪ Sin opciones (disponibles como “próximo header”)
9
ver
TD4 2022TD4 2022
▪ No es posible actualizar todos los routers en simultáneo
• Miles de millones de dispositivos
Transición IPv4 → IPv6
direcciones
IPv4
header
IPv4
datagrama IPv4
datagrama IPv6
payload de IPv4 
payload de IPv6
(e.g. TCP)
direcciones
IPv6
header
IPv6
▪ Tunneling: transportar datagramas IPv6 como payload de 
datagramas IPv4
• Permite desplegar gradualmente IPv6 y continuar operando con 
routers IPv4 
• Esta técnica se usa en otros contextos (e.g. redes celulares 4G/5G)
10
TD4 2022TD4 2022
Tunneling y encapsulamiento
Ethernet conectando 
dos routers IPv6
Ethernet
A B
IPv6 IPv6
 
E F
IPv6 IPv6
 
frame Ethernet
datagrama IPv6
lo típico: datagrama como payload del frame de nivel de enlace
 
 
 A B
IPv6 IPv6/v4
 
E F
IPv6/v4 IPv6
 
red IPv4
Red IPv4 
conectando dos 
routers IPv6
11
TD4 2022TD4 2022
Tunneling y encapsulamiento
Túnel IPv4 
conectando dos 
routers IPv6
Túnel IPv4
A B
IPv6
 
E F
IPv6
 
datagrama 
IPv4
datagrama IPv6
tunneling: datagrama IPv6 como payload de un datagrama IPv4
IPv6/v4 IPv6/v4
12
Ethernet conectando 
dos routers IPv6
Ethernet
A B
IPv6 IPv6
 
E F
IPv6 IPv6
 
frame Ethernet
datagrama IPv6
lo típico: datagrama como payload del frame de nivel de enlace
TD4 2022TD4 2022
C→D
IPv6 en IPv4
flujo: X
orig: A
dest: F
orig: B
dest: E
Tunneling
vista física
IPv4 IPv4
E
IPv6/v4 IPv6
FC D
 
A B
IPv6 IPv6/v4
 
 
vista lógica Túnel IPv4
A B
IPv6 IPv6/v4
 
E F
IPv6/v4 IPv6
 
flujo: X
orig: A
dest: F
A→B
IPv6
flujo: X
orig: A
dest: F
orig: B
dest: E
B→C
IPv6 en IPv4
E→F
IPv6
flujo: X
orig: A
dest: F
flujo: X
orig: A
dest: F
orig: B
dest: E
13
D→E
IPv6 en IPv4
TD4 2022TD4 2022
▪ Google: ~40% de los clientes acceden a los servicios vía IPv6 a julio 2022 (en 
Argentina, ~15%)
Adopción de IPv6
14
https://www.google.com/intl/en/ipv6/statistics.html
TD4 2022TD4 2022
▪ El tiempo de despliegue es muy largo (+25 años y contando)
▪ Es muy complicado cambiar protocolos de nivel de red: los 
“cimientos” de Internet
▪ Es más simple implementar cambios en los protocolos de 
nivel de aplicación (e.g. WWW, redes sociales, streaming –en 
permanente evolución y desarrollo)
Adopción de IPv6
15
TD4 2022TD4 2022 16
Software Defined Networking
TD4 2022TD4 2022
Forwarding generalizado: match-plus-action
Los routers tienen una tabla de forwarding
▪ Abstracción “match-plus-action”:corresponder bits en los 
paquetes entrantes y luego tomar acciones
• Forwarding generalizado: 
• La acción puede determinarse a partir de varios campos del 
header
• Múltiples acciones posibles: descartar, copiar, modificar, 
logging, etc.
(aka: tabla de flujos)
• Destination-based forwarding: reenviar paquetes a partir de su IP 
destino
17
TD4 2022TD4 2022
▪ Flujo: definido por los campos de los headers (de los niveles de 
enlace, red y/o transporte)
▪ Forwarding generalizado: reglas de manejo paquetes
• match: patrones de valores en los campos de los headers
• actions: sobre los paquetes coincidentes –descartar (drop), reenviar, 
modificar, enviar al controlador 
• prioridad: para desambiguar entre patrones solapados
• contadores: #bytes y #paquetes
Tabla de flujos
 
 
La tabla de flujos define las 
reglas match-plus-action del 
router
tabla de flujos
match action
18
TD4 2022TD4 2022
Abstracción: tabla de flujos
 
 
tabla de flujos
match action
19
src=10.1.2.3, dest=*.*.*.* a controlador
src=1.2.*.*, dest=*.*.*.* descartar 
src = *.*.*.*, dest=3.4.*.* reenviar(2)
1
2
3
4
TD4 2022TD4 2022
OpenFlow: entradas de la tabla
Match Action Stats
1. Reenviar paquete a puerto/s
2. Descartar paquete
3. Modificar campos en headers
4. Encapsular y reenviar a controlador
Contadores (bytes/paquetes)
campos de headers disponibles:
Ingress 
Port
Src 
MAC
Dst 
MAC
Eth 
Type
VLAN
 ID
IP
ToS
IP 
Proto
IP Src IP Dst
TCP/UDP 
Src Port
VLAN
 Pri
TCP/UDP 
Dst Port
nivel de enlace nivel de red nivel de transporte
20
TD4 2022TD4 2022
OpenFlow: ejemplos
Los datagramas IP destinados a la dirección 51.6.0.8 deben ser reenviados al puerto de salida 6
Descartar todos los datagramas destinados al puerto TCP 22 (ssh)
Destination-based forwarding
* * * * * * 51.6.0.8 * * * port6
Switch
Port
MAC
src
MAC
dst
Eth
type
VLAN
ID
IP
Src
IP
Dst
IP
Prot
TCP
s-port
TCP
d-port Action
VLAN
Pri
IP
ToS
**
* * * * * * * * * *
Firewall
drop
Switch
Port
MAC
src
MAC
dst
Eth
type
VLAN
ID
IP
Src
IP
Dst
IP
Prot
TCP
s-port
TCP
d-port Action
VLAN
Pri
IP
ToS
22*
Switch
Port
MAC
src
MAC
dst
Eth
type
VLAN
ID
IP
Src
IP
Dst
IP
Prot
TCP
s-port
TCP
d-port Action
VLAN
Pri
IP
ToS
* * * * * * * * * * drop*128.119.1.1
21
Descartar todos los datagramas enviados por el host 128.119.1.1
TD4 2022TD4 2022
▪ La abstracción match+action permite unificar distintos tipos de 
dispositivos de red
Abstracción de OpenFlow
Router
•match: prefijo de la dirección 
IP destino más largo
•action: reenviar hacia un 
enlace de salida
Switch
•match: dirección destino de 
nivel de enlace
•action: reenviar o floodear
Firewall
•match: direcciones IP y 
puertos TCP/UDP
•action: permitir o denegar
NAT
• match: dirección IP y puerto
• action: reescribir dirección y 
puerto
22
TD4 2022TD4 2022
Ejercicio: match-plus-action
Host h1
10.1.0.1
Host h2
10.1.0.2
Host h4
10.2.0.4
Host h3
10.2.0.3
Host h5
10.3.0.5
s1 s2
s31
2
3
4
1
2
3
4
1
2
3
4
Host h6
10.3.0.6
controller
▪ Los datagramas de h5 y h6 
deben enviarse a h3 o h4, 
pasando primero por s1 y 
luego por s2
 
 
 
 
 
 
23
TD4 2022TD4 2022
Ejercicio: match-plus-action
IP Src = 10.3.*.*
IP Dst = 10.2.*.* forward(3)
match action
ingress port = 2
IP Dst = 10.2.0.3
ingress port = 2
IP Dst = 10.2.0.4
forward(3)
match action
forward(4)
ingress port = 1
IP Src = 10.3.*.*
IP Dst = 10.2.*.*
forward(4)
match action
Host h1
10.1.0.1
Host h2
10.1.0.2
Host h4
10.2.0.4
Host h3
10.2.0.3
Host h5
10.3.0.5
s1 s2
s31
2
3
4
1
2
3
4
1
2
3
4
Host h6
10.3.0.6
controller
 
 
 
 
 
 
▪ Los datagramas de h5 y h6 
deben enviarse a h3 o h4, 
pasando primero por s1 y 
luego por s2
24

Continuar navegando

Contenido elegido para ti

Otros materiales