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 di­s­po­si­ti­vos reciben la máscara de red y la dirección IP de manera au­to­má­ti­ca y flexible cuando se establece la conexión con una red. Con este objetivo, los di­s­po­si­ti­vos de co­mu­ni­ca­ción me­dia­do­res como routers o co­n­ce­n­tra­do­res (hubs) recurren al protocolo DHCP. En las redes locales se pueden in­tro­du­cir ambos datos ma­nua­l­me­n­te. El fa­bri­ca­n­te del di­s­po­si­ti­vo co­rre­s­po­n­die­n­te otorga la dirección de hardware, que queda vinculada a una dirección IP con ayuda del llamado Address Re­so­lu­tion Protocol (ARP).

Dominios web
Compra y registra tu dominio ideal
  • Gratis SSL Wildcard para tra­n­s­fe­re­n­cias de datos más seguras
  • Gratis registro privado para más pri­va­ci­dad

De­fi­ni­ción de protocolo ARP

El Address Re­so­lu­tion Protocol (protocolo de re­so­lu­ción de di­re­c­cio­nes) fue es­pe­ci­fi­ca­do en 1982 en el estándar RFC 826 para llevar a cabo la re­so­lu­ción de di­re­c­cio­nes IPv4 en di­re­c­cio­nes MAC. ARP es im­pre­s­ci­n­di­ble para la tra­n­s­mi­sió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 di­re­c­cio­nes físicas por sí mismo. Por el otro, y debido a su limitada longitud, el protocolo IPv4 carece de la po­si­bi­li­dad de almacenar las di­re­c­cio­nes de los di­s­po­si­ti­vos. 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 di­re­c­cio­nes por medio del Address Re­so­lu­tion Protocol hay que di­s­ti­n­guir 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 de­te­r­mi­na­da 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 re­fe­re­n­cia a un listado en forma de tabla de las di­re­c­cio­nes MAC que se necesitan con mayor fre­cue­n­cia, donde cada una de las entradas es generada por el protocolo de red o ma­nua­l­me­n­te. Las primeras entradas, que también pueden de­s­cri­bi­r­se 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 di­re­c­cio­nes estáticas están di­s­po­ni­bles hasta que el di­s­po­si­ti­vo 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 di­re­c­cio­na­mie­n­to. 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 de­s­ti­na­ta­rio. Cada una de las es­ta­cio­nes compara la dirección IP indicada en la petición con las suyas propias y rechaza la solicitud si no hay coin­ci­de­n­cia. 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 in­co­r­po­rar la dirección MAC y la IP de la otra parte en la memoria caché, sentando las bases para el in­te­r­ca­m­bio 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 co­m­bi­na­ción de dirección MAC e IP, por lo que aquí también se necesita el Address Re­so­lu­tion Protocol. Una vez resueltas las di­re­c­cio­nes, la puerta de enlace recibe el paquete de datos y a co­n­ti­nua­ción lo envía al host de destino. Para ello esta pasarela de enlace analiza la cabecera IP para obtener los datos ne­ce­sa­rios. A co­n­ti­nua­ción, si­r­vié­n­do­se de las po­si­bi­li­da­des del protocolo ARP, resuelve la dirección física di­re­c­ta­me­n­te 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 de­te­r­mi­nar la tra­ye­c­to­ria del paquete con ayuda de la tabla de en­ru­ta­mie­n­to.

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 so­li­ci­tu­des o responder a estas. Aunque ini­cia­l­me­n­te estaba previsto para di­re­c­cio­nes IPv4 y di­re­c­cio­nes MAC, también son válidos otros pro­to­co­los de red, de ahí que existan campos para el tipo y tamaño de las di­re­c­cio­nes de hardware y de protocolo. Como co­n­se­cue­n­cia, también puede haber di­fe­re­n­cias en el tamaño total de los paquetes ARP. En si­tua­cio­nes normales, la uti­li­za­ció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 co­m­po­ne­n­tes de un paquete de datos de este tipo.

La cabecera de ARP comienza con la in­fo­r­ma­ción de 16 bits de longitud sobre el tipo de dirección de hardware. En el caso de los di­s­po­si­ti­vos Ethernet previstos, el paquete tendría el valor 1. A co­n­ti­nua­ción se indica el protocolo (16 bits también), el cual debe servir como base para la re­so­lu­ción de di­re­c­cio­nes de ARP. Las di­re­c­cio­nes IPv4 se di­s­ti­n­guen 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 si­guie­n­tes informan sobre la longitud de ambas di­re­c­cio­nes (en bytes). Las di­re­c­cio­nes MAC tienen un tamaño de 6 bytes (48 bits) y se ide­n­ti­fi­can mediante el valor 6. Las di­re­c­cio­nes IP tienen una longitud de 4 bytes (32 bits), con lo que, por lo general, aquí figurará el valor 4.

Los si­guie­n­tes 16 bits (operación) se reservan para la es­pe­ci­fi­ca­ció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 di­re­c­cio­nes re­le­va­n­tes y pre­via­me­n­te de­cla­ra­das:

  • Dirección MAC del remitente: en una entrada contiene la dirección MAC del ordenador so­li­ci­ta­n­te; 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 so­li­ci­ta­n­te (solicitud ARP) o de destino o de la próxima puerta de enlace (respuesta).  
  • Dirección MAC del de­s­ti­na­ta­rio: 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 so­li­ci­ta­n­te.
  • Dirección IP del de­s­ti­na­ta­rio: 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.

Co­n­fi­gu­ra­ción del ARP: ¿cómo funciona?

El Address Re­so­lu­tion Protocol es un protocolo estándar que se puede utilizar en cualquier pla­ta­fo­r­ma y que, como tal, se ocupa de la asi­g­na­ción de di­re­c­cio­nes MAC en un segundo plano in­de­pe­n­die­n­te­me­n­te del sistema, ya sea Linux, Windows o macOS. Asimismo, también existe una he­rra­mie­n­ta de línea de comandos homónima para los di­fe­re­n­tes sistemas ope­ra­ti­vos con cuya ayuda se puede mostrar la caché de ARP y añadir o eliminar entradas ma­nua­l­me­n­te. Puedes obtener una visión general de las po­si­bi­li­da­des que plantea esta he­rra­mie­n­ta abriendo la consola de línea de comandos e in­tro­du­cie­n­do el comando arp (Windows) o arp -man (Linux).

Si lo que interesa es examinar las co­m­bi­na­cio­nes de di­re­c­cio­nes IP y MAC in­tro­du­ci­das, el comando arp –a funciona en cualquier sistema. Al in­tro­du­ci­r­lo aparece una lista de co­m­bi­na­cio­nes de di­re­c­cio­nes para todas las in­te­r­fa­ces de red que utilizan ARP. Además, también se puede obtener in­fo­r­ma­ció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 es­pe­cí­fi­ca, la apli­ca­ción ofrece datos sobre ella.

En caso de querer añadir la co­m­bi­na­ción de di­re­c­cio­nes de un host o eli­mi­nar­la de la tabla del protocolo ARP se necesitan los pa­rá­me­tros -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 in­fo­r­ma­ción de la caché si se recurre al parámetro “Delete” en una de las di­re­c­cio­nes ar­chi­va­das:

arp -d 157.55.85.212

En lugar de utilizar una dirección de Internet es­pe­cí­fi­ca, también se puede optar por el símbolo del asterisco (*) para eliminar toda la in­fo­r­ma­ción al­ma­ce­na­da en la memoria caché.

¿Qué tipos de va­ria­cio­nes existen para el protocolo ARP?

Además de la función estándar pre­se­n­ta­da hasta ahora, existen numerosas po­si­bi­li­da­des de uso para los paquetes de mensajes ARP. Así, un host también puede usarlos para informar a los otros pa­r­ti­ci­pa­n­tes 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 ini­cia­ti­va propia, esta variación del protocolo Address Re­so­lu­tion Protocol recibe el nombre de Gra­tui­tous ARP o GARP (en español, ARP no so­li­ci­ta­do).

Este tipo de co­mu­ni­ca­ción de la dirección física puede tener lugar, por ejemplo, debido a los si­guie­n­tes motivos:

  1.  En teoría, los mensajes del GARP no deberían provocar respuesta alguna debido al di­re­c­cio­na­mie­n­to 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 ad­mi­ni­s­tra­dor de red que la co­n­fi­gu­ra­ción es errónea.
  2. El Gra­tui­tous ARP permite que todos los hosts puedan in­co­r­po­rar 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 in­te­r­ca­m­bio de tarjetas de red. No­r­ma­l­me­n­te, los mensajes del ARP mo­di­fi­ca­dos se envían cuando se inicia el ordenador.
  3. Los se­r­vi­do­res que, por cue­s­tio­nes de seguridad, están co­n­fi­gu­ra­dos como se­r­vi­do­res o se­r­vi­do­res adi­cio­na­les, suelen compartir la dirección IP. Para que, en caso de eme­r­ge­n­cia, 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 en­co­n­trar­se en la red doméstica.

El Reverse Address Re­so­lu­tion Protocol (RARP) re­pre­se­n­ta otro tipo de variación que invierte la función del ARP. Con ello, no son las di­re­c­cio­nes IP las que se resuelven en di­re­c­cio­nes MAC, sino que son las di­re­c­cio­nes MAC las que se resuelven en di­re­c­cio­nes IP. Los di­s­po­si­ti­vos no pro­gra­ma­dos para la asi­g­na­ción o el al­ma­ce­na­mie­n­to pe­r­ma­ne­n­te, como es­ta­cio­nes de trabajo sin disco duro, hacen uso de esta po­si­bi­li­dad de averiguar la propia dirección de Internet.

También es muy frecuente la mo­di­fi­ca­ción Proxy ARP, en la que el router tiene la capacidad de responder a las so­li­ci­tu­des ARP para otros hosts. De este modo es posible es­ta­ble­cer la co­mu­ni­ca­ción entre dos hosts desde di­fe­re­n­tes subredes sin que tengan que rea­li­zar­se cambios en los ajustes de red de los di­s­po­si­ti­vos. Si una solicitud del Address Re­so­lu­tion 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. Po­s­te­rio­r­me­n­te, el router le transmite la in­fo­r­ma­ción al host de destino con ayuda de los datos de la caché de ARP.

Hecho

Si los mensajes del Address Re­so­lu­tion Protocol y la caché de ARP se manipulan co­n­s­cie­n­te­me­n­te para acceder a datos co­n­fi­de­n­cia­les, se habla entonces de ARP Spoofing. Para saber cómo funciona exac­ta­me­n­te este tipo de ataque “man in the middle” y cuáles son las medidas de seguridad co­n­ve­nie­n­tes, lee nuestra guía sobre ARP Spoofing.

Ir al menú principal