El Protocolo de Resolución de Direcciones ( ARP ) es un protocolo de comunicación para descubrir la dirección de la capa de enlace , como una dirección MAC , asociada a una dirección de la capa de Internet , normalmente una dirección IPv4 . Este protocolo, que forma parte del conjunto de protocolos de Internet , fue definido en 1982 por el RFC 826 , que corresponde al estándar de Internet STD 37.
ARP permite que un host envíe, por ejemplo, un paquete IPv4 a otro nodo de la red local, proporcionando un protocolo para obtener la dirección MAC asociada a una dirección IP. El host difunde una solicitud que contiene la dirección IP del nodo de destino, y el nodo con esa dirección IP responde con su dirección MAC.
ARP se ha implementado con muchas combinaciones de tecnologías de capa de red y de enlace de datos, como IPv4 , Chaosnet , DECnet y Xerox PARC Universal Packet (PUP) utilizando los estándares IEEE 802 , FDDI , X.25 , Frame Relay y Asynchronous Transfer Mode (ATM).
En las redes de protocolo de Internet versión 6 (IPv6), la funcionalidad de ARP la proporciona el protocolo de descubrimiento de vecinos (NDP).
Alcance operativo
El Protocolo de Resolución de Direcciones (DRP) es un protocolo de solicitud-respuesta . Sus mensajes son encapsulados directamente por un protocolo de capa de enlace. Se comunica dentro de los límites de una única subred y nunca se enruta .
Estructura del paquete
El Protocolo de Resolución de Direcciones (ARP) utiliza un formato de mensaje sencillo que contiene una solicitud o respuesta de resolución de direcciones. Los paquetes se transmiten en la capa de enlace de datos de la red subyacente como datos sin procesar. En el caso de Ethernet, se utiliza el valor EtherType 0x0806 para identificar las tramas ARP.
El tamaño del mensaje ARP depende del tamaño de las direcciones de la capa de enlace y de la capa de red. La cabecera del mensaje especifica los tipos de red utilizados en cada capa, así como el tamaño de sus direcciones. La cabecera se completa con el código de operación para la solicitud (1) y la respuesta (2). La carga útil del paquete consta de cuatro direcciones: las direcciones de hardware y de protocolo de los hosts emisor y receptor.
La estructura principal de los paquetes ARP se muestra en la siguiente tabla, que ilustra el caso de redes IPv4 que se ejecutan sobre Ethernet. En este escenario, el paquete tiene campos de 48 bits para la dirección de hardware del remitente (SHA) y la dirección de hardware del destino (THA), y campos de 32 bits para las direcciones de protocolo del remitente y del destino correspondientes (SPA y TPA). El tamaño del paquete ARP en este caso es de 28 bytes.
- Tipo de hardware (HTYPE) : 16 bits
- Este campo especifica el tipo de protocolo de enlace de red. [ 1 ] En este ejemplo, un valor de 1 indica Ethernet .
- Tipo de protocolo (PTYPE) : 16 bits
- Este campo especifica el protocolo de interconexión de redes para el que está destinada la solicitud ARP. Para IPv4, tiene el valor 0x0800 . Los valores PTYPE permitidos comparten un espacio de numeración con los de EtherType . [ 1 ] [ 2 ]
- Longitud de hardware (HLEN) : 8 bits
- Longitud (en octetos ) de una dirección de hardware. Para Ethernet, la longitud de la dirección es 6 .
- Longitud del protocolo (PLEN) : 8 bits
- Longitud (en octetos) de las direcciones de la red. El protocolo de la red se especifica en PTYPE. En este ejemplo: la longitud de la dirección IPv4 es 4 .
- Operación (OPER) : 16 bits
- Especifica la operación que está realizando el remitente: 1 para solicitud, 2 para respuesta.
- Dirección de hardware del remitente (SHA) : 48 bits
- Dirección de medios del remitente. En una solicitud ARP, este campo se utiliza para indicar la dirección del host que envía la solicitud. En una respuesta ARP, este campo se utiliza para indicar la dirección del host al que se dirigía la solicitud.
- Dirección del protocolo del remitente (SPA) : 32 bits
- Dirección IP del remitente.
- Dirección de hardware de destino (THA) : 48 bits
- Dirección de medios del receptor previsto. En una solicitud ARP, este campo se ignora. En una respuesta ARP, este campo se utiliza para indicar la dirección del host que originó la solicitud ARP.
- Dirección de protocolo de destino (TPA) : 32 bits
- Dirección IP del destinatario previsto.
Los valores de los parámetros ARP han sido estandarizados y son mantenidos por la Autoridad de Números Asignados de Internet (IANA). [ 1 ]
El EtherType para ARP es 0x0806 . Este aparece en la cabecera de la trama Ethernet cuando la carga útil es un paquete ARP y no debe confundirse con PTYPE, que aparece dentro de este paquete ARP encapsulado.
Capas
La ubicación de ARP dentro del conjunto de protocolos de Internet y el modelo OSI puede ser motivo de confusión o incluso de controversia. El RFC 826 lo ubica en la capa de enlace y lo caracteriza como una herramienta para consultar la "capa de nivel superior", como la capa de Internet. [ 3 ] El RFC 1122 también analiza ARP en su sección de capa de enlace. [ 4 ] Richard Stevens ubica ARP en la capa de enlace de datos del OSI [ 5 ] mientras que las ediciones más recientes lo asocian con la capa de red o introducen una capa intermedia OSI 2.5. [ 6 ]
Ejemplo
Dos computadoras, A y B , están conectadas a la misma red de área local sin puerta de enlace o enrutador intermedio . A tiene un paquete para enviar a la dirección IP 192.168.0.55 , que resulta ser la dirección de B.
Antes de enviar el paquete a B , A difunde un mensaje de solicitud ARP , dirigido con la dirección MAC de difusión FF:FF:FF:FF:FF:FF , y solicita una respuesta del nodo con la dirección IP 192.168.0.55 . Todos los nodos de la red reciben el mensaje, pero solo B responde, ya que posee la dirección IP solicitada. B responde con un mensaje de respuesta ARP que contiene su dirección MAC, la cual A recibe. A envía el paquete de datos a través del enlace dirigido con la dirección MAC de B.
Normalmente, un nodo de red mantiene una caché de búsqueda que asocia direcciones IP y MAC. En este ejemplo, si A tuviera la búsqueda en caché, no necesitaría transmitir la solicitud ARP. Además, cuando B recibiera la solicitud, podría almacenar en caché la búsqueda de A, de modo que si B necesita enviar un paquete a A posteriormente, no tendría que usar ARP para buscar su dirección MAC. Finalmente, cuando A recibe la respuesta ARP, puede almacenar en caché la búsqueda para futuros mensajes dirigidos a la misma dirección IP. [ 7 ]
Sonda ARP
Una sonda ARP en IPv4 es una solicitud ARP construida con el SHA del host que realiza la sonda, un SPA con todos los valores en cero, un THA con todos los valores en cero y un TPA configurado con la dirección IPv4 que se está buscando. Si algún host en la red considera que la dirección IPv4 (en el TPA) es suya, responderá a la sonda (a través del SHA del host que realiza la sonda), informándole así del conflicto de direcciones. Si, por el contrario, ningún host considera que la dirección IPv4 es suya, no habrá respuesta. Cuando se envían varias sondas de este tipo, con ligeros retrasos, y ninguna recibe respuesta, es razonable suponer que no existe ningún conflicto. Dado que el paquete de sonda original no contiene ni un SHA/SPA válido ni un THA/TPA válido, no existe riesgo de que ningún host utilice el paquete para actualizar su caché con datos problemáticos. Antes de comenzar a usar una dirección IPv4 (ya sea recibida mediante configuración manual, DHCP o algún otro medio), un host que implemente esta especificación debe comprobar si la dirección ya está en uso, mediante el envío de paquetes de sondeo ARP. [ 8 ] [ 9 ]
Anuncios de ARP
ARP también puede utilizarse como protocolo de anuncio simple. Esto resulta útil para actualizar las asignaciones de direcciones de hardware de otros hosts cuando cambia la dirección IP o la dirección MAC del remitente. Este anuncio, también llamado mensaje ARP gratuito ( GARP ), se suele transmitir como una solicitud ARP que contiene el SPA en el campo de destino (TPA=SPA), con THA establecido en cero. Otra alternativa es transmitir una respuesta ARP con el SHA y el SPA del remitente duplicados en los campos de destino (TPA=SPA, THA=SHA).
Los anuncios de solicitud ARP y de respuesta ARP son métodos basados en estándares, [ 10 ] : §4.6 pero se prefiere el método de solicitud ARP . [ 11 ] : §3 Algunos dispositivos pueden configurarse para usar cualquiera de estos dos tipos de anuncios. [ 12 ]
Un anuncio ARP no tiene como objetivo solicitar una respuesta; en cambio, actualiza las entradas almacenadas en caché en las tablas ARP de otros hosts que reciben el paquete. El código de operación en el anuncio puede ser solicitud o respuesta; el estándar ARP especifica que el código de operación solo se procesa después de que la tabla ARP se haya actualizado a partir de los campos de dirección. [ 13 ] [ 10 ] : §4.6 [ 14 ] : §4.4.1
Muchos sistemas operativos emiten un anuncio ARP durante el arranque. Esto ayuda a resolver problemas que podrían surgir si, por ejemplo, se ha cambiado recientemente una tarjeta de red (modificando la asignación de direcciones IP a direcciones MAC) y otros hosts aún conservan la asignación anterior en sus cachés ARP.
Las notificaciones ARP también son utilizadas por algunas interfaces de red para equilibrar la carga del tráfico entrante. En un grupo de tarjetas de red, se utilizan para anunciar una dirección MAC diferente dentro del grupo que debe recibir los paquetes entrantes.
Los anuncios ARP se pueden usar en el protocolo Zeroconf para permitir la asignación automática de una dirección local de enlace a una interfaz donde no hay otra configuración de dirección IP disponible. Los anuncios se utilizan para garantizar que una dirección elegida por un host no esté siendo utilizada por otros hosts en el enlace de red. [ 15 ]
Esta función puede ser peligrosa desde el punto de vista de la ciberseguridad, ya que un atacante puede obtener información sobre los demás hosts de su subred para guardar en su caché ARP ( suplantación de ARP ) una entrada donde la dirección MAC del atacante esté asociada, por ejemplo, a la IP de la puerta de enlace predeterminada , lo que le permite interceptar todo el tráfico hacia redes externas.
Mediación ARP
La mediación ARP se refiere al proceso de resolución de direcciones de capa 2 a través de un servicio de cable privado virtual (VPWS) cuando se utilizan diferentes protocolos de resolución en los circuitos conectados, por ejemplo, Ethernet en un extremo y Frame Relay en el otro. En IPv4 , cada dispositivo de borde del proveedor (PE) descubre la dirección IP del dispositivo de borde del cliente (CE) conectado localmente y la distribuye al dispositivo PE remoto correspondiente. Luego, cada dispositivo PE responde a las solicitudes ARP locales utilizando la dirección IP del dispositivo CE remoto y la dirección de hardware del dispositivo PE local. En IPv6 , cada dispositivo PE descubre la dirección IP de los dispositivos CE locales y remotos, intercepta los paquetes locales de descubrimiento de vecinos (ND) y descubrimiento inverso de vecinos (IND) y los reenvía al dispositivo PE remoto. [ 16 ]
ARP inverso y ARP inverso
El Protocolo de Resolución de Direcciones Inversa ( ARP Inverso o InARP ) se utiliza para obtener direcciones de la capa de red (por ejemplo, direcciones IP ) de otros nodos a partir de direcciones de la capa de enlace de datos (Capa 2). Dado que ARP traduce las direcciones de la capa 3 a direcciones de la capa 2, InARP puede describirse como su inverso. Además, InARP se implementa como una extensión del protocolo ARP: utiliza el mismo formato de paquete que ARP, pero con códigos de operación diferentes.
InARP se utiliza principalmente en redes Frame Relay ( DLCI ) y ATM, en las que las direcciones de capa 2 de los circuitos virtuales a veces se obtienen de la señalización de capa 2, y las direcciones de capa 3 correspondientes deben estar disponibles antes de que se puedan utilizar esos circuitos virtuales. [ 17 ]
El Protocolo de Resolución de Direcciones Inversa (ARP Inverso o RARP), al igual que InARP, traduce direcciones de capa 2 a direcciones de capa 3. Sin embargo, en InARP, la estación solicitante consulta la dirección de capa 3 de otro nodo, mientras que RARP se utiliza para obtener la dirección de capa 3 de la propia estación solicitante con fines de configuración de direcciones. RARP está obsoleto; fue reemplazado por BOOTP , que posteriormente fue sustituido por el Protocolo de Configuración Dinámica de Host (DHCP). [ 18 ]
Suplantación de ARP y proxy ARP

Dado que ARP no proporciona métodos para autenticar las respuestas ARP en una red, estas pueden provenir de sistemas distintos al que posee la dirección de capa 2 requerida. Un proxy ARP es un sistema que responde a la solicitud ARP en nombre de otro sistema para el cual reenviará el tráfico, normalmente como parte del diseño de la red, por ejemplo, para un servicio de acceso telefónico a Internet . Por el contrario, en la suplantación de ARP , el sistema que responde, o suplantador , responde a una solicitud de la dirección de otro sistema con el objetivo de interceptar los datos destinados a dicho sistema. Un usuario malintencionado puede utilizar la suplantación de ARP para realizar un ataque de intermediario o de denegación de servicio contra otros usuarios de la red. Existen diversos programas informáticos para detectar y realizar ataques de suplantación de ARP, aunque ARP en sí mismo no proporciona ningún método de protección contra dichos ataques. [ 19 ]
Alternativas
Los ordenadores pueden mantener listas de direcciones conocidas, en lugar de utilizar un protocolo activo. En este método, cada ordenador mantiene una base de datos del mapeo de direcciones de capa 3 (p. ej., direcciones IP ) a direcciones de capa 2 (p. ej., direcciones MAC de Ethernet ). Estos datos se mantienen principalmente mediante la interpretación de paquetes ARP del enlace de red local. Por lo tanto, a menudo se le denomina caché ARP . Desde al menos la década de 1980, [ 20 ] los ordenadores en red disponen de una utilidad llamada arp para consultar o manipular esta base de datos. [ 21 ] [ 22 ] [ 23 ]
Históricamente, se utilizaron otros métodos para mantener la correspondencia entre direcciones, como archivos de configuración estáticos [ 24 ] o listas mantenidas centralmente.
Relleno ARP
Los sistemas integrados, como las cámaras en red [ 25 ] y los dispositivos de distribución de energía en red [ 26 ] , que carecen de una interfaz de usuario, pueden utilizar el llamado relleno ARP para establecer una conexión de red inicial, aunque este término es inapropiado, ya que ARP no está involucrado.
El relleno de ARP se realiza de la siguiente manera:
- El ordenador del usuario tiene una dirección IP insertada manualmente en su tabla de direcciones (normalmente con el comando arp y la dirección MAC tomada de una etiqueta en el dispositivo).
- El ordenador envía paquetes especiales al dispositivo, normalmente un paquete ping con un tamaño diferente al predeterminado.
- El dispositivo adopta entonces esta dirección IP.
- Posteriormente, el usuario se comunica con el dispositivo mediante protocolos Telnet o web para completar la configuración.
Estos dispositivos suelen tener un método para desactivar este proceso una vez que el dispositivo está funcionando con normalidad, ya que esta capacidad puede hacerlo vulnerable a ataques.
Documentos de normas
- RFC 826 – " Un protocolo de resolución de direcciones Ethernet " , estándar de Internet 37.
- RFC 903 – " Un protocolo de resolución de direcciones inversas " , Estándar de Internet 38.
- RFC 2390 – " Protocolo de resolución de direcciones inversa " , borrador de estándar.
- RFC 5227 – " Detección de conflictos de direcciones IPv4 " , Norma propuesta.
Véase también
- Arping : utilidad de software para descubrir y sondear hosts en una red informática.
- Arptables – Herramienta para administradores de red
- Arpwatch – Herramienta de software para redes informáticas
- Bonjour Sleep Proxy : componente de código abierto para redes de configuración cero.
- Cisco HDLC : Extensión del protocolo de red de control de enlace de datos de alto nivel (HDLC).
- Protocolo de descubrimiento de vecinos : protocolo del conjunto de protocolos de Internet utilizado con IPv6.
Referencias
- 1 2 3 "Parámetros del Protocolo de Resolución de Direcciones (ARP)" . www.iana.org . Consultado el 16 de octubre de 2018 .
- ↑ D. Eastlake, 3rd; J. Abley; Y. Li (abril de 2024). Consideraciones de IANA y uso del protocolo y la documentación de IETF para parámetros IEEE 802. Grupo de trabajo de ingeniería de Internet . doi : 10.17487/RFC9542 . ISSN 2070-1721 . BCP 141. RFC 9542 . Mejores prácticas actuales 141. Deja obsoleto el RFC 7042 .
- ↑ David C. Plummer (noviembre de 1982). Un protocolo de resolución de direcciones Ethernet . Grupo de trabajo de redes. doi : 10.17487/RFC0826 . STD 37. RFC 826 .Estándar de Internet 37. seg. Monitoreo y depuración de redes. Actualizado por RFC 5227 y 5494 .
- ↑ R. Braden , ed. (octubre de 1989). Requisitos para hosts de Internet: capas de comunicación . Grupo de trabajo de redes. doi : 10.17487/RFC1122 . STD 3. RFC 1122 .Estándar de Internet 3. Actualizado por RFC 1349 , 4379 , 5884 , 6093 , 6298 , 6633 , 6864 , 8029 y 9293 .
- ↑ W. Richard Stevens, TCP/IP Ilustrado, Volumen 1: Los protocolos , Addison Wesley, 1994, ISBN 0-201-63346-9.
- ↑ W. Richard Stevens, TCP/IP Ilustrado, Volumen 1: Los protocolos , Addison Wesley, 2011, ISBN 0-321-33631-3, página 14
- ↑ Chappell, Laura A.; Tittel, Ed. (2007). Guía de TCP/IP (Tercera edición). Thomson Course Technology. págs. 115–116 . ISBN 9781418837556.
- ↑ S. Cheshire (julio de 2008). Detección de conflictos de direcciones IPv4 . Grupo de trabajo de redes. doi : 10.17487/RFC5227 . RFC 5227 .Estándar propuesto. Actualiza el RFC 826 .
- ↑ Harmoush, Ed. "ARP Probe and ARP Announcement" . Practical Networking . PracticalNetworking.net . Consultado el 3 de agosto de 2022 .
- 1 2 C. Perkins, ed. (noviembre de 2010). Soporte de movilidad IP para IPv4, revisado . Grupo de trabajo de ingeniería de Internet . doi : 10.17487/RFC5944 . ISSN 2070-1721 . RFC 5944 . Norma propuesta. Sustituye a RFC 3344 .
- ↑ S. Cheshire (julio de 2008). Detección de conflictos de direcciones IPv4 . Grupo de trabajo de redes. doi : 10.17487/RFC5227 . RFC 5227 .Estándar propuesto. Actualiza el RFC 826.
¿Por qué los anuncios ARP se realizan utilizando paquetes de solicitud ARP y no paquetes de respuesta ARP?
- ↑ "Preguntas frecuentes: El firewall no actualiza la tabla del protocolo de resolución de direcciones" . Citrix . 16 de enero de 2015.
[...] garpReply habilitado [...] genera paquetes ARP que [...] son de tipo OPCODE REPLY, en lugar de REQUEST.
- ↑ "ARP gratuito en DHCP frente al borrador de ACD para IPv4" . Archivado del original el 12 de octubre de 2007.
- ↑ R. Droms (marzo de 1997). Protocolo de configuración dinámica de host . Grupo de trabajo de redes de la IETF . doi : 10.17487/RFC2131 . RFC 2131 .Borrador de norma. Sustituye a RFC 1541. Actualizado por RFC 3396 , 4361 , 5494 y 6842 .
- ↑ S. Cheshire ; B. Aboba; E. Guttman (mayo de 2005). Configuración dinámica de direcciones de enlace local IPv4 . Grupo de trabajo de redes. doi : 10.17487/RFC3927 . RFC 3927 .Norma propuesta.
- ↑ Shah, H.; et al. (junio de 2012). Mediación del Protocolo de Resolución de Direcciones (ARP) para la interoperabilidad IP de VPN de capa 2. Grupo de Trabajo de Ingeniería de Internet. doi : 10.17487/RFC6575 . RFC 6575 .
- ↑ T. Bradley; C. Brown; A. Malis (septiembre de 1998). Protocolo de resolución de direcciones inversas . Grupo de trabajo de redes. doi : 10.17487/RFC2390 . RFC 2390 .Proyecto de Norma. Obsoletos RFC 1293 .
- ↑ R. Finlayson; T. Mann; J. Mogul; M. Theimer (junio de 1984). Un protocolo de resolución de direcciones inversa . Grupo de trabajo de redes. doi : 10.17487/RFC0903 . STD 38. RFC 903 .Estándar de Internet 38.
- ↑ Steve Gibson (11 de diciembre de 2005). "Envenenamiento de caché ARP" . GRC .
- ↑ Universidad de California, Berkeley. "Página del manual de BSD para el comando arp(8C)" . Consultado el 28 de septiembre de 2011 .
- ↑ Canonical. "Página del manual de Ubuntu para el comando arp(8)" . Archivado del original el 16 de marzo de 2012. Consultado el 28 de septiembre de 2011 .
- ↑ Apple Computer. "Página del manual de Mac OS X para el comando arp(8)" . Consultado el 28 de septiembre de 2011 .
- ↑ Microsoft. "Ayuda de Windows para el comando arp" . Consultado el 28 de septiembre de 2011 .
- ↑ Sun Microsystems. "Página del manual de SunOS para el archivo ethers(5)" . Consultado el 28 de septiembre de 2011 .
- ↑ Axis Communication. "Guía de instalación de la serie de cámaras de red Axis P13" (PDF) . Consultado el 28 de septiembre de 2011 .
- ↑ American Power Corporation. "Manual de instalación y de inicio rápido de la unidad de distribución de energía en rack conmutada" (PDF) . Archivado del original (PDF) el 25/11/2011 . Consultado el 28/09/2011 .
Enlaces externos
- "Diagrama de secuencia ARP (pdf)" (PDF) . Archivado del original (PDF) el 1 de marzo de 2021.
- ARP gratuito
- Captura de información y muestras de Wireshark
- Herramientas de generación de tráfico ARP-SK
- Protocolo de resolución de direcciones
- Estándares de Internet
- Protocolos de enlace