Protocolo ARP Address Resolution Protocol 1
Problema Ambiente: una LAN La máquina A (con una cierta IP) quiere enviar un paquete IP a la máquina B de su misma LAN (de la cual conoce su IP) Tiene que armar una trama MAC, por ejemplo Ethernet para lo que necesita la MAC de origen y la MAC de destino La MAC de origen es la propia de A Y la MAC de destino???? 2
Posibles soluciones Tener una tabla de correspondencia entre direcciones IP y direcciones MAC Para cada máquina y en cada máquina!! Problema de administración Usar algún tipo de servicio centralizado que permita averiguar la correspondencia También problema de administración Las MAC están normalmente asociadas a la tarjeta de red de la máquina Problema si se cambia la tarjeta de red 3
Address Resolution Protocol Especificado en la RFC 826 Resuelve el problema de forma automática de modo que no requiera intervención de un usuario o administrador 4
ARP: Funcionamiento básico La máquina 1 con dirección de red IP1 desea enviar un paquete a la máquina 3 con dirección de red IP3 Para eso consulta su tabla de rutas y detecta que la dirección IP3 se encuentra dentro de su propio rango de direcciones y por tanto directamente conectada La máquina 1 arma una trama con un mensaje de protocolo ARP: Dirección MAC origen la suya propia (MAC origen = E1) Dirección MAC destino la dirección de difusión (MAC destino = FF:FF:FF:FF:FF:FF) En el contenido de la consulta de ARP se especifica la pregunta: " Quién tiene la dirección IP IP3?". Además incluye las direcciónes MAC e IP de origen en el contenido del paquete ARP (E1, IP1) Esta trama es recibida por todas las máquinas de la red LAN, incluida la máquina 3, que reconoce su propia dirección IP en la pregunta La máquina 3 responde enviando una trama con un mensaje de protocolo ARP: Dirección MAC origen E3 (la de la máquina 3) Dirección MAC destino E1 En el contenido va la respuesta del protocolo ARP: "IP3 tiene dirección MAC E3" La máquina 3 guarda la correspondencia (IP1, E1) obtenida del mensaje ARP recibido La máquina 1 recibe esta respuesta (dirigida específicamente hacia la dirección MAC E1) y entonces tiene la dirección MAC de máquina 3 (E3) y puede enviar tramas directamente a ella La máquina 1 guarda la correspondencia (IP3, E3) que venía en el mensaje ARP recibido 5
Mensajes ARP ARP viaja sobre la trama Ethernet 6
Mensajes ARP Hardware Type: tipo de hardware 1 para Ethernet. Protocol Type: tipo de protocolo 0x0800 para la dirección IP Operation: tipo de operación: 1 para solicitud ARP 2 para respuesta ARP 3 para solicitud RARP (Reverse ARP) 4 para respuesta RARP HLEN: longitud de la dirección MAC, para usar ARP en distintos tipos de red de capa 2 6 en Ethernet PLEN: longitud de la dirección de capa 3, para usar ARP en distintos tipos de redes 4 en caso de IP Sender HA: dirección hardware del emisor Sender IP: dirección IP del emisor Target HA: dirección hardware del destinatario Target IP: dirección IP del destinatario 7
Optimizaciones Cuando la máquina 3 recibe la consulta guarda la pareja MAC, IP de la máquina 1 seguramente la necesite para contestar y evita tener que hacer ARP para averiguarla Caché de ARP las correspondencias MAC, IP averiguadas se guardan en memoria por un cierto tiempo para evitar repetir el ARP Las entradas en el caché tienen un tiempo de validez por si cambia la tarjeta Ethernet y para evitar mantener en la tabla entradas inactivas Vencido ese tiempo, la entrada se borra del caché Si tengo una entrada en la tabla, la actualizo al escuchar mensajes de esa MAC en modo broadcast 8
ARP gratuito Cuando una máquina se enciende envía un mensaje ARP de interrogación de su propia IP (broadcast) Nadie debería contestar ya que la IP no debería estar repetida Pero si es contestado es porque hay una IP duplicada y se anuncia el potencial conflicto Además todas las máquinas de la LAN reciben el mensaje ARP inicial y aquellas que tuvieran una entrada para esa IP en su tabla de ARP la actualizan con la nueva dirección MAC (que puede haber cambiado) 9
Proxy ARP A P B 192.168.1.0/24 En algunos casos es necesario implementar una misma red IP (un conjunto de números IP determinados por una cierta red y máscara) sobre varias LANs físicamente diferentes Proxy ARP permite que una máquina responda ARP a nombre de otra A envía consulta de ARP preguntando por MAC de B y P responde en nombre de B A envía la trama a P y P la envía a B 10
RARP Reverse Address Resolution Protocol: RFC 903 Protocolo para obtener la dirección IP correspondiente a una dirección MAC Ejemplo para bootear varias estaciones sin disco con una misma imagen de software y luego personalizarla con una IP diferente a cada una Cuando una máquina quiere obtener su IP, envía un mensaje por difusión: "Tengo la dirección MAC E1, sabe alguien mi dirección IP?" El servidor RARP(*) recibe este paquete y responde con un mensaje a la dirección MAC E1. (*) Se necesita un servidor RARP en cada red local 11
Protocolo BOOTP Mejora respecto a RARP RFCs 951, 1048 y 1084 Utiliza mensajes UDP que pueden enrutarse hacia el servidor (en otra red) Además de permitir a una máquina obtener su propia IP, provee información adicional la dirección IP del servidor donde está la imagen de memoria con el sistema operativo la dirección IP del enrutador por defecto la máscara de subred a usar 12
DHCP Extensión de BOOTP DHCP = Dynamic Host Configuration Protocol (descrito en las RFCs 2131 y 2132). DHCP permite tanto la asignación manual como automática de números IP Este protocolo ha desplazado a RARP y BOOTP Hay un servidor DHCP capaz de asignar números IP (y otros parámetros) a máquinas que lo soliciten. Puede haber Agentes DHCP relay si el servidor no está en la misma LAN Puede asignar dirección IP, máscara de red, gateway por defecto, servidores DNS 13
Proceso DHCP El proceso de descubrimiento del número IP de una máquina y demás parámetros, requiere lo siguientes pasos: La máquina A arranca y para obtener su número IP, envía un mensaje DHCP DISCOVER (por difusión) El agente DHCP relay reconoce el mensaje DHCP DISCOVER y lo envía al servidor DHCP (unicast) El servidor DHCP responde con un mensaje OFFER conteniendo una dirección IP y demás parámetros. El servidor tiene un conjunto (pool) de direcciones IP disponibles, llevando el control de cuáles están asignadas La máquina A recibe el mensaje OFFER a través del agente relay DHCP. La máquina A responde al servidor DHCP con un mensaje REQUEST en el cual acepta la oferta El servidor DHCP responde con un mensaje ACK y asigna la dirección. Este mensaje de reconocimiento ACK incluye varios parámetros configurables, entre otros la duración de la asignación. La máquina A dispone de su número IP; lo verifica mediante ARP: si alguien responde (IP duplicada!), la máquina A se queja al servidor DHCP con un mensaje DECLINE, recomenzando las negociaciones. Si el IP no está siendo usado (nadie responde al ARP) la máquina A puede iniciar comunicaciones normalmente Cuando se acerca el fin del tiempo de validez del IP la máquina envía al servidor un nuevo paquete REQUEST para renovar su asignación y continuar usando el número IP asignado Cuando la máquina A desea terminar su uso del IP envía al servidor un paquete RELEASE. El servidor libera ese IP para asignarlo a otra solicitud El tiempo de validez de la dirección IP resuelve el problema de máquinas que no devuelven correctamente sus números IP: la máquina se desconecta pero el servidor no se entera, y no puede reasignar el número. La técnica de asignar números IP con 14 un cierto tiempo de validez se denomina "leasing"