Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
TD4 2022TD4 2022 3 El protocolo IP TD4 2022TD4 2022 El nivel de red en Internet Funciones del nivel de red: Protocolo IP • Formato de datagrama • Direccionamiento Protocolo ICMP • Manejo de errores • Señalización de routers nivel de transporte: TCP, UDP nivel de enlace nivel físico nivel de red tabla de forwarding Algoritmos de selección de rutas: Implementados en • Protocolos de ruteo (OSPF, BGP) • Controlador SDN 4 TD4 2022TD4 2022 Formato del datagrama IP ver longitud 32 bits payload (longitud variable; usualmente segmento TCP o UDP) ID - 16 bits checksum TTL dirección IP origen long. header ToS flags offset fragmento proto dirección IP destino opciones (opcional) número de versión de IP longitud del header en bytes protocolo del nivel superior (e.g., TCP o UDP) longitud del datagrama completo en bytes TTL: hops disponibles (decrementado en cada router) ▪ 20 bytes (TCP) ▪ 20 bytes (IP) ▪ = 40 bytes (+ overhead del nivel de app) overhead e.g., timestamp, registro de ruta fragmentación checksum del header longitud máxima: 64 KB típicamente ≤ 1500 bytes 5 tipo de servicio ▪ diffserv (0:5) ▪ ECN (6:7) TD4 2022TD4 2022 ▪ Dirección IP: identificador de 32 bits asociado con cada interfaz de un host o router ▪ Interfaz: conexión entre un host/router y un enlace físico • Los routers suelen tener varias • Los hosts suelen tener una o dos (e.g., Ethernet -cableada- y/o 802.11, WiFi -inalámbrica-) Direccionamiento IP 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2223.1.3.1 223.1.3.27 223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 11 notación dot-decimal: 6 TD4 2022TD4 2022 Direccionamiento IP 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2223.1.3.1 223.1.3.27 las interfaces Ethernet se conectan vía switches las interfaces WiFi se conectan vía estaciones base (access points) Por el momento no nos vamos a detener en cómo se interconectan las interfaces 7 TD4 2022TD4 2022 Subnets 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2223.1.3.1 223.1.3.27 ▪Sub-red (subnet) • Conjunto de interfaces que pueden comunicarse entre sí sin atravesar un router red con 3 subnets distintas ▪Estructura en direcciones IP • Subnet: los dispositivos en la misma subnet comparten los bits más significativos de la dirección IP • Host: los bits menos significativos remanentes 8 TD4 2022TD4 2022 Subnets 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2223.1.3.1 223.1.3.27 Definición de subnets ▪Si “desconectamos” cada interfaz de su host/router, obtenemos “islas” de redes aisladas unas de otras ▪Cada una de estas redes es una subnet máscara de red: /24 (24 bits más significativos: porción de subnet de la dirección IP) subnet 223.1.3.0/24 subnet 223.1.1.0/24 subnet 223.1.2.0/24 9 TD4 2022TD4 2022 Subnets: ejercicio ▪ ¿Cuáles son las subnets? ▪ ¿Cuáles son sus direcciones /24? 223.1.1.1 223.1.1.3 223.1.1.4 223.1.2.2 223.1.2.6 223.1.3.2223.1.3.1 223.1.3.27 223.1.1.2 223.1.7.0 223.1.7.1 223.1.8.0223.1.8.1 223.1.9.1 223.1.9.2 223.1.2.1 subnet 223.1.1.0/24 subnet 223.1.7.0/24 subnet 223.1.3.0/24 subnet 223.1.2.0/24 subnet 223.1.9.0/24 subnet 223.1.8.0/24 10 TD4 2022TD4 2022 Direccionamiento IP: CIDR CIDR: Classless Inter Domain Routing •Generalización del concepto de direccionamiento de subnets •Longitud arbitraria de la porción de subnet de la dirección IP •Formato a.b.c.d/x, donde x es el número de bits en la porción de subnet de la dirección (prefijo) 11001000 00010111 00010000 00000000 subnet host 200.23.16.0/23 11 TD4 2022TD4 2022 Obtención de direcciones IP 1. ¿Cómo hace un host para obtener una dirección IP dentro de su red? 2. ¿Cómo obtener una dirección IP para una red en Internet? Obtención de IPs dentro de una red: ▪ Configuración manual por un administrador en un archivo (e.g., /etc/network/interfaces en Ubuntu pre 20.04/Debian) ▪ DHCP (Dynamic Host Configuration Protocol) • Obtención dinámica de dirección IP desde un servidor 12 TD4 2022TD4 2022 DHCP: Dynamic Host Configuration Protocol Objetivo: permitir que los hosts consigan direcciones IP dinámicamente al “unirse” a la red ▪ “Préstamo” de direcciones (renovables) ▪ Direcciones reutilizables (sólo tomadas mientras los hosts están conectados) ▪ Soporte para usuarios móviles que entran y salen de la red Vista general del protocolo: ▪ El host hace broadcast de un mensaje DHCP discover ▪ El servidor DHCP responde con un DHCP offer ▪ El host solicita una dirección IP con un DHCP request ▪ El servidor DHCP envía la dirección con un DHCP ACK 13 TD4 2022TD4 2022 DHCP: Dynamic Host Configuration Protocol 223.1.1.1 223.1.1.2 223.1.1.3 223.1.1.4 223.1.2.9 223.1.2.2 223.1.2.1 223.1.3.2223.1.3.1 223.1.3.27 servidor DHCP 223.1.2.5 Al llegar un nuevo cliente, inicia el intercambio de mensajes para obtener una dirección IP en la red Por lo general, el servidor DHCP está embebido en el router, sirviendo a todas las subnets a las cuales se conecta el router 14 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] 15 TD4 2022TD4 2022 DHCP: Dynamic Host Configuration Protocol DHCP también permite que los hosts reciban, además de la dirección IP, ▪ La dirección del router first-hop (el default gateway) ▪ El nombre y la IP del servidor DNS ▪ La máscara de red (indicando la porción de subnet en la dirección) 16 TD4 2022TD4 2022 DHCP: encapsulamiento y demultiplexación ▪ La notebook usa DHCP para obtener una dirección IP, el default gateway y el servidor DNS router con servidor DHCP embebido ▪ El mensaje DHCP Request se encapsula en UDP; éste se encapsula en IP y este último en Ethernet ▪ El frame Ethernet se transmite a la LAN en broadcast (dirección física FF:FF:FF:FF:FF:FF) y es recibido por el router con el servidor DHCP ▪ En el router, Ethernet demultiplexa a IP, que a su vez demultiplexa a UDP, que a su vez demultiplexa a DHCP 168.1.1.1 DHCP UDP IP Eth física DHCP UDP IP Eth física 17 DHCP DHCP DHCP DHCP DHCP DHCP DHCP DHCP TD4 2022TD4 2022 DHCP: encapsulamiento y demultiplexación ▪ El servidor DHCP genera un mensaje DHCP ACK con la dirección IP asignada, la dirección del default gateway y la dirección del servidor DNS ▪ La respuesta DHCP, apropiadamente encapsulada, viaja hacia el cliente donde es demultiplexada ▪ El cliente recibe los datos solicitados y ya está en condiciones de comunicarse con hosts remotos 18 router con servidor DHCP embebido 168.1.1.1 DHCP DHCP DHCP DHCP DHCP DHCP DHCP DHCP DHCP UDP IP Eth física DHCP UDP IP Eth física TD4 2022TD4 2022 Obtenciónde direcciones de red Los bloques de direcciones pueden obtenerse a través del ISP ■ Tienen reservado un bloque más grande de direcciones Bloque del ISP 11001000 00010111 00010000 00000000 200.23.16.0/20 Bloque 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Bloque 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Bloque 2 11001000 00010111 00010100 00000000 200.23.20.0/23 ... ….. …. …. Bloque 7 11001000 00010111 00011110 00000000 200.23.30.0/23 19 El ISP puede ej. particionar su espacio de direcciones en ocho bloques: TD4 2022TD4 2022 Direccionamiento jerárquico: agregación “envíenme los paquetes cuyas direcciones comiencen con 200.23.16.0/20” 200.23.16.0/23 200.23.18.0/23 200.23.30.0/23 ISP 1 Organización 0 Organización 7 Internet Organización 1 ISP 2 200.23.20.0/23 Organización 2 ... ... Este direccionamiento jerárquico permite anunciar y manejar rutas de manera eficiente 20 “envíenme los paquetes cuyas direcciones comiencen con 199.31.0.0/16” TD4 2022TD4 2022 Direccionamiento jerárquico 200.23.16.0/23 200.23.30.0/23 200.23.20.0/23 ... ... ▪ Si e.g. la organización 1 se mueve de ISP, su espacio de direcciones no cambia: el ISP 2 anuncia también dicho bloque al exterior ▪ El mecanismo de longest prefix matching permite encaminar los paquetes 200.23.18.0/23 Organización 1 21 Organización 0 Organización 7 Organización 2 “envíenme los paquetes cuyas direcciones comiencen con 200.23.16.0/20” ISP 1 Internet ISP 2 “envíenme los paquetes cuyas direcciones comiencen con 199.31.0.0/16 o con 200.23.18.0/23” TD4 2022TD4 2022 Direccionamiento IP ¿Cómo hace un ISP para obtener un bloque de direcciones? ICANN: Internet Corporation for Assigned Names and Numbers ■ Reserva direcciones IP a través de 5 registros regionales (RRs) que a su vez reservan a registros locales (e.g. LACNIC en América Latina y Caribe) ■ Administra la zona root de DNS, incluyendo delegación de los TLDs (e.g. .com o .edu) ¿Hay suficientes direcciones IP de 32 bits? ▪ ICANN reservó a los RRs el último bloque de direcciones IPv4 en 2011 ▪ La técnica de NAT colabora para mitigar el agotamiento del espacio de direcciones IPv4 ▪ IPv6 tiene un espacio de direcciones de 128 bits 22 TD4 2022TD4 2022 23 NAT e IPv6 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) 24 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 25 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 26 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 27 4: el router inyecta el paquete en la red local y el host lo recibe TD4 2022TD4 2022 ▪ NAT tuvo sus controversias: • Los routers no deberían manipular información de niveles superiores (puertos) • El problema de la escasez de direcciones IP debería resolverse con IPv6 • Complicaciones al tener servidores detrás de un router NAT ▪ No obstante esto, NAT llegó para quedarse • Ampliamente utilizado en redes domésticas e institucionales y en redes celulares 4G/5G (CGNAT) NAT: Network Address Translation 28 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 29 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”) 30 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) 31 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 32 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 33 Ethernet conectando dosrouters 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 34 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 35 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 36
Compartir