ARP

El Protocolo de Resolución de Dirección (ARP, por sus siglas en inglés) es una parte crucial de la comunicación en redes de área local (LAN). ARP se encarga de traducir direcciones IP a direcciones MAC en redes locales, como Ethernet, permitiendo que los dispositivos se comuniquen de manera eficiente en una red. Las direcciones IP son utilizadas a nivel de capa de red (capa 3), mientras que las direcciones MAC son utilizadas en la capa de enlace de datos (capa 2). En este artículo, exploraremos en detalle el funcionamiento de ARP y su estructura de encabezado.

Dirección IP

Una dirección IP (Protocolo de Internet) es una etiqueta numérica única asignada a cada dispositivo conectado a una red que utiliza el protocolo IP. Las direcciones IP son esenciales para identificar y localizar dispositivos en redes IP. Hay dos versiones principales de direcciones IP: IPv4 e IPv6. IPv4 utiliza direcciones numéricas de 32 bits (por ejemplo, 192.168.1.1), mientras que IPv6 utiliza direcciones hexadecimales de 128 bits (por ejemplo, 2001:0db8:85a3:0000:0000:8a2e:0370:7334).

En una red local, como una red doméstica, las direcciones IP generalmente son asignadas por un enrutador o un servidor DHCP (Protocolo de Configuración Dinámica de Host). Las direcciones IP permiten la identificación única de dispositivos en la red y el enrutamiento de datos a través de la red global de Internet.

Dirección MAC

Una dirección MAC (Control de Acceso al Medio) es un identificador único y permanente asignado a la interfaz de red de un dispositivo físico, como una tarjeta de red Ethernet. Cada tarjeta de red tiene una dirección MAC única de 48 bits, generalmente representada en notación hexadecimal y formateada en grupos de seis dígitos separados por dos puntos (por ejemplo, 00:1A:2B:3C:4D:5E).

La dirección MAC se utiliza en la capa de enlace de datos para identificar dispositivos en la misma red local. A diferencia de las direcciones IP, que pueden cambiar cuando un dispositivo se conecta a diferentes redes, la dirección MAC es fija y se asigna en el momento de fabricación del hardware.

En una red, la dirección IP y la dirección MAC se utilizan en conjunto para permitir la comunicación. Cuando un dispositivo desea comunicarse con otro en la misma red, utiliza la dirección IP de destino para identificar el destino y la dirección MAC para direccionar el tráfico en la red local. Los protocolos como ARP permiten la resolución de direcciones IP a direcciones MAC, lo que facilita la comunicación dentro de la red.

Funcionamiento de ARP

ARP resuelve la diferencia entre las direcciones IP y las direcciones MAC. Cuando un dispositivo necesita enviar datos a otro dispositivo en la misma red, debe conocer la dirección MAC correspondiente para entregar el paquete de manera adecuada. Aquí está cómo funciona el proceso de resolución de dirección en ARP:

  1. Solicitud ARP (ARP Request): Cuando un dispositivo en una red necesita encontrar la dirección MAC correspondiente a una dirección IP destino, envía una solicitud ARP. La solicitud ARP se envía como un mensaje de broadcast dentro de la red local. El mensaje de broadcast se dirige a todas las máquinas en la red, y esto se hace utilizando la dirección MAC de broadcast, que es FF:FF:FF:FF:FF:FF. La solicitud ARP contiene la dirección IP del dispositivo emisor y la dirección IP destino para la que se busca la dirección MAC.
  2. Respuesta ARP (ARP Reply): La máquina con la dirección IP destino en la solicitud ARP recibe el mensaje de broadcast y responde con un mensaje ARP de respuesta. Esta respuesta contiene la dirección IP y la dirección MAC de la máquina emisora. El mensaje de respuesta ARP se envía directamente al dispositivo emisor, no como un broadcast.
  3. Actualización de la tabla ARP: Cuando el dispositivo emisor recibe la respuesta ARP, actualiza su tabla ARP con la dirección MAC correspondiente a la dirección IP destino. Esta tabla ARP es una tabla de caché que almacena las asociaciones entre direcciones IP y direcciones MAC para agilizar futuras comunicaciones.

Es importante mencionar que las tablas ARP tienen una duración limitada. Esto se debe a que las direcciones IP pueden cambiar con el tiempo debido a reconfiguraciones de red o movimientos de dispositivos. Cuando una entrada en la tabla ARP expira, el dispositivo debe repetir el proceso ARP para actualizar la información.

Ejemplo de ARP

    Solicitud ARP

    Supongamos que el dispositivo con dirección IP 192.168.1.10 necesita la dirección MAC del dispositivo con dirección IP 192.168.1.20:

    1. El dispositivo 192.168.1.10 envía una solicitud ARP preguntando por la dirección MAC asociada a 192.168.1.20.
    2. El dispositivo 192.168.1.20, al estar en la misma red, responde con su dirección MAC.
    Respuesta ARP

    Supongamos que el dispositivo con dirección IP 192.168.1.20 responde a la solicitud ARP:

    1. El dispositivo 192.168.1.20 recibe la solicitud ARP de 192.168.1.10.
    2. El dispositivo 192.168.1.20 envía una respuesta ARP a 192.168.1.10, incluyendo su dirección MAC.

Estructura del Encabezado ARP

El encabezado ARP consta de varios campos que permiten la resolución de direcciones de manera efectiva. Aquí están los campos principales del encabezado ARP:

  • 🔻 Tipo de hardware: Indica el tipo de medio de transmisión utilizado en la red, como Ethernet.
  • 🔻 Tipo de protocolo: Indica el protocolo de capa superior que se utilizará, generalmente IPv4.
  • 🔻 Longitud de dirección de hardware: Especifica la longitud de las direcciones físicas en bytes.
  • 🔻 Longitud de dirección de protocolo: Especifica la longitud de las direcciones IP en bytes.
  • 🔻 Código de operación: Indica si la solicitud ARP es una solicitud (1) o una respuesta (2).
  • 🔻 Dirección de hardware del remitente: Contiene la dirección MAC del remitente.
  • 🔻 Dirección de protocolo del remitente: Contiene la dirección IP del remitente.
  • 🔻 Dirección de hardware del destino: Se llena solo en las respuestas ARP, contiene la dirección MAC del destinatario.
  • 🔻 Dirección de protocolo del destino: Contiene la dirección IP del destinatario.

Encapsulamiento de los mensajes ARP

En cuanto al encapsulamiento de los mensajes ARP en paquetes IP:

  • Los mensajes ARP son encapsulados dentro de tramas Ethernet en redes locales.
  • Los mensajes ARP Request y ARP Reply son encapsulados en tramas Ethernet utilizando las direcciones MAC de origen y destino apropiadas.
  • El campo de tipo en la trama Ethernet se establece en el valor correspondiente a ARP (0x0806) para indicar que contiene un mensaje ARP.

El proceso de llenado de tablas ARP implica la emisión de solicitudes ARP (broadcast) para obtener la dirección MAC correspondiente a una dirección IP y recibir respuestas ARP (unidireccionales) con la información necesaria. Esto permite a los dispositivos construir y mantener tablas ARP que se utilizan para traducir direcciones IP a direcciones MAC en redes locales.

Una forma de verificar las tablas ARP dentro de dispositivos de red Cisco es con el comando.

Ataques Relacionados a ARP

☠️ ARP Spoofing (ARP Poisoning): En este ataque, un atacante envía mensajes ARP falsificados a los dispositivos en la red para asociar su dirección MAC con la dirección IP de otro dispositivo legítimo. Esto puede hacer que el tráfico de red pase por el atacante, lo que le permite interceptar y analizar el tráfico. También puede llevar a la suplantación de identidad.

☠️ ARP Cache Poisoning: Similar al ARP Spoofing, este ataque implica enviar respuestas ARP falsas a los dispositivos de la red, en un intento de corromper sus tablas de caché ARP. Esto puede causar que los dispositivos legítimos se comuniquen con el atacante en lugar del dispositivo real al que estaban intentando acceder.

☠️ ARP DOS (Denial of Service): Los atacantes pueden inundar la red con mensajes ARP falsos o repetidos, lo que puede abrumar las tablas ARP de los dispositivos, causando una degradación del rendimiento o incluso una interrupción completa del tráfico de red.

☠️ ARP MiTM (Man-in-the-Middle): En este escenario, el atacante intercepta el tráfico entre dos dispositivos legítimos. Esto se logra al enviar mensajes ARP falsificados a ambas partes, lo que hace que crean que están comunicándose directamente entre sí mientras el atacante actúa como intermediario.

☠️ ARP Hijacking: En lugar de interceptar el tráfico, un atacante puede reemplazar la dirección MAC de una máquina legítima en la tabla ARP de un dispositivo objetivo con su propia dirección MAC. Esto permite al atacante recibir el tráfico destinado a la máquina legítima.

☠️ ARP-Based VLAN Hopping: En este ataque, el atacante manipula las tablas ARP para moverse entre VLANs a las que normalmente no tendría acceso, lo que puede exponer segmentos de red sensibles.