RARP: qué es el Reverse Address Resolution Protocol

¿Qué sucede cuando un ordenador no conoce su propia dirección IP ya que, por ejemplo, no tiene la posibilidad de almacenarla? En un caso como este, el Reverse Address Resolution Protocol (RARP) puede ser de ayuda, pues se trata de un protocolo para la solicitud inversa de direcciones. De esta manera, RARP constituye la contraparte del Address Resolution Protocol (ARP).

Aunque el Reverse ARP ha caído en desuso, ya que nuevos protocolos como Bootstrap (BOOTP) o el Dynamic Host Configuration (DHCP) lo han sustituido, conocer esta tecnología más antigua también es útil. Por un lado, aún a día de hoy se pueden encontrar aplicaciones que funcionan con RARP. Por otro lado, conocer las tecnologías anteriores ayuda a entender mejor las tecnologías emergentes.

¿Qué es RARP?

En primer lugar, RARP es un protocolo que se publicó en 1984 y que se incluye en la pila de protocolos TCP/IP. RARP se encuentra en la capa de acceso a la red (el nivel más básico y elemental de la pila) y representa con ello una tecnología que permite la transmisión entre dos puntos dentro de una red. Cada usuario de una red dispone de dos direcciones (más o menos) únicas: una lógica, la dirección IP, y una física, la dirección MAC (Media Access Control). Mientras que la dirección IP la determina el software, la dirección MAC está vinculada al hardware y se obtiene de la tarjeta de red proporcionada por el fabricante.

Puede darse la situación de que uno no conozca su propia dirección IP, por ejemplo, porque el dispositivo en cuestión no tiene almacenamiento propio en el que poder guardar dicha dirección. En este tipo de situaciones entra en juego el protocolo Reverse ARP. Basándose en la dirección MAC conocida, el protocolo puede determinar cuál es la dirección IP del dispositivo. Por lo tanto, cumple un propósito totalmente diferente al del protocolo ARP. En este último protocolo la dirección IP es conocida y con ayuda de ARP se averigua la dirección del hardware.

¿Cómo funciona RARP?

¿Quién puede saber la dirección IP de un usuario en la red, si él mismo no la conoce? La respuesta: un servidor RARP especializado. Este servidor, que responde a las solicitudes RARP, puede ser también un simple ordenador conectado a la red. Sin embargo, tiene que tener guardadas todas las direcciones MAC asociadas a las direcciones IP. Cuando un usuario de la red envíe una solicitud RARP a la red, solo un servidor de este tipo será capaz de responder a ella.

Dado que el usuario solicitante no conoce su dirección IP, debe enviar el paquete de datos (la solicitud) a las capas más bajas de la red como difusión. Esto significa que el paquete se envía a todos los usuarios al mismo tiempo. Sin embargo, solo responde el servidor RARP. Si hay varias respuestas, el solicitante solo utiliza la primera respuesta que le llega. Los formatos de la solicitud y la respuesta son muy similares en su construcción, algo que ya sucede en ARP.

La siguiente información se encuentra contenida en campos individuales:

  • Hardware Address Space: en estos dos bytes se especifica el tipo de dirección del hardware.
  • Protocol Address Space: este campo de dos bytes determina el tipo de protocolo de red.
  • Hardware Address Length: estos 8 bits establecen la longitud n de la dirección del hardware.
  • Protocol Address Length: con este campo se determina la longitud m de la dirección de red.
  • Opcode: este campo de dos bytes indica de qué operación se trata (código de operación). Una solicitud RARP tiene valor 3, y la respuesta correspondiente, valor 4.
  • Source Hardware Address: aquí se indica la dirección MAC del solicitante. La longitud real de este campo es n y la determina el valor del campo “Hardware Adress Length”. En una red Ethernet típica hablamos de unos 6 bytes.
  • Source Protocol Address: en teoría, en este campo aparece la dirección IP del solicitante, pero dado que si se solicita no se conoce, el campo se muestra indefinido. Por el contrario, en la respuesta se encuentra la dirección IP del servidor en este campo. La longitud de este campo es m y depende de la longitud de la dirección del protocolo (Protocol Address Length). Por lo general, el campo tiene la longitud de una dirección IPv4, es decir, 4 bytes.
  • Target Hardware Address: este campo contiene la dirección MAC de destino. Puesto que una solicitud RARP no tiene un destino específico, aquí también se recoge la dirección del solicitante. En la respuesta, el servidor incluye además la dirección del cliente solicitante. Este campo también tiene longitud n y, en el caso de una red Ethernet, cuenta con 6 bytes.
  • Target Hardware Address: este último campo continúa indefinido en una solicitud y contiene en la respuesta del servidor la información que realmente se busca: la dirección IP del usuario de la red. Este campo también tiene longitud m, generalmente 4 bytes.

Sin embargo, los protocolos ARP y RARP tienen diferencias notables. En primer lugar, ambos se diferencian en los datos, obviamente. Mientras que en la solicitud RARP se conoce la dirección MAC propia y se solicita la dirección IP correspondiente, con ARP sucede justo lo contrario: se conoce la dirección IP y debe descubrirse la dirección MAC. Ambos protocolos se diferencian también por el contenido de sus campos de operación: en este caso, ARP conoce ambos valores 1 (para una solicitud) y 2 (para una respuesta). Por el contrario, RARP utiliza los valores 3 y 4. De esta manera, el servidor es capaz de reconocer según el código de la operación si se trata de ARP o RARP.

Problemas con Reverse ARP

El Reverse Address Resolution Protocol tiene algunas desventajas que han hecho que, finalmente, se viera sustituido por uno más nuevo. Por ejemplo, para poder utilizar el protocolo correctamente, el servidor RARP debe encontrarse en la misma red física. El ordenador envía la solicitud RARP al nivel más bajo de la capa de red. Por lo tanto, no es posible que un router transmita el paquete. A todo ello se suma que RARP no es capaz de gestionar subnetting, ya que no se puede transmitir ningún tipo de máscara de subred. Si la red está dividida en subredes múltiples, en cada una de ellas tiene que haber un servidor RARP disponible.

Además, con la solicitud, el usuario conoce únicamente cuál es su dirección IP. Como ya hemos mencionado anteriormente, no incluye una máscara de subred, ni permite obtener información sobre la puerta de enlace. Por lo tanto, no es posible configurar el ordenador en una red moderna. Estos inconvenientes son los que finalmente han conducido al desarrollo de BOOTP y DHCP.