¿Te ha gustado el artículo?
1
¿Te ha gustado el artículo?
1

¿Qué es el ARP (Address Resolution Protocol)?

Para poder enviar paquetes de datos en redes TCP/IP, un servidor necesita, sobre todo, tres datos de dirección sobre el host al que se dirige: la máscara de subred, la dirección IP y la dirección MAC (también conocida como dirección de hardware o dirección física). Los dispositivos reciben la máscara de red y la dirección IP de manera automática y flexible cuando se establece la conexión con una red. Con este objetivo, los dispositivos de comunicación mediadores como routers o concentradores (hubs) recurren al protocolo DHCP. En las redes locales se pueden introducir ambos datos manualmente. El fabricante del dispositivo correspondiente otorga la dirección de hardware, que queda vinculada a una dirección IP con ayuda del llamado Address Resolution Protocol (ARP).

Definición de protocolo ARP

El Address Resolution Protocol (protocolo de resolución de direcciones) fue especificado en 1982 en el estándar RFC 826 para llevar a cabo la resolución de direcciones IPv4 en direcciones MAC. ARP es imprescindible para la transmisión de datos en redes Ethernet por dos razones: por un lado, las tramas de datos (también tramas Ethernet) de los paquetes IP solo pueden enviarse con ayuda de una dirección de hardware a los hosts de destino, pero el protocolo de Internet no puede obtener estas direcciones físicas por sí mismo. Por el otro, y debido a su limitada longitud, el protocolo IPv4 carece de la posibilidad de almacenar las direcciones de los dispositivos. Con un mecanismo de caché propio, el protocolo ARP también es, aquí, la solución más adecuada. IPv6, por su parte, adopta las funciones del Neighbor Discovery Protocol (NDP).

¿Cómo funciona el ARP?

A la hora de asignar direcciones por medio del Address Resolution Protocol hay que distinguir si la dirección IP del host de destino se encuentra en la misma red local o en otra subred. Así, en caso de asignar una dirección MAC a una determinada dirección IP, antes de nada se lleva a cabo una revisión de la máscara de subred. Si la IP se encuentra en la red local, el primer paso es controlar si ya existe una entrada para ella en la caché del ARP.

Hecho

La memoria caché del ARP hace referencia a un listado en forma de tabla de las direcciones MAC que se necesitan con mayor frecuencia, donde cada una de las entradas es generada por el protocolo de red o manualmente. Las primeras entradas, que también pueden describirse como dinámicas, están dotadas de una fecha y, cuando esta vence, dichas entradas se eliminan de la caché. Por último, las entradas de direcciones estáticas están disponibles hasta que el dispositivo se apaga o se vuelve a encender y la caché del ARP se borra por completo.

Si una dirección IP ya tiene asignada una dirección física, es esta la que se utiliza para el direccionamiento. En caso contrario, el remitente envía una solicitud ARP (ARP Request) con la dirección IP de destino a todos los hosts de la red. Para tal fin, el emisor utiliza la dirección de broadcast de ARP FF:FF:FF:FF:FF:FF como dirección del destinatario. Cada una de las estaciones compara la dirección IP indicada en la petición con las suyas propias y rechaza la solicitud si no hay coincidencia. Si una estación percibe que se trata de la dirección propia, reacciona con una respuesta ARP (ARP Reply) en la que, entre otros datos, también transmite la dirección MAC. Ambas partes pueden incorporar la dirección MAC y la IP de la otra parte en la memoria caché, sentando las bases para el intercambio de datos.  

Si el host de destino no se encuentra en la misma subred, el remitente se dirige a la puerta de enlace estándar (en la mayoría de los casos un router). Puede acceder a ella mediante la combinación de dirección MAC e IP, por lo que aquí también se necesita el Address Resolution Protocol. Una vez resueltas las direcciones, la puerta de enlace recibe el paquete de datos y a continuación lo envía al host de destino. Para ello esta pasarela de enlace analiza la cabecera IP para obtener los datos necesarios. A continuación, sirviéndose de las posibilidades del protocolo ARP, resuelve la dirección física directamente cuando esta se encuentra en una subred adyacente, o resuelve la dirección de hardware de otra puerta de enlace cuando el ordenador de destino se encuentra en una subred remota y no se puede determinar la trayectoria del paquete con ayuda de la tabla de enrutamiento.

En el último caso, el proceso se repite tantas veces como sea necesario hasta que el paquete de datos llegue a su destino o hasta que el campo TTL (Time to Live) haya adoptado el valor 0 en la cabecera IP.

Así se crean los mensajes ARP

El protocolo ARP utiliza un formato simple de mensaje para enviar solicitudes o responder a estas. Aunque inicialmente estaba previsto para direcciones IPv4 y direcciones MAC, también son válidos otros protocolos de red, de ahí que existan campos para el tipo y tamaño de las direcciones de hardware y de protocolo. Como consecuencia, también puede haber diferencias en el tamaño total de los paquetes ARP. En situaciones normales, la utilización del protocolo ARP en redes basadas en Ethernet y IPv4 da como resultado, por ejemplo, una longitud de 224 bits (28 bytes).

El cuadro siguiente muestra los componentes de un paquete de datos de este tipo.

La cabecera de ARP comienza con la información de 16 bits de longitud sobre el tipo de dirección de hardware. En el caso de los dispositivos Ethernet previstos, el paquete tendría el valor 1. A continuación se indica el protocolo (16 bits también), el cual debe servir como base para la resolución de direcciones de ARP. Las direcciones IPv4 se distinguen por el valor 0x0800 (2048), que de hecho también se utiliza en tramas de Ethernet como valor para el protocolo IPv4 (EtherType). Los dos campos siguientes informan sobre la longitud de ambas direcciones (en bytes). Las direcciones MAC tienen un tamaño de 6 bytes (48 bits) y se identifican mediante el valor 6. Las direcciones IP tienen una longitud de 4 bytes (32 bits), con lo que, por lo general, aquí figurará el valor 4.

Los siguientes 16 bits (operación) se reservan para la especificación del mensaje ARP: el valor 1 se utiliza para una solicitud ARP y 2 revela que se trata de una respuesta ARP. Por último, los paquetes reciben las cuatro direcciones relevantes y previamente declaradas:

  • Dirección MAC del remitente: en una entrada contiene la dirección MAC del ordenador solicitante; en una respuesta ARP se encuentra en este caso o bien la dirección física de destino o de la próxima pasarela.
  • Dirección IP del remitente: contiene la dirección IP del ordenador solicitante (solicitud ARP) o de destino o de la próxima puerta de enlace (respuesta).  
  • Dirección MAC del destinatario: en este campo aparece la dirección MAC de broadcast FF:FF:FF:FF:FF:FF cuando el remitente hace una solicitud. En la respuesta ARP se registra la dirección de hardware del host solicitante.
  • Dirección IP del destinatario: en una solicitud, este campo incluye la dirección IP del host y la dirección MAC tendrá que buscarse. El mensaje de respuesta contiene la dirección IP del ordenador que solicita.

Configuración del ARP: ¿cómo funciona?

El Address Resolution Protocol es un protocolo estándar que se puede utilizar en cualquier plataforma y que, como tal, se ocupa de la asignación de direcciones MAC en un segundo plano independientemente del sistema, ya sea Linux, Windows o macOS. Asimismo, también existe una herramienta de línea de comandos homónima para los diferentes sistemas operativos con cuya ayuda se puede mostrar la caché de ARP y añadir o eliminar entradas manualmente. Puedes obtener una visión general de las posibilidades que plantea esta herramienta abriendo la consola de línea de comandos e introduciendo el comando arp (Windows) o arp -man (Linux).

Si lo que interesa es examinar las combinaciones de direcciones IP y MAC introducidas, el comando arp –a funciona en cualquier sistema. Al introducirlo aparece una lista de combinaciones de direcciones para todas las interfaces de red que utilizan ARP. Además, también se puede obtener información acerca de si una entrada se ha generado de forma dinámica o de si se ha creado de forma manual. Si amplías el comando con una dirección IP específica, la aplicación ofrece datos sobre ella.

En caso de querer añadir la combinación de direcciones de un host o eliminarla de la tabla del protocolo ARP se necesitan los parámetros -s y -d. Si la dirección física 00-aa-00-62-c6-09 está oculta tras, por ejemplo, la dirección IP 157.55.85.212, se puede crear una nueva entrada estática con el siguiente comando:

arp -a 157.55.85.212 00-aa-00-62-c6-09

También se puede eliminar esta información de la caché si se recurre al parámetro “Delete” en una de las direcciones archivadas:

arp -d 157.55.85.212

En lugar de utilizar una dirección de Internet específica, también se puede optar por el símbolo del asterisco (*) para eliminar toda la información almacenada en la memoria caché.

¿Qué tipos de variaciones existen para el protocolo ARP?

Además de la función estándar presentada hasta ahora, existen numerosas posibilidades de uso para los paquetes de mensajes ARP. Así, un host también puede usarlos para informar a los otros participantes de red sobre su propia dirección MAC. Con esta finalidad, este envía una solicitud ARP a la dirección MAC de broadcast y genera la propia IP como dirección de origen o de destino. Debido a que esto tiene lugar por iniciativa propia, esta variación del protocolo Address Resolution Protocol recibe el nombre de Gratuitous ARP o GARP (en español, ARP no solicitado).

Este tipo de comunicación de la dirección física puede tener lugar, por ejemplo, debido a los siguientes motivos:

  1.  En teoría, los mensajes del GARP no deberían provocar respuesta alguna debido al direccionamiento IP —de otra forma se podría deducir que la dirección IP utilizada por el remitente está duplicada—, pero si uno de los hosts con los que se contacta por broadcast responde, esto indica al administrador de red que la configuración es errónea.
  2. El Gratuitous ARP permite que todos los hosts puedan incorporar la dirección de hardware del remitente en la propia caché, lo que plantea ventajas cuando, por ejemplo, se modifica esta dirección debido a un intercambio de tarjetas de red. Normalmente, los mensajes del ARP modificados se envían cuando se inicia el ordenador.
  3. Los servidores que, por cuestiones de seguridad, están configurados como servidores o servidores adicionales, suelen compartir la dirección IP. Para que, en caso de emergencia, el tráfico de datos se desvíe al servidor sustituto, este tiene que informar de su dirección MAC a los otros hosts. Para ello, los mensajes GARP se erigen como una opción excelente.
  4. El mobile IP o IP móvil permite a los hosts móviles conservar la dirección IP propia aun cuando tenga lugar un cambio de red. Para estos fines, el agente inicial o Home Agent (HA) se hace cargo de la IP del host móvil cuando este se elimina de la red doméstica. Para llamar la atención, este envía un mensaje GARP y, del mismo modo, el host móvil envía un aviso cuando vuelve a encontrarse en la red doméstica.

El Reverse Address Resolution Protocol (RARP) representa otro tipo de variación que invierte la función del ARP. Con ello, no son las direcciones IP las que se resuelven en direcciones MAC, sino que son las direcciones MAC las que se resuelven en direcciones IP. Los dispositivos no programados para la asignación o el almacenamiento permanente, como estaciones de trabajo sin disco duro, hacen uso de esta posibilidad de averiguar la propia dirección de Internet.

También es muy frecuente la modificación Proxy ARP, en la que el router tiene la capacidad de responder a las solicitudes ARP para otros hosts. De este modo es posible establecer la comunicación entre dos hosts desde diferentes subredes sin que tengan que realizarse cambios en los ajustes de red de los dispositivos. Si una solicitud del Address Resolution Protocol llega a un router con un Proxy ARP activado, es este el que responde, en lugar del verdadero ordenador de destino. Para ello transmite su propia dirección MAC, con lo que también recibe los paquetes de datos del remitente. Posteriormente, el router le transmite la información al host de destino con ayuda de los datos de la caché de ARP.

Hecho

Si los mensajes del Address Resolution Protocol y la caché de ARP se manipulan conscientemente para acceder a datos confidenciales, se habla entonces de ARP Spoofing. Para saber cómo funciona exactamente este tipo de ataque “man in the middle” y cuáles son las medidas de seguridad convenientes, lee nuestra guía sobre ARP Spoofing.

Red Protocolos