La capa de red (Parte 1 de 3) Redes de Computadoras Introducción a la capa de red 1 Funciones de capa de red z La principal función es el enrutamiento – – z Conecta en forma lógica nodos remotos – z llevar paquetes de la fuente al destino, pasando por nodos intermedios (e.g. enrutadores). Existen diferentes algoritmos de enrutamiento. Estos no están conectados por un mismo enlace físico o de capa 2. Debe haber algún sistema de direccionamiento. Funciones de capa de red z Se transportan paquetes desde un origen hasta un destino. z Los protocolos de capa de red están en cada host y enrutador (extremos y nodos intermedios) 2 Conmutación z Conmutación de circuitos – z Conmutación de mensajes – – z hosts conectados via enlace de capa 1 o 2 sobre demanda (e.g. red telefónica) modo store and forward no hay uso paralelo de enlaces Conmutación de paquetes – – paquetes cortos de longitud variable (e.g. IP, X.25) paquetes muy cortos de tamaño fijo (e.g. ATM) Conmutación 3 Conmutación de paquetes Permite a mas usuarios usar la red Ejemplo: enlace de 1 Mb z Cada usuario – – z Conmutación de circuitos: – z 100 Kb/s cuando esta “activo” activo 10% del tiempo 10 usuarios Conmutación de paquetes: – Con 35 usuarios, probabilidad > 10 activos menor a .004 Servicio datagrama z z z z z z Paquetes independientes Dirección destino en cada paquete El enrutador envía cada paquete al siguiente enrutador basado en la dirección No hay estado por flujo (flujo = grupo de paquetes con mismas direcciones fuente y destino) Cada uno puede tomar rutas diferentes Analogía: servicio postal, entrega de paquetes 4 Servicio de circuito virtual z z z z z z z Establecimiento de conexión (y de ruta) Secuenciamiento de paquetes Dirección fuente requerida solo para la conexión Cada paquete sigue la misma ruta El switch mantiene información de estado (tabla de VCs) Facilita garantías de QoS (Frame Relay, ATM) Analogía: llamada telefónica Circuitos virtuales z La trayectoria fuente-a-destino se comporta en forma similar a un circuito telefónico – – z z cada paquete lleva identificador de VC (y no ID del host destino) cada enrutador/switch en la trayectoria mantiene un “estado” para cada conexión que pasa – z Alto desempeño Acciones de la red a lo largo de trayectoria fuente-a-destino Recordar: la conexión en capa de transporte solo involucra los extremos recursos de enlace y enrutador (ancho de banda, buffers) pueden dedicarse al VC – – para obtener desempeño tipo circuito pero… ¿qué tal del retardo de establecimiento? 5 Conmutación ¿Red datagrama o VC? Internet (datagrama) z Intercambio de datos entre computadoras – z – Sistemas extremos “inteligentes” (computadoras) – – z servicio “elástico”, no requiere tiempo estricto en entrega de datos ATM (VC) z evolucion de la telefonía z conversación humana: pueden adaptar, realizar control, recuperación de errores complejidad en los “extremos”, simple en el centro de la red Muchos tipos de enlaces – – – requerimientos de tiempo y confiabilidad estrictos se necesita servicio garantizado Sistemas extremos “tontos” z – – teléfonos, “videófonos” complejidad dentro de la red diferentes características difícil tener servicio uniforme 6 Protocolos de la pila TCP/IP Address Resolution Protocol 7 Panorama general Resolución de direcciones Problema: z z z Las máquinas A y B quieren comunicarse. Sus direcciones físicas son PA y PB. Solo conocen la dirección IP de la otra (IA e IB). ¿Cómo conocer la dirección física? 8 Resolución de direcciones z El problema es básicamente encontrar una función f eficiente: PA = f(IA) z Solución posible: mapeo directo – – Tabla relacionando PX con IX Problemas en construir y mantener la tabla. Resolución de direcciones z Otra solución es emplear un protocolo para ligar direcciones dinámicamente. z Este es el enfoque seguido por el Address Resolution Protocol (ARP). z Ver RFC 826. 9 ARP La idea es simple: z A envía un paquete a todas las estaciones pidiendo al nodo con la dirección IB responder con su dirección PB. z Todos reciben la petición pero solo B reconoce su dirección y responde. z Cuando A recibe la respuesta utiliza después PB para comunicar sus datos. ARP 10 Cache ARP z Sería muy ineficiente hacer broadcast cada vez que A quiera comunicarse con B. z La primera vez que A recibe PB la guarda en un cache local. z Antes de enviar a un nodo busca en su cache si ya tiene la dirección. Otras mejoras a ARP z Si A busca la dirección de B, es muy probable que B necesite luego comunicarse con A. z Entonces, A puede incluir PA al hacer la petición. z Cada nodo al inicializarse también difunde su dirección. 11 Encapsulación de ARP z z El mensaje ARP es encapsulado en un marco de capa 2 para poder viajar. El marco indica en uno de sus campos que carga un mensaje ARP. Mensajes ARP z z Ejemplo de mensaje ARP con hardware Ethernet. Longitud variable según el hardware utilizado. 12 Mensajes ARP z Hardware y protocolo – z HLEN y PLEN (Hardware y Protocol Length) – z Para saber el tipo de interface buscada. Para determinar las longitudes de las direcciones. Sender y Target HA (HA = Hardware Address) – Las direcciones fuente y destino. Resolución inversa z z z z z ARP permite conocer la dirección física de otras máquinas. Las máquinas determinan su dirección IP al arranque pues la pueden encontrar en disco. ¿Qué pasa cuando la máquina no tiene disco? ¿Cómo determina su propia dirección IP? Recordar que la dirección física ya la conoce pues está en la tarjeta de red. 13 Reverse ARP (RARP) z z z z z El problema de encontrar la dirección IP a partir de la física se llama resolución inversa. Para ello se utiliza el protocolo RARP. El protocolo usado y el formato de mensajes es similar a ARP. Uno o mas servidores RARP tienen las asociaciones de direcciones. Ver RFC 903 RARP 14 Algunos detalles de ARP z ¿Qué pasa si una solicitud ARP se hace para un host que no existe? – z En algunos sistemas un host envía solicitudes ARP periódicamente para todas las direcciones en el cache ARP. – z Se hacen varias solicitudes ARP a intervalos crecientes entre cada una. Eventualmente ARP se dá por vencido. Esto refresca el contenido del cache, pero introduce tráfico extra. Gratuitous ARP Requests: Un host envía una solicitud ARP para su propia dirección IP: – Útil para detectar si una dirección IP ya ha sido asignada. Vulnerabilidades de ARP 1. 2. 3. Puesto que ARP no autentifica peticiones o respuestas, éstas pueden ser falseadas. ARP es stateless: Las respuestas ARP pueden enviarse sin haber una petición ARP correspondiente. Según la especificación de ARP, un nodo que reciba un paquete ARP (solicitud o respuesta) debe actualizar su cache ARP local con la información en los campos fuente, si el nodo receptor ya tiene una entrada para la dirección IP de la fuente en su cache ARP. Explotación típica de éstas vulnerabilidades: Una solicitud o respuesta ARP falseada puede usarse para actualizar el cache ARP de un sistema remoto (ARP Poisoning) z Esto puede usarse para redirigir tráfico IP a otros hosts z 15 Internet Control Message Protocol ICMP z IP se apoya en varios otros protocolos para realizar varias funciones de enrutamiento y control: – – – funciones de control (ICMP) Señalización multicast (IGMP) Establecer tablas de enrutamiento (RIP, OSPF, BGP, PIM, …) 16 ICMP z En Internet los paquetes viajan de extremo a extremo pasando por enrutadores. z Pero pueden surgir problemas en los enrutadores o en otros nodos. z Para anunciar problemas y monitorear la red se usa el Internet Control Message Protocol (ICMP). z ICMP es un protocolo auxiliar que le brinda a IP reporte de errores y queries simples z Ver RFC 792, 1122. ICMP z Los mensajes ICMP son transportados en datagramas IP. – – El campo TOS se establece en 0 (no hay prioridad especial). El campo protocolo se establece en 1 (código de ICMP). 17 Mensajes ICMP z z Cada mensaje tiene su propio formato. Pero todos inician con tres campos comunes: – – – z Type (8 bits) – indicando el tipo de mensaje. Code (8 bits) – dando mas información sobre el mensaje. Checksum (16 bits) – para verificar errores. Se ponen datos adicionales, o 4 bytes en ceros. – Los mensajes ICMP tienen una longitud de 8 bytes Mensajes ICMP 18 Mensajes ICMP Códigos para mensaje con tipo 3 (destination unreachable) Mensajes ICMP z El comando ping utiliza los mensajes de tipo ECHO z El comando traceroute establece un TTL chico para que enrutadores en el camino respondan con un Time Exceeded 19 El Protocolo de Internet (IP) La capa de red en Internet 20 IP – Internet Protocol z Protocolo de interconexión en capa de red – z diferentes capas de enlace: Ethernet, PPP, ATM, ... Servicio de datagramas – – – – direccionamiento envío de paquetes con tablas de enrutamiento fragmentación/reensamble no hay garantías de servicio: pérdidas, desorden, mejor esfuerzo (best-effort) Encabezado IP(v4) 21 Campos encabezado IP z Versión – número de versión del protocolo – z IHL (Internet Header Length) – longitud del encabezado en palabras de 32 bits. – – z El protocolo actual tiene un 4. El valor mínimo es 5 (encabezado sin opciones). El maximo es 15 (encabezado de 60 bytes). TOS (Type of Service) – – indica otorgamiento de servicios diferenciados. Definición actual en RFC 1349. Campos encabezado IP z Longitud Total – incluyendo encabezado. – z Identificación. – z El máximo es 65,535 bytes. Usado para reensamblar fragmentos de un mismo datagrama. Flags – un par de banderas o indicadores: – – DF (Don’t Fragment) – no fragmentar el paquete. MF (More Fragments) – hay mas fragmentos; todos menos el último lo traen. 22 Campos encabezado IP z Offset del Fragmento – z Time to Live (TTL) – Tiempo de vida – – z Indicando la posición del fragmento dentro del paquete. Contador limitando el tránsito de los paquetes. Se decrementa en cada salto, máximo posible 255. Protocolo – para pasarlo a la capa 4 – El RFC 1700 indica los números de protocolos. Campos encabezado IP z Checksum del encabezado – z Direcciones fuente y destino – z Normalmente recalculado en cada salto. Indicando ambos extremos de la comunicación. Opciones – campo con longitud variable – – – Para funciones no previstas originalmente, etc. El primer byte identifica el tipo de opción. Se puede poner un relleno (padding) para hacer un múltiplo de 4 bytes. 23 Campos encabezado IP z Opciones actualmente definidas: – – – – Security – especifica que tan secreto es el paquete. Strict source routing – da la ruta completa a seguir. Loose source routing – hace que cada enrutador agregue su dirección IP. Record route – cada enrutador agrega su dirección y un timestamp. Fragmentación y Reensamble z Los enlaces de la red tienen MTU (Maximum Transfer Unit) – máximo marco posible en capa de enlace. – z diferentes tipos de enlace, diferentes MTUs datagramas IP grandes se dividen (“fragmentan”) en la red – – – un datagrama se convierte en varios datagramas “reensamblados” solo en el destino final se usan bits del encabezado IP para identicar y ordenar fragmentos relacionados 24 Fragmentación y Reensamble Direcciones IP z z Longitud de 32 bits Usualmente representación decimal – z dotted-quad decimal: cuatro decimales separados por puntos Usan un sistema jerárquico – La dirección indica la red, la subred y la dirección del nodo 25 Direcciones IP z Hay dos partes: prefijo (red) y host – z La máscara de red identifica el prefijo mediante un AND logico Ejemplo con máscara 255.255.255.0 Clases de direcciones IP z Hay tres clases de direcciones – – – z Otro par de clases poco utilizadas – – z Clase A: para redes grandes Clase B: para redes medianas Clase C: para redes pequeñas Clase D: para redes multicast Clase E: para uso experimental Método “antiguo” – direccionamiento con clases (classful) 26 Clases de direcciones IP Clases de direcciones IP z Al escribirse en notación decimal: – – – – – Clase A comienzan con un número entre 0 y 127 Clase B comienzan con un número entre 128 y 191 Clase C comienzan con un número entre 192 y 223 Clase D comienzan con un número entre 224 y 239 Clase C comienzan con un número entre 240 y 255 ¿Qué clase es la red UABC? 27 Clases de direcciones IP z z La red 127 está reservada para loopback. El espacio de direcciones casi está exhausto. Formación de subredes z Es usual tener varias redes en una entidad – – z se particiona el espacio de direcciones reflejando la estructura de la red con subredes. Se aplica una “máscara” para determinar la parte de red/subred. Máscaras básicas (sin subredes): – – – 255.0.0.0 para clase A. 255.255.0.0 para clase B. 255.255.255.0 para clase C. 28 Formación de subredes z Básicamente se toman bits de la parte local (host) para indicar una porción de subred. z Los enrutadores utilizan las máscaras para determinar la parte de red y enrutar mejor. Cada entidad decide como usar máscaras para formar sus subredes. Ver RFC 950, 1219. z z Direccionamiento sin clases: CIDR z Direccionamiento con clases: – – z uso ineficiente del espacio de direcciones, agotamiento del espacio e.g., red clase B tiene reservadas direcciones para 65K hosts, aún si solo hay 2K hosts en esa red CIDR: Classless InterDomain Routing – – porción de red de la dirección de longitud arbitraria formato: a.b.c.d/x, donde x es núm de bits en la porción de red de una dirección 29 Dirs IP: ¿cómo obtener una? z z ¿Cómo obtiene una red la parte de red de una dirección IP? Obtiene una porción del espacio de direcciones de su ISP. Direccionamiento jerárquico: agregación de rutas z El direccionamiento jerárquico permite el aviso eficiente de información de enrutamiento : 30 Enrutamiento IP z Un datagrama IP sigue una trayectoria formada por una secuencia de saltos. z Cada enrutador en el camino determina el siguiente salto z Los enrutadores pueden programarse para informar sobre cambios en la red y re-enrutar tráfico dinámicamente. Enrutamiento IP z z El enrutador consulta una tabla de enrutamiento con información que le ayuda a decidir el siguiente salto. Entrada típica en una tabla: 31 Enrutamiento IP Enrutamiento IP Otros aspectos en las tablas: z Rutas default – si ningun prefijo sirve, utilizar una ruta por omisión. z Rutas de host – especificar explícitamente la ruta a tomar para llegar a un host. 32 Enrutamiento IP Ejemplo utilizando el comando netstat Algoritmo de enrutamiento IP Enrutamiento_IP(datagrama, tabla) Extraer dirección destino ID del datagrama; Calcular dirección de red destino IN; if IN es dirección con conexión directa then enviar datagrama a través de esa dirección; else if ID aparece como ruta de host enrutar datagrama como especifica la tabla; else if IN aparece en tabla de enrutamiento enrutar datagrama como especifica la tabla; else if existe ruta default enrutar datagrama al gateway por default; else anunciar error de enrutamiento; 33