ARP : Address Resolution Protocol

 

Concepto: ARP
Dificultad: Básica - Media
Tema: IP
Resumen: Protocolo que consigue la dirección MAC de un dispositivo gracias a su dirección IP .
El protocolo de resolución de direcciones (ARP) se utiliza en las comunicaciones internas de una red. Es decir, cuando dos dispositivos conectados a la misma red quieren intercambiar información. Veamos qué es, para qué sirve y sus variaciones.

 

Qué es el ARP

El Address Resolution Protocol es un protocolo de resolución de direcciones MAC. Dada una dirección IP, el protocolo ARP descubre la dirección física o MAC asociada.

El objetivo del protocolo está claro, pero, ¿y su uso? ¿Por qué es necesario?

Uso

  • Resolver la dirección física asociada a una dirección IP.
  • Posibilitar el envío de datagramas entre diferentes redes TCP/IP.
  • Evitar direcciones IP duplicadas dentro de la misma red (Gratuitous ARP).
  • Posibilitar que equipos no tan avanzados tecnológicamente se puedan comunicar a través de redes contemporáneas (Proxy ARP).
El protocolo ARP está documentado en su total extensión el RFC 826

Cómo funciona el protocolo ARP

  • ARP Request: Tipo de mensaje ARP en el que se pide la dirección MAC del destinatario, asociado a la dirección IP.
  • ARP Reply: Respuesta del destinatario al ARP Request en el que entrega su dirección física.

Entrega Directa

Si se quiere enviar un mensaje ARP a un destino de la misma red que del origen hablamos de entrega directa.

Paso 1 – Inicio

PC1 quiere enviar un mensaje a PC2 pero no conoce su dirección MAC.

ARP funcionamiento Paso 1
ARP – Paso 1

Paso 2 – Generación del paquete ARP (ARP request)

PC1 envía un ARP Rquest a través de una trama en broadcast. Dicha solicitud la recibirán todos los dispositivos de la red.

paso 2
ARP – paso 2

 

Paso 3 -Recepción y respuesta del paquete ARP (ARP reply)

El dispositivo preguntado es PC2. Los otros ordenadores de la red descartan el datagrama. PC2 actualiza su tabla ARP con la MAC del emisor y le envía un ARP Reply (unicast, solamente a él).

paso 3
ARP – paso 3

 

Paso 4

Finalmente PC1 recibe el ARP reply actualiza su tabla ARP. ¡Ahora ya puede enviar tramas a su vecino PC2!

ARP paso 4
ARP – paso 4

 

Entrega Indirecta

Si se quiere enviar un mensaje ARP a un destino de una red diferente de la del origen hablamos de entrega indirecta.

El procedimiento es exactamente el mismo, simplemente tendremos que repetir dicho proceso en primera instancia con la interfaz del router que actúa como gateway o puerta de enlace (tantas veces como redes tengamos que saltar (ARP 1 y ARP2)) hasta volvernos a quedar como en el caso de la entrega directa (ARP 3).

Entrega Indirecta ARP
Entrega Indirecta ARP

Las tramas no cruzan redes, por eso cada router tiene que desencapsular la trama recibida, trasladar el datagrama IP a la interfaz conectada a la otra red, ejecutar el ARP, volverla a encapsular en una nueva trama y enviarla.

Tabla ARP

Cada dispositivo tiene una tabla donde almacena las direcciones IP de las cuales conoce su MAC tal que así.

Tabla ARP
Tabla ARP

Adicionalmente a cada binomio IP-MAC se le añade un temporizador que especifica el tiempo que esta resolución permanecerá en la tabla (de 5 a 20 minutos) llamado tiempo de vida.

Si no se recibe una trama con la misma asociación @IP-@MAC durante un tiempo, la resolución se borra.

Hacer esta asignación dinámica evita que se llenen las memorias caché de las tablas ARP de los dispositivos. Generalmente con ajustar el temporizador es suficiente pero siempre se puede limpiar la caché ARP.

Es importante tener en cuenta que las direcciones MAC son fijas, pero las IP pueden cambiar de dispositivo, hecho que se tiene que ver reflejado en las tablas ARP. Para eso se usa el Gratuitous ARP (visto más adelante).

Formato del paquete ARP

La estructura del mensaje ARP para direcciones IPv4 en redes Ethernet es el siguiente:

Formato Mensaje Address Resolution Protocol
Formato de un Mensaje ARP
  • Hardware Type: Indica el tipo de dirección Física (en este caso Ethernet).
  • Protocol Type: Indica el protocolo de la dirección que se quiere resolver (IPv4).
  • Hardware Address length: Indica el nombre de bytes de la dirección MAC -> 6.
  • Protocol Address length: Indica el nombre de bytes de la dirección que se quiere resolver (IPv4 -> 4).
  • Op. Code: Tipo de mensaje (Request/Reply).
  • Source Hardware Address: Dirección física del emisor del mensaje Si el ARP es tipo Reply aquí se encuentra la dirección física buscada.
  • Source Protocol Address: Dirección del Protocolo del emisor (IP)
  • Target Harware Address: Dirección MAC del receptor del mensaje. En un ARP request este campo es irrelevante (es la dirección buscada).
  • Target Protocol Address: Dirección del Protocolo del receptor(IP).

Variaciones de ARP

Reverse ARP

El protocolo RARP (Reverse Address Resolution Protocol) averigua la dirección IP destino a partir de una dirección MAC, justo al revés que un ARP.

Documentado en el RFC 903.

Actualmente para esta función se usa el Protocolo de Configuración Dinámica de Hosts (DHCP).

Inverse ARP

Se usa para traducir las direcciones de la capa de red (3) a la capa de enlace de datos (2).

Se envía cada 60 segundos automáticamente.

Usa el mismo formato de paquete que ARP.

Proxy ARP

Se usa cuando una máquina recibe y contesta un ARP Request en el nombre de otra.

Esto se puede dar si por ejemplo la máquina PC1 no tiene tarjeta Ethernet y por lo tanto no puede contestar a los mensajes de PC3, al que solamente puede llegar por la red Ethernet (ver imágen).

Proxy ARP
Proxy ARP

De esta forma, PC1 usa a PC2 como router a través de un enlace PPP. Este sí tiene tarjeta de red Ethernet y por lo tanto se puede conectar a la red.

Los mensajes que PC3 quiera enviar a PC1 los recibirá PC2, que al estar configurado como router (IP forwarding activado) mirará su tabla de encaminamiento y enrutará el mensaje hacia PC1.

Gratuitous ARP

Es un tipo de mensaje ARP en el que el host emisor pregunta en broadcast quien puede resolver su dirección IP.

Se realiza después de un arranque del sistema o boot.

El objetivo principal no es más que averiguar si alguien más en la red tiene la misma IP que el dispositivo que envió el ARP gratuito; en este caso estaríamos hablando de una dirección IP duplicada. Lo idóneo en esta situación sería que nadie contestase.

Recuerda: No pueden haber 2 direcciones IP iguales dentro de la misma red.

También se usa para actualizar las memorias caché ARP: Si una dirección IP ha passado de estar asignada del host A al host B las máquinas que tuvieran en su tabla ARP la configuración del host A continuarían enviando paquetes a su dirección física pese a que la dirección IP ya no estuviera haciendo referencia al host A.

Mediante el ARP gratuito, el nuevo host se asegura de que todos los dispositivos de la red actualicen la dirección IP para la nueva dirección física.

ARP Spoofing o suplantación de ARP

El ARP Spoofing es un tipo de ataque informático del estilo Man In The Middle que los hackers explotan una vez infiltrados en una LAN. Este realmente es el talón de aquiles del ARP en cuanto a seguridad se refiere.

Se trata de interceptar el primer ARP request realizado durante el boot de la máquina y enviar un ARP reply malicioso con nuestra dirección MAC. Así, todo el tráfico que salga de dicho computador pasará por nosotros, que posteriormente lo redirigiremos al destino correcto, pasando de esta forma totalmente desapercibidos.

 

ARP spoofing
ARP spoofing

 

Otros protocolos y artículos que te puedan interesar:

 

 

Si el artículo te ha parecido de interés, por favor, compártelo y puntúalo de forma positiva. ¡Te lo agradecemos mucho!

Martí Juncosa

Estudiante de ingeniería informática en la UPC (Universitat Politècnica de Catalunya).
Apasionado del SEO y las páginas web así como todo lo que tiene que ver con tecnología e innovación.

Comentar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *