Descarga la aplicación para disfrutar aún más
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
Compartir