ARP

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 10 de febrero de 2022; las comprobaciones requieren 6 ediciones .
ARP
Nombre protocolo de resolucion de DIRECCION
Nivel (según el modelo OSI ) canalizado
Familia TCP/IP
Creado en mil novecientos ochenta y dos
Puerto/ID 0x0806/ Ethernet
Propósito del protocolo Conversión de direcciones de red en direcciones de canal
Especificación RFC 826
Implementaciones principales (clientes) implementaciones de la pila TCP/IP en Microsoft Windows , Linux y BSD
Implementaciones principales ( servidores ) implementaciones de la pila TCP/IP en Windows , Linux y BSD
 Archivos multimedia en Wikimedia Commons

ARP ( Eng.  Address Resolution Protocol  - protocolo de determinación de direcciones) es un protocolo en redes informáticas diseñado para determinar la dirección MAC de otra computadora mediante una dirección IP conocida .

La descripción del protocolo se publicó en noviembre de 1982 en RFC 826 . ARP fue diseñado para transmitir paquetes IP a través de paquetes Ethernet (tramas). El principio de averiguar la dirección de hardware del host de destino, utilizado en ARP, se utilizó luego en otros tipos de redes.

ARP se ha generalizado debido a la ubicuidad de las redes IP construidas sobre Ethernet, ya que casi siempre usan ARP. ARP no existe en la familia de protocolos IPv6 , sus funciones están asignadas a ICMPv6 .

Descripción

Considere la esencia del funcionamiento de ARP en un ejemplo simple. La computadora A (dirección IP 10.0.0.1) y la computadora B (dirección IP 10.22.22.2) están conectadas por una red Ethernet . La computadora A quiere enviar un paquete de datos a la computadora B, la dirección IP de la computadora B es conocida por ella. Sin embargo, la red Ethernet a la que están conectados no funciona con direcciones IP. Por lo tanto, la computadora A necesita conocer la dirección de la computadora B en la red Ethernet ( la dirección MAC en términos de Ethernet) para poder transmitir a través de Ethernet. Para esta tarea se utiliza el protocolo ARP. Bajo este protocolo, la computadora A envía una solicitud de transmisión dirigida a todas las computadoras en el mismo dominio de transmisión . La esencia de la solicitud: "computadora con dirección IP 10.22.22.2, dígale su dirección MAC a la computadora con dirección MAC (por ejemplo, a0:ea:d1:11:f1:01)". La red Ethernet entrega esta solicitud a todos los dispositivos en el mismo segmento Ethernet, incluida la computadora B. La computadora B responde a la computadora A con la solicitud e informa su dirección MAC (p. ej., 00:ea:d1:11:f1:11) Ahora, Habiendo recibido la dirección MAC de la computadora B, la computadora A puede enviarle cualquier dato a través de la red Ethernet.

Existen los siguientes tipos de mensajes ARP: solicitud ARP (solicitud ARP ) y respuesta ARP (respuesta ARP ). El sistema de envío, utilizando una solicitud ARP, solicita la dirección de hardware del sistema receptor, que viene dentro de la respuesta ARP.

Antes de pasar un paquete de capa de red a través de un segmento de Ethernet, la pila de red verifica el caché ARP para ver si la información del nodo de destino requerida ya está registrada en su tabla. Si no existe tal entrada en la memoria caché ARP, se realiza una solicitud de difusión ARP. Esta solicitud de dispositivos en la red tiene el siguiente significado: "¿Alguien sabe la dirección física del dispositivo con tal o cual dirección IP?" Cuando un host con esta dirección IP recibe un paquete de solicitud de este tipo, debe responder: "Sí, esta es mi dirección IP y mi dirección de hardware es tal y tal". Después de eso, el remitente de la solicitud almacenará la dirección de hardware del destinatario en su caché ARP y podrá dirigir la información al destinatario.

A continuación se muestra un ejemplo de una solicitud y respuesta de ARP. < ver en la parte inferior de la página>

Las entradas en la caché ARP pueden ser estáticas o dinámicas. El ejemplo anterior describe una entrada de memoria caché dinámica. También puede crear entradas estáticas en la tabla. En la mayoría de los sistemas operativos, esto se puede hacer con el comando:

arp -s <IP-адрес> <MAC-адрес>

En Windows Server 2003, las entradas de la tabla ARP creadas dinámicamente permanecen en la memoria caché durante 2 minutos. Si durante estos dos minutos hubo una retransmisión de datos a esta dirección, el tiempo de almacenamiento de la entrada en el caché se extiende por otros 2 minutos. Este procedimiento se puede repetir varias veces, pero la entrada máxima en el caché durará hasta 10 minutos. Después de eso, la entrada se eliminará del caché y, si es necesario, se enviará una nueva solicitud ARP [1] .

En los sistemas operativos más nuevos, el tiempo de retención de las entradas en la tabla ARP y el método de almacenamiento se pueden seleccionar mediante programación y se pueden cambiar si se desea.

Variantes del protocolo ARP

ARP se desarrolló originalmente no solo para IP, este protocolo también se puede usar para averiguar direcciones MAC en varias direcciones de protocolos de capa 3 .  ARP también se ha adaptado para obtener otras direcciones de capa 2 (hardware) del modelo OSI ( direcciones de capa 2 ).

Los protocolos InARP y ATM ARP se utilizan en varias encapsulaciones de IP sobre ATM descritas en RFC 1577 ( Classical IP and ARP over ATM ) [2] .

Actualmente, ARP se usa principalmente para hacer coincidir las direcciones IP y MAC en las redes ethernet.

ARP inverso

Inverse Address Resolution Protocol , Inverse ARP o InARP  es un protocolo para obtener direcciones de capa de red (por ejemplo , direcciones IP ) de otras estaciones de trabajo por sus direcciones de capa de enlace (por ejemplo, DLCI en redes Frame Relay ). InARP se usa comúnmente en redes Frame Relay y ATM .

Comparación de ARP e InARP

ARP traduce las direcciones de la capa de red en direcciones de la capa de enlace, mientras que InARP puede verse como su inversa. InARP se implementa como una extensión de ARP. Los formatos de paquete de estos protocolos son los mismos, solo difieren los códigos de operación y los campos a completar.

RAR

El Protocolo de resolución de dirección inversa, ARP inversa o RARP , como InARP , traduce las direcciones de la capa de enlace en direcciones de la capa de red. Pero RARP se utiliza para obtener las direcciones lógicas de las propias estaciones emisoras, mientras que en el protocolo InARP el emisor conoce sus propias direcciones y solicita la dirección lógica de otra estación. Se abandonó RARP en favor de BOOTP , que a su vez fue reemplazado por DHCP .

Cómo funciona

  1. Un host que necesita asignar una dirección IP a una dirección de hardware (dirección de hardware Ethernet, dirección MAC ) forma una solicitud ARP con la dirección IP de destino, la adjunta a una trama de protocolo de capa de enlace y la transmite.
  2. Todos los hosts en el segmento de la red local reciben la solicitud ARP y comparan la dirección IP especificada allí con la suya.
  3. Si su propia dirección IP coincide con la recibida en la solicitud ARP, el nodo genera una respuesta ARP, en la que indica tanto su dirección IP como su dirección hardware, y la envía dirigida a la dirección hardware del remitente de la solicitud ARP.

La traducción de direcciones se realiza consultando la tabla de correspondencia entre las direcciones IP y MAC. Esta tabla, llamada tabla ARP, se almacena en la memoria del sistema operativo y contiene entradas para cada host conocido. Las dos columnas contienen las direcciones IP y Ethernet (MAC). Si desea convertir una dirección IP en una MAC, la tabla ARP busca una entrada con la dirección IP correspondiente.

Ejemplo de tabla ARP simplificada
223.1.2.1 08:00:39:00:2F:C3
223.1.2.3 08:00:5A:21:A7:22
223.1.2.4 08:00:10:99:AC:54

Estructura de un paquete ARP

La estructura de paquetes utilizada en las solicitudes y respuestas ARP se ilustra a continuación. En redes Ethernet , estos paquetes usan EtherType 0x0806 y las solicitudes se envían a la dirección MAC de transmisión  : FF:FF:FF:FF:FF:FF. Tenga en cuenta que en la estructura del paquete que se muestra a continuación, las palabras de 32 bits se usan convencionalmente como SHA, SPA, THA y TPA ; la longitud real está determinada por el dispositivo físico y el protocolo.

+ bits 0-7 8 - 15 16 - 31
0 Tipo de hardware (HTYPE) Tipo de protocolo (PTYPE)
32 longitud del hardware (HLEN) Longitud del protocolo (PLEN) Operación (OPER)
64 Dirección de hardware del remitente (SHA)
? Dirección de protocolo del remitente (SPA)
? Dirección de hardware de destino (THA)
? Dirección de protocolo de destino (TPA)
Tipo de hardware (HTYPE) Cada protocolo de transferencia de datos de canal tiene su propio número, que se almacena en este campo. Por ejemplo, Ethernet tiene el número 0x0001. Tipo de protocolo (PTYPE) Código de protocolo de red. Por ejemplo, para IPv4 , se escribiría 0x0800. longitud del hardware (HLEN) La longitud de la dirección física en bytes. Las direcciones Ethernet tienen una longitud de 6 bytes (0x06). Longitud del protocolo (PLEN) La longitud de la dirección lógica en bytes. Las direcciones IPv4 tienen una longitud de 4 bytes (0x04). operación El código de operación del remitente: 0x0001 para una solicitud y 0x0002 para una respuesta. Dirección de hardware del remitente (SHA) La dirección física del remitente. Dirección de protocolo del remitente (SPA) La dirección lógica del remitente. Dirección de hardware de destino (THA) La dirección física del destinatario. No se requiere bajo pedido. Dirección de protocolo de destino (TPA) La dirección lógica del destinatario.

Solicitar ejemplo

Si un host con dirección IPv4 10.10.10.123 y dirección MAC 00:0D:9D:86:59:E2 desea enviar un paquete a otro host con dirección 10.10.10.140 pero no conoce su dirección MAC, debe enviar un ARP solicitud para resolver la dirección.

El paquete que se muestra a continuación representa una solicitud de transmisión. Si el host con IP 10.10.10.140 está presente en la red y es accesible, recibe esta solicitud ARP y devuelve una respuesta.

bits 0-7 8 - 15 16 - 31
0 tipo de equipo = 0x0001 tipo de protocolo = 0x0800
32 Longitud de hardware = 0x06 longitud del protocolo = 0x04 Operación = 0x0001
64 SHA (primeros 32 bits) = 0x000D9D86
96 SHA (últimos 16 bits) = 0x59E2 SPA (primeros 16 bits) = 0x0A0A
128 SPA (últimos 16 bits) = 0x0A7B THA (primeros 16 bits) = 0x0000
160 THA (últimos 32 bits) = 0x00000000
192 TPA=0x0A0A0A8C

Ejemplo de respuesta

En la situación descrita anteriormente, si el nodo con la dirección 10.10.10.140 tiene una dirección MAC de 00:09:58:D8:33:AA, devolverá el paquete que se ilustra a continuación. Tenga en cuenta que los bloques de dirección del remitente y el destinatario ahora han cambiado de valor (el remitente de la respuesta ahora es el destinatario de la solicitud; el destinatario de la respuesta es el remitente de la solicitud). Además, la respuesta tiene una dirección MAC de host de 10.10.10.140 en el campo de dirección física de origen (SHA) y el campo THA no está vacío (respuesta de unidifusión).

Cualquier host en la misma red que el remitente y el receptor también recibirá la solicitud (porque es una transmisión) y, por lo tanto, agregará información sobre el remitente a su caché. La respuesta ARP se dirige solo al origen de la solicitud ARP, por lo que la respuesta ARP no está disponible para otros hosts en la red.

+ bits 0-7 8 - 15 16 - 31
0 tipo de equipo = 0x0001 tipo de protocolo = 0x0800
32 Longitud de hardware = 0x06 longitud del protocolo = 0x04 Operación = 0x0002
64 SHA (primeros 32 bits) = 0x000958D8
96 SHA (últimos 16 bits) = 0x33AA SPA (primeros 16 bits) = 0x0A0A
128 SPA (últimos 16 bits) = 0x0A8C THA (primeros 16 bits) = 0x000D
160 THA (últimos 32 bits) = 0x9D8659E2
192 TPA=0x0A0A0A7B
  • Comentario. La longitud de los campos SHA, SPA, THA, TPA depende de los parámetros Longitud del hardware y Longitud del protocolo, respectivamente.

Caché ARP

La eficacia de ARP depende en gran medida de la caché ARP (caché ARP ) que está disponible en cada host. El caché contiene una tabla de correspondencia entre las direcciones MAC e IP compiladas por el sistema operativo.

La vida útil de una entrada de caché se deja a discreción del desarrollador. El valor predeterminado puede ser desde decenas de segundos (por ejemplo, 20 segundos) hasta cuatro horas ( Cisco IOS ). [3]

Detección de conflictos de direcciones

ARP se puede utilizar para detectar conflictos de direcciones IP en una red local. RFC 5227 define un formato de solicitud de sonda ARP con un campo SPA de ceros (dirección IP 0.0.0.0). Antes de asignar una dirección IP a una interfaz, un host PUEDE verificar que otro host no esté utilizando la dirección en el segmento LAN.

Anuncio ARP

Un anuncio ARP es un paquete (generalmente una solicitud ARP [4] ) que contiene el SHA y SPA correctos del host emisor, con un TPA igual a SPA. Esta no es una solicitud de permiso, sino una solicitud para actualizar el caché ARP de otros hosts que reciben el paquete.

La mayoría de los sistemas operativos envían un paquete de este tipo cuando un host se conecta, lo que ayuda a evitar una serie de problemas. Por ejemplo, al cambiar la tarjeta de red (cuando es necesario actualizar la asociación entre las direcciones IP y MAC), dicha solicitud corregirá las entradas en el caché ARP de otros hosts en la red.

Las alertas ARP también se utilizan para "proteger" las direcciones IP en el protocolo Zeroconf , descrito en RFC 3927 .

Solicitud voluntaria ARP (ARP Gratuito)

Un caso especial de una solicitud ARP es una solicitud de dirección IP propia, se denomina " ARP Gratuito " (solicitud ARP voluntaria) [5] .

En dicha solicitud, las direcciones IP del remitente y del destinatario son las mismas.

El ARP gratuito se utiliza con dos propósitos [5] :

  1. notificación de dispositivos vecinos de que ha aparecido una nueva dirección IP en el segmento de red;
  2. comprobar la libertad de la dirección IP (si es utilizada por otro dispositivo).

Véase también

Notas

  1. Ver la memoria caché del Protocolo de resolución de direcciones (ARP)  : [ ing. ]  : [ arq. 25 de febrero de 2021 ] // MSDN. - 2009. - 8 de octubre.
  2. TCP/IP sobre ATM  : [ ing. ]  : [ arq. 9 de febrero de 2022 ]. —IBM . _
  3. Blog de pruebas de sistemas integrados: valor de tiempo de espera de ARP para Linux, Windows, Cisco 2960 y DELL Switch . Consultado el 8 de noviembre de 2013. Archivado desde el original el 21 de septiembre de 2013.
  4. Re: [dhcwg] ARP gratuito en DHCP vs. Borrador de IPv4 ACD Archivado desde el original el 12 de octubre de 2007.
  5. 12 ZvonDozvon._ _ _

Literatura

  •   RFC 826 :  Protocolo de resolución de direcciones
  •   RFC 1577 :  IP clásica y ARP sobre cajero automático
  •   RFC 2390 :  Protocolo de resolución de dirección inversa
  •   RFC 5227 :  Detección de conflictos de direcciones IPv4

Enlaces