Sistemas de Transportes de Datos (STD) Tema II: IP (Entrega 2) ____________________________________ Resolución de direcciones (ARP) • Distinguir entre dirección IP y dirección física en la red. • Cuando un host debe enviar un datagrama a la red debe: – Determinar si el host destinatario está en la misma red o no, comparando (utilizando la máscara de red) los bits de los id de red y de subred con los de su propia dirección IP. • Si coinciden están en la misma red física. El primer destinatario del datagrama será el destinatario final. • Si no coinciden, están en redes físicas distintas. El primer destinatario será un ROUTER que se encarge de reenviarlo hacia otra red, acercándolo hacia su red destino. ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ _____________________________ – Determinar la dirección física del primer destinatario del datagrama. Y ello porque el datagrama tiene que encapsularse como campo de datos de una trama propia de la red física, y en esa trama aparece la dirección física de la máquina (host o router) destinataria de esa trama. Departamento Arquitectura Computadores J.C. Cruellas Grupo de Aplicaciones Telemáticas U PC ____________________________________ Resolución de direcciones (ARP) • Cada red tiene un sistema de direccionamiento propio. • No es viable el mantenimiento de tablas con todas las direcciones IP / direcciones físicas en cada host y router conectados a una red gestionadas manualmente por el administrador de dichas máquinas. • La solución pasa por habilitar un mecanismo que permita a un host conocer la @física correspondiente a una @IP en el momento en que lo necesite, por ejemplo lanzando una pregunta a la red. Este mecanismo puede complementarse con el mantenimiento automatizado de una tabla de correspondencia @IP / @física. Departamento Arquitectura Computadores J.C. Cruellas ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ _____________________________ Grupo de Aplicaciones Telemáticas U PC ____________________________________ Resolución de direcciones (ARP) ____________________________________ ____________________________________ • Solución: Protocolo ARP (Address Resolution Protocol). • Complemento: Protocolo RARP (Reverse Address Resolution Protocol). • Un protocolo por cada tipo de red (por cada tipo de trama de red y formato de @Física). ARP para Ethernet: RFC 826. Departamento Arquitectura Computadores J.C. Cruellas ____________________________________ ____________________________________ ____________________________________ _____________________________ Grupo de Aplicaciones Telemáticas U PC Juan Carlos Cruellas Ibarz. Curso 2000/2001. Q1 1 Sistemas de Transportes de Datos (STD) Tema II: IP (Entrega 2) ____________________________________ ARP. Situaciones posibles • Tres situaciones: – 1. Host remitente y host destinatario en la misma red física. – 2. Host remitente y host destinatario en diferentes redes físicas que tienen diferentes direcciones IP de red. – 3. Casos algo especiales para Proxy ARP. Hay situaciones en las que el host destinatario tiene una @IP que hace pensar que está conectado a la misma LAN que el remitente, PERO NO ES ASI. En estos casos, el router contesta las peticiones de ARP como si fuera el host destinatario. Casos: • 3.1 Host remitente y host destinatario en diferentes redes físicas que, sin embargo, tienen iguales direcciones de red IP. • 3.2 Host remitente en una LAN y host destinatario en el otro extremo de un enlace punto a punto que lo conecta al router que sirve a la LAN. Departamento Arquitectura Computadores J.C. Cruellas ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ _____________________________ Grupo de Aplicaciones Telemáticas U PC ARP: remitente y destinatario están en la misma red física 0. Cada máquina tiene su @IP dest final y @Física son direcciones de LA MISMA MÁQUINA @IP y @Física. 1. Host 1: enviar datagrama Datagrama IP a @IP 143.250.1.3: ¿@Fis? 8:0:20:3:f6:43 @IP dest: 143.250.1.3 DATOS 2. Host 1: Pregunta a todos: Trama Ethernet 8:0:20:3:f6:43 Datagrama 4 A todos | 143.250.1.3 | @Fis? 2 @IP: 143.250.1.2 @Física: 8:0:20:3:f6:41 ¿quién sabe cual es la @Fis de la @IP 143.250.1.3? A/De Internet 3. Host 3 detecta que esa @IP:143.250.1.1 @Física: 8:0:20:3:f6:44 es su @IP y responde al Host 1 con su @Fis y respon 8:0:20:3:f6:41| 143.250.1.3 | 8:0:20:3:f6:43 de 3 4. Host 1 puede enviarle una trama de red con el datagrama en su campo de datos y la @Física (y aña de entrada a tabla) @IP:143.250.1.4 @Física: 8:0:20:3:f6:42 host 1 @IP:143.250.1.3 @Física: 8:0:20:3:f6:43 host 2 Departamento Arquitectura Computadores host 3 J.C. Cruellas ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ _____________________________ 5. Si hay más datagramas para Host 3, puede usar la tabla Grupo de Aplicaciones Telemáticas U PC ARP : remitente y destinatario están en la misma red física • La @IP del destino final SE MANTIENE EN EL DATAGRAMA. • Si el destinatario final ESTA en la red: – La trama Ethernet contiene como @Física destinataria la del host destinatario. – El datagrama encapsulado en dicha trama contiene como @IP del destinatario la @IP del host destinatario. Datagrama IP 8:0:20:3:f6:43 ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ _____________________________ @IP dest: 143.250.1.3 Cabecera trama – Destinatario final de datagrama: host 3 (@Física: 8:0:20:3:f6:43 / @IP : 143.250.1.3). – Destinatario de trama Ethernet: host3 (@ Física : 8:0:20:3:f6:43 / @IP : 143.250.1.3). – @Red destinatario de trama = @ Física correspondiente a la @IP del host destinatario del datagrama encapsulado Departamento Arquitectura Computadores J.C. Cruellas Grupo de Aplicaciones Telemáticas U PC Juan Carlos Cruellas Ibarz. Curso 2000/2001. Q1 2 Sistemas de Transportes de Datos (STD) Tema II: IP (Entrega 2) ARP: remitente y destino en diferentes redes con diferentes @IP de red. 0. Cada máquina tiene su @IP y @Física. 1. Host 1: enviar datagrama a @IP 148.250.2.3: a través del router (@IP 143.250.1.1) 2. Host 1: Pregunta a todos: ¿quién sabe la @Red de la @IP 143.250.1.1(router)? @IP y @Física son direcciones de MÁQUINAS DISTINTAS 8:0:20:3:f6:44 @IP dest: 148.250.2.3 DATOS Trama Ethernet A/De Internet 8:0:20:3:f6:44 Datagrama @IP:143.250.1.1 @Física: 8:0:20:3:f6:44 3. Router detecta que esa 4 es su @IP y responde al 8:0:20:3:f6:41 | 143.250.1.1 | 8:0:20:3:f6:44 Host 1 con su @Fis y responA todos | 141.250.1.1 | @Fis? 3 de. 2 4. Host 1 puede enviarle una trama de red con el datagrama en su campo de datos y la @Fis 5. Si hay más datagramas @IP: 143.250.1.2 @IP:143.250.1.4 @IP:143.250.1.3 @Física: 8:0:20:3:f6:41 @Física: 8:0:20:3:f6:42 @Física: 8:0:20:3:f6:43 para el router, puede usar la tabla. host 1 host 2 host 3 Departamento Arquitectura Computadores J.C. Cruellas ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ _____________________________ Grupo de Aplicaciones Telemáticas U PC ARP: remitente y destino en diferentes redes con diferentes @IP de red. • Si el destinatario final NO ESTA en la red: – La trama Ethernet contiene como @ Física destinataria la del ROUTER encargado de encaminar el datagrama hacia fuera. – El datagrama encapsulado en la trama NO CONTIENE la @IP del ROUTER, SINO la @IP del host destinatario final como @IP del destinatario de dicho datagrama. Datagrama IP 8:0:20:3:f6:44 ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ _____________________________ @IP dest: 148.250.2.3 Cabecera trama – Destinatario final de datagrama: host en otra red (@IP: 148.250.2.3). – Destinatario de la trama Ethernet: router (@IP: 143.250.1.1, @ Física : 8:0:20:3:f6:44). – @ Física destinatario de trama = @Física de router (8:0:20:3:f6:44) – @IP destinatario final de datagrama encapsulado = 148.250.2.3 (NO @IP de router -destinatario de trama Ethernet). Departamento Arquitectura Computadores J.C. Cruellas Grupo de Aplicaciones Telemáticas U PC ____________________________________ Situaciones de actuación del Proxy ARP ____________________________________ 3.1. Dos redes físicas diferentes con direcciones IP de red idénticas (cada host tiene su @IP) ____________________________________ @Red: 143.250.1.0 @IP: 143.250.1.1 LAN @IP: 143.250.1.22 FDDI @Red: 143.250.1.0 ____________________________________ ____________________________________ ____________________________________ @IP: 143.250.1.11 @IP: 143.250.1.2 @IP: 143.250.1.12 _____________________________ @IP: 143.250.1.10 3.2. Host “multihomed” (con dos @IP).conectado directamente a una LAN y, a través de una línea punto a punto, al router de otra LAN. Host “multihomed” @Red: 148.250.2.0 @Red: 143.250.1.0 LAN @IP: 143.250.1.11 FDDI @IP: 148.250.2.2 Departamento Arquitectura Computadores J.C. Cruellas Grupo de Aplicaciones Telemáticas U PC Juan Carlos Cruellas Ibarz. Curso 2000/2001. Q1 3 Sistemas de Transportes de Datos (STD) Tema II: IP (Entrega 2) Proxy ARP: dos redes físicas diferentes con la misma @IP de red @Red: 143.250.1.0 @IP: 143.250.1.1 @Red: 143.250.1.0 LAN FDDI Host 1 Host 2 @IP: 143.250.1.2 @Física: 8:0:20:3:f6:41 @IP: 143.250.1.12 1. Host 1 pregunta por @Fis correspondiente a 143.250.1.12 Contenidos de sin saber que el host 2 está en trama (datagrama, ARP) otra red física! Cabecera Ethernet con @Fis de remitente y destinatario 1 Host 1: ARP Req 0. Host 1: enviar datagrama a @IP 143.250.1.12. NO esta en la misma red física, pero ambas tienen la misma @IP de red. REMITENTE NO sabe que deberá pasar por el router De Host 1 a Todos 141.250.1.12 // @Fis? 2 Router ARP Ans 3 De Host 1 a Router Host 1: Datagrama De router a Host 1 141.250.1.12 // @Fis Router Departamento Arquitectura Computadores 141.250.1.12 // datos ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ _____________________________ 2. El router se da cuenta de que el host 2 está en la otra red física y contesta al ARP Req con SU PROPIA @Fis COMO SI FUERA EL HOST 2!. Host 1 cree que le ha contestado el host 2 4. Router encamina 3. Host 1 envía a @F de router datagrama a Host 2. pensando que envía a Host 2 J.C. Cruellas Grupo de Aplicaciones Telemáticas U PC ____________________________________ Proxy ARP: host “multihomed” @Red: 143.250.1.0 0. Host 1: enviar datagrama a @IP 143.250.1.11 (host 2). Para llegar a él debe pasarse por un enlace punto a punto. REMITENTE NO sabe que deberá pasar por el router Host “multihomed” @IP: 143.250.1.11 Host 2 FDDI Host 1 @IP: 148.250.2.2 @Red: 148.250.2.0 1. Host 1 pregunta por @Fis correspondiente a 143.250.1.11 Contenidos de Cabecera Ethernet con @Fis sin saber que el host 2 está en trama (datagrama, ARP) de remitente y destinatario un extremo de un enlace p. a p.! 2. El router se da cuenta de que 1 Host 1: De Host 1 a Todos 141.250.1.11 // @Fis? el host 2 está en el otro extremo ARP Req del enlace y contesta con SU Router PROPIA @Fis COMO 2 De router a Host 1 141.250.1.11 // @Fis Router ARP Ans SI FUERA EL HOST 2!. Host 1 cree que le ha contestado el 3 Host 1: De Host 1 a Router 141.250.1.11 // datos host 2 Datagrama 4. Router envía 3. Host 1 envía a @F de router datagrama a Host 2. pensando que envía a Host 2 Departamento Arquitectura Computadores J.C. Cruellas ____________________________________ ____________________________________ ____________________________________ ____________________________________ ____________________________________ _____________________________ Grupo de Aplicaciones Telemáticas U PC ____________________________________ ARP: ACTUACIÓN DE PROTOCOLOS Nombre host 1 resolver % ftp sert.ac.upc.es 1. Cliente FTP invoca a función gethostbyname() para obtener su @IP FTP 2 Dirección IP TCP 3 IP 5 ARP Driver 6 Driver 7 ARP 3. TCP pasa segmento a IP ____________________________________ ____________________________________ ____________________________________ ____________________________________ 4. IP pasa datagrama al driver 5. Driver solicita a ARP la @Fis 4 8 Driver ARP 2. FTP pide a TCP establecer una conexión y le pasa la @IP ____________________________________ 9 _____________________________ 6. ARP envía a la red ARP-Req 7. ARP de host destino detecta petición y contesta con ARP-Reply añadiendo su @Física 8. ARP de remitente entrega @Fis al driver 9. Driver envía trama con datagrama a la red IP Departamento Arquitectura Computadores J.C. Cruellas Grupo de Aplicaciones Telemáticas U PC Juan Carlos Cruellas Ibarz. Curso 2000/2001. Q1 4 Sistemas de Transportes de Datos (STD) Tema II: IP (Entrega 2) ____________________________________ ARP: Paquetes ____________________________________ • ARP define un formato de paquete para insertar en el campo de datos de las tramas de las redes de area local (Ethernet en el laboratorio). ____________________________________ ____________________________________ ____________________________________ ____________________________________ • ARP define dos tipos de paquete: _____________________________ – ARP-Request: un host lanza a TODOS los conectados a la red la pregunta: ¿cuál es la dirección física de la máquina que tiene la dirección IP que aparece en el paquete que os envío?. – ARP-Reply: la máquina (host o router) cuya dirección IP es la que aparecía en el ARP-Request contesta: yo tengo la dirección IP por la que preguntabas y mi dirección física es la que te indico en el paquete. Departamento Arquitectura Computadores J.C. Cruellas Grupo de Aplicaciones Telemáticas U PC ____________________________________ ARP: Paquetes ____________________________________ ____________________________________ Formato de paquete para trama Ethernet 0 2 4(bytes) Cabecera Trama 1 Paquete ARP 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | | | | | | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ @Fis. destino Operación: Protocolo IP: 0x800 @Fis. fuente Tipo de trama ARQ-Req ARQ-Rep: 0x806 Tipo @Fisica Ethernet: 1 @IP dest ARP-Req (1) ARP-Rep (2) @Fis dest Longitud @lógica (IP) Longitud @Física ____________________________________ ____________________________________ ____________________________________ _____________________________ @IP fuente @Fis fuente +------------+------------+----+----+----+--+--+----+------------+--------+------------+--------+ |FFFFFFFFFFFF|08002003F641|0806|0001|0800|08|06|0001|08002003F641|8FFA0102|XXXXXXXXXXXX|8FFA0103| +------------+------------+----+----+----+--+--+----+------------+--------+------------+--------+ ARP-Req +------------+------------+----+----+----+--+--+----+------------+--------+------------+--------+ |08002003F641| 08002003F643|0806|0001|0800|08|06|0002|08002003F643| 8FFA0103| 08002003F641|8FFA0102 | +------------+------------+----+----+----+--+--+----+------------+--------+------------+--------+ Dirección Ethernet preguntada Departamento Arquitectura Computadores J.C. Cruellas ARP-Rep Grupo de Aplicaciones Telemáticas U PC ____________________________________ ARP: cache de direcciones ____________________________________ ____________________________________ • Si el hostid no es correcto, se envía varias veces un ARP-Req, y al no obtener respuesta, se abandona. • El módulo de resolución de direcciones gestiona una TABLA con tripletas <protocolo,@Fis,@lógica>, de forma que cuando a una máquina llega una trama con un paquete ARP: – Si el módulo acepta direcciones para el protocolo indicado – Si la @lógica de la máquina = @lógica destinatario ____________________________________ ____________________________________ ____________________________________ _____________________________ • Añade tripleta <protocolo,@Fis rem.,@logica rem.> a la tabla o la sustituye si ya estaba. • Si la operación es un ARP-Req, genera una trama ARP-Rep convirtiendo las @Fis y @logica del remitente del ARP-Req en las correspondientes al destinatario del ARP-Rep, y poniendo como @Fis y @lógica del remitente las suyas propias. Departamento Arquitectura Computadores J.C. Cruellas Grupo de Aplicaciones Telemáticas U PC Juan Carlos Cruellas Ibarz. Curso 2000/2001. Q1 5 Sistemas de Transportes de Datos (STD) Tema II: IP (Entrega 2) ____________________________________ “Gratuitous” ARP ____________________________________ ____________________________________ • Un host puede lanzar a la red un ARP-Req preguntando por la @Fisica correspondiente a su propia @IP (para la que NO espera respuesta) por dos motivos: – Para comprobar que NO se ha asignado la misma @IP a dos máquinas distintas (si es así, el originador del ARP-Req recibiría un ARP-Rep y aparecería un mensaje de error). – Para actualizar las caches ARP del resto de las máquinas. Útil si la máquina en cuestión se ha venido abajo antes y se le ha cambiado la tarjeta de red (lo que implica que ahora tiene una @Física diferente a la anterior). Departamento Arquitectura Computadores J.C. Cruellas ____________________________________ ____________________________________ ____________________________________ _____________________________ Grupo de Aplicaciones Telemáticas U PC ____________________________________ ARP en entornos SIN “broadcast” ____________________________________ ____________________________________ • En Ethernet, el host remitente envía una trama a TODOS los hosts y routers de la red (broadcast). ¿Qué pasa en redes que NO permiten broadcast conmutación de circuitos-?. • ATM: conmutación de circuitos: los hosts están conectados a un conmutador. • Solución: ____________________________________ ____________________________________ ____________________________________ _____________________________ – Poner en pie un SERVICIO CENTRAL de resolución de direcciones IP. Una máquina actúa como servidor ATMARP. – Cuando se da de alta un nuevo host, notifica su @IP y su @Física al servidor. – El servidor mantiene una tabla de correspondencias. Departamento Arquitectura Computadores J.C. Cruellas Grupo de Aplicaciones Telemáticas U PC ____________________________________ ARP en entornos SIN “broadcast” ____________________________________ ____________________________________ – Cuando un host desea enviar un datagrama a otro, se envía la pregunta AL SERVIDOR ATMARP. – El servidor contesta con la @Física correspondiente. – El remitente envía entonces el datagrama al destinatario. • RFC 1577: “Classical IP over ATM” Departamento Arquitectura Computadores J.C. Cruellas ____________________________________ ____________________________________ ____________________________________ _____________________________ Grupo de Aplicaciones Telemáticas U PC Juan Carlos Cruellas Ibarz. Curso 2000/2001. Q1 6 Sistemas de Transportes de Datos (STD) Juan Carlos Cruellas Ibarz. Curso 2000/2001. Q1 Tema II: IP (Entrega 2) 7