Qué es el protocolo ARP y cómo funciona en redes IPv4

Qué es el protocolo ARP y cómo funciona en redes IPv4

Javier Jiménez

Para poder establecer conexiones, poder navegar por Internet o usar cualquier servicio online, es necesario que haya ciertos protocolos para que sea posible. En este artículo vamos a hablar de qué es el protocolo ARP, cómo funciona y veremos por qué es importante. Un repaso por la historia de este protocolo de red tan importante para cualquier conexión que se realice en la actualidad, pero siempre utilizando el protocolo de red IPv4, porque en el protocolo de red IPv6 el ARP desaparece por completo, siendo sustituido por el ICMPv6 que engloba muchas más funcionalidades.

 

En qué consiste el protocolo ARP

ARP son las siglas de Address Resolution Protocol. En español lo podemos traducir como Protocolo de resolución de direcciones. Es un protocolo de comunicaciones muy importante, ya que se encarga de vincular una dirección MAC o dirección física, con una dirección IP o dirección lógica. Este protocolo se desarrolló en la década de 1980 y hoy en día sigue siendo fundamental para el buen funcionamiento de las redes.

  • La dirección IP se trata de un número que se le asigna y hace referencia a un equipo en una red. Tiene como fin el facilitar que estos se distingan dentro de la misma. Puede ser pública o privada. En cuanto a la primera, es la que nos facilita nuestro proveedor de internet (ISP), y que nos identifica en Internet. Por otro lado, la privada es la que se establece en los dispositivos dentro de nuestra red doméstica.
  • En cuanto a la dirección MAC, es el número que identifica un componente de un equipo. En este caso, la tarjeta de red. Pueden ser utilizadas para permitir o denegar el acceso a internet de un equipo.

Se encarga de permitir que un dispositivo conectado a una red pueda obtener una ruta MAC de otro equipo que está conectado a esa misma red, es decir, se encarga de «localizar» donde están los demás dispositivos cableados o inalámbricos en la red, preguntando por la dirección MAC de cada uno de ellos enviando un paquete a la dirección de broadcast que es FF:FF:FF:FF:FF:FF. Permite transmitir datos a través de una trama, ya que este protocolo se encuentra a nivel de capa de enlace. Es importante ya que la longitud de las direcciones IP y MAC no son iguales. La primera tiene una longitud de 32 bits y la segunda de 48 bits.

Por tanto, lo que hace el protocolo ARP en el procedimiento de mapeo es traducir para que los sistemas puedan reconocerse entre sí. Hoy en día la resolución de direcciones IPv4 es la más utilizada, de ahí que este protocolo sea importante. ARP se encarga de «traducir» la dirección de 32 bits a 48 bits y viceversa, realmente lo que hace este protocolo es crear una tabla con una pareja IP-MAC donde posteriormente fijarse para poder transmitir todos los datos correctamente.

 

Tipos de protocolo ARP

Así como en otros protocolos, con ARP también tenemos distintos tipos o distintas implementaciones.

Proxy ARP: En primer lugar, este tipo de ARP es una técnica que básicamente se utiliza para que el servidor proxy pueda responder a las consultas ARP que se le hagan desde direcciones IP que no pertenecen a la red. Esto lo que quiere decir es que, desde otra red con este tipo de proxy pueden responderse a las consultas ARP desde direcciones IP diferentes.

ARP gratuito: Este tipo de ARP es una solicitud de ARP que por lo general viene realizada por el host de un equipo y que normalmente se utiliza para la identificación de direcciones IP duplicadas.

En otras palabras, lo que hace el ARP gratuito es actualizar la tabla ARP de otros dispositivos de red y al mismo tiempo lo que hace es verificar si el host del equipo está utilizando tu dirección IP original o si por el contrario está utilizando una dirección IP que se encuentra duplicada.

ARP inverso: Este protocolo, o tipo de protocolo ARP, es normalmente utilizado por nuestros equipos host. Se utiliza por lo regular para extraer información sobre nuestro propio protocolo de Internet sea este IPv4 o IPv6 de la red.

Es fácil de entender, ya que lo que simplemente hace este protocolo dicho con otras palabras es un protocolo de red TCP/IP mediante el cual, nosotros como usuarios podemos obtener de manera acertada, la información de la dirección IP de un servidor de red.

Otra forma en la que se utiliza el ARP inverso o InARP es para encontrar la dirección IP de los dispositivos mediante la utilización de la dirección MAC. Este caso se usa de manera más común, por ejemplo, en las redes ATM.

Debido a esto, los nodos finales no deben estar completamente organizados para identificar tampoco las direcciones MAC, sino que, pueden ser encontradas una vez que esto se requiera.

 

Creación de mensajes ARP

El protocolo ARP utiliza una forma simple para sus mensajes, y poder envías las solicitudes a la vez que responderlas. Principalmente estaba pensado para ser utilizado con direcciones IPv4 y MAC, pero esto también se puede utilizar con otros protocolos de red. Este es el motivo de que existan otros campos para el tipo y tamaño de las direcciones de hardware y protocolos. Esto tiene como consecuencia que pueda haber diferentes tamaños para los paquetes ARP. En una situación normal, todo esto está basado en la utilización del protocolo ARP en Ethernet e IPv4, lo cual genera paquetes con una longitud de 224 bits (28 bytes).

La cabecera ARP, da inicio con información que tiene una longitud de 16 bits sobre el tipo de dirección de hardware. En los casos de dispositivos Ethernet, el valor del paquete sería de 1. Luego de debe indicar el protocolo (16 bits), que tiene que servir a modo de base para la resolución de las direcciones ARP. En este caso, las IPv4 se distinguen por un valor. Este también se va a utilizar en las tramas Ethernet como valor para todo el protocolo IPv4.

Luego tenemos otros dos campos, donde tendremos la información de longitud de ambas direcciones en bytes. Primero las direcciones MAC, que tiene un tamaño de 6 bites y se identifican con el valor 6. Luego las direcciones IP, con longitud de 4 bytes y que se distinguen con el valor 4. Los siguientes 16 bites, se van a reservar para la especificación de los mensajes ARP. Primero tenemos el valor 1, que se utiliza para una solicitud ARP. Seguido el 2, que nos revela que se trata de una respuesta ARP. Y finalmente tendremos los paquetes, que reciben las cuatro direcciones que son relevantes y que se han establecido previamente. Estas son:

  • Dirección MAC del remitente.
  • Dirección IP del remitente.
  • Dirección MAC del destinatario.
  • Dirección IP del destinatario.
 

Cuál es el funcionamiento de ARP

Entonces, ¿cómo funciona exactamente el protocolo ARP? ¿Qué pasos son necesarios? Pongamos que hemos conectado un nuevo ordenador o cualquier dispositivo a la red. Ese equipo, para poder vincularse al router, va a recibir una dirección IP única. Esto es imprescindible para comunicarse y poder identificarse. Los paquetes de datos van a ir dirigidos a un host en particular. La puerta de enlace o el hardware de una red va a permitir que los datos fluyan y va a solicitar al protocolo ARP que encuentre una dirección MAC que coincida con esa dirección IP.

Hay que tener en cuenta que esta información se almacena en caché, por lo que ese paso se realiza la primera vez. A partir de ahí, la caché ARP mantiene una lista con las diferentes direcciones IP y direcciones MAC correspondientes, es decir, existe una tabla ARP que ya tiene guardada toda la información necesaria para que este proceso no sea necesario realizarlo continuamente.

Como dato a añadir, el propio usuario puede crear una tabla ARP estática donde almacenar esas direcciones IP y MAC. Pero de forma dinámica, esa caché ARP se almacena en los sistemas operativos en una red Ethernet IPv4. En cuanto un dispositivo va a solicitar la dirección MAC para enviar datos a cualquier otro equipo que esté conectado en esa red, se va a verificar la caché ARP. En caso de que exista, no sería necesario realizar una nueva solicitud.

Protocolo ARP

También hay que mencionar que la caché ARP no es infinita, sino todo lo contrario. Tiene un tamaño limitado y además las direcciones solo permanecen en caché durante un tiempo. Esto es así para poder liberar espacio y también para evitar ataques cibernéticos que puedan robar o falsificar las direcciones. Si sabemos que un determinado equipo siempre va a tener la misma dirección IP-MAC, entonces podríamos añadir esta entrada en la tabla ARP como estática, no obstante, si por algún motivo este equipo cambia de IP, no podremos comunicarnos con él, porque nuesta tabla ARP no está actualizada.

Un detalle muy importante es que el protocolo ARP no solamente está localmente dentro de una red local, si queremos comunicarnos con el exterior, nosotros tendremos que saber a través de ARP qué dirección MAC utiliza el router, ese router usará ARP para conocer a dónde debe enviar el paquete en función de su tabla de enrutamiento. De esta forma, aunque la tabla ARP está contenida dentro de un determinado dominio de difusión (VLAN), un router que interconecte dos redes, debe saber la tabla ARP completa de ambas redes para poder reenviar correctamente toda la información, de lo contrario no podría haber comunicación.

Si hablamos directamente de los paquetes, estos cuentan con su propia estructura, en la cual podemos ver mucha información acerca de la comunicación que realizamos. ARP utilizará un formato de mensaje simple, que lleva consigo una solicitud de resolución o respuesta. El tamaño de este, dependerá de la primera capa, la superior. La carga del paquete consta de varias direcciones. El hardware, la dirección del protocolo del remitente y el receptor host.

  • Hardware Type (HTYPE): Se trata del campo que especifica el tipo de protocolo de enlace.
  • Protocol Type (PTYPE): Nos indica el protocolo de interconexión de redes para las que están destinadas las peticiones ARP.
  • Longitud de Hardware (HLEN): Aquí mediremos la longitud de una dirección de hardware. Se representará en octetos.
  • Longitud de Protocolo: Se trata de la longitud de las direcciones utilizadas por el protocolo de capa superior. También en octetos.
  • Operación: Nos especifica las operaciones que el emisor está realizando.
  • Dirección de hardware remitente (SHA): Donde veremos la dirección de medios de comunicación remitentes.
  • Remitente de dirección de protocolo (SPA): Que sería la dirección de interconexión del remitente.
  • Dirección de hardware destino (THA): Este campo se suele ignorar en las solicitudes, pero se trata de la dirección de los medios de comunicación del receptor.
  • Dirección de protocolo target (TPA): Se trata de la interconexión del receptor previsto.
 

Cómo pueden atacar ARP

Siguiendo el hilo de lo que mencionábamos, hay que indicar que es posible que haya ataques de seguridad informática contra el protocolo ARP. El tipo de ataque base es lo que se conoce como ARP Spoofing, pero a través de ello van a poder realizar ataques de denegación de servicio y provocar problemas.

 

ARP Spoofing

También se conoce como suplantación de ARP. Básicamente consiste en enviar ARP falsos. Puede asociar la dirección MAC de un atacante con una dirección IP. De esta forma podría recopilar información que se envía a través de una dirección IP y controlar el tráfico.

Este tipo de ataque permite que un pirata informático pueda robar datos importantes de cualquier usuario particular o empresa en caso de un ataque exitoso. Lo pueden llevar a cabo a través de un dispositivo que previamente han atacado y controlado o incluso el suyo propio si está conectado a la red local.

Esta amenaza se podría prevenir a través de tablas ARP estáticas. Esto evita que haya caché dinámica, aunque no es algo viable en la mayoría de casos. En estos casos tendríamos que mantener una inspección constante para evitar la suplantación. Para que este tipo de ataques puedan ocurrir es necesario que el ciberdelincuente utilice ciertas herramientas como pueden ser Arpspoof o Driftnet.

También podemos relacionar esto con los ataques Man in the Middle. Lo que hace el atacante es interceptar todo lo que se envía, como pueden ser contraseñas o datos. Si la red está desprotegida, puede llegar a suplantar la identidad y obtener cierta información confidencial. Lo que hace el atacante literalmente es estar en medio de la comunicación, escuchando todo lo que se envía y recibe.

Ataques MitM

 

Ataques DoS

Otro tipo de ataque que puede afectar al protocolo ARP es lo que se conoce como denegación de servicio o DoS. En este caso un atacante va a buscar enviar una gran cantidad de solicitudes para que los sistemas, servidores o redes no puedan responder con normalidad.

Este problema va a provocar que los usuarios no puedan conectarse a la red. Para que esto ocurra deben explotar alguna vulnerabilidad que haya en el protocolo de red. Pueden hacer que durante un tiempo no puedan conectarse correctamente. Es similar a los ataques de este tipo que podemos ver contra el servidor de una web, por ejemplo, que deja de estar accesible para los visitantes.

Una vez un atacante ha logrado explotar el protocolo ARP, puede llevar a cabo ataques DDoS o de denegación de servicios distribuidos. Puede llegar a bombardear un servidor con una gran cantidad de solicitudes y que no pueda resolverlas adecuadamente.

En definitiva, el protocolo ARP sirve para resolver direcciones IPv4 a MAC. Para ello utiliza tablas ARP para encontrar las direcciones correspondientes y vincularlas. Esto permite traducir las direcciones y que los dispositivos puedan encontrarse. Es imprescindible para conectar un equipo al router, por ejemplo. Para evitar todo esto que mencionamos es imprescindible que mantengamos siempre la seguridad, que tengamos las redes protegidas y estemos alerta en todo momento para detectar lo antes posible cualquier intento de intrusión.

¡Sé el primero en comentar!