Address Resolution Protocol
El Protocolo de resolución de direcciones tiene como objetivo diferenciar las direcciones IP de las direcciones físicas.
Para poder inicializar una comunicación entre una computadora y otra primero se tiene que descubrir cual es la dirección física del nodo del destino.
Cuando el host quiere empezar a comunicarse con un socio local, busca la dirección IP del otro en su tabla de ARP, que normalmente se mantiene en memoria. Si no existe una entrada para esa dirección IP, el host difunde una solicitud de ARP que contiene la dirección IP de destino.
ARP (Protocolo de Resolución de direcciones)
Antes de enviar un datagrama entre dos estaciones de una LAN, debe envolverse en una trama con una cabecera y una cola. La trama se envía a la su tarjeta de interfaz de red cuya dirección física coincide con la dirección física de destino en la cabecera de la trama.
Por tanto, para enviar un datagrama por una LAN, hay que descubrir cuál es la dirección física del nodo de destino.
Afortunadamente, existe un procedimiento para descubrir automáticamente la dirección física. El Protocolo de resolución de direcciones (AR.P - Address Resolution Protocol) ofrece un método de difusión para traducir automáticamente entre dirección de IP y dirección física.
Los sistemas de la red local usan ARP para descubrir información sobre su propia dirección física. Cuando un host quiere empezar a comunicarse con un socio local, busca la dirección de IP del otro en su tabla de ARP, que normalmente se mantiene en memoria. Si no existe una entrada para esa dirección de IP, el host difunde una solicitud de ARP que contiene la dirección de IP de destino, de acuerdo con la Figura.
El host de destino reconoce su dirección de IP y lee la consulta. Lo primero que hace el host destino es actualizar su propia tabla de traducción de direcciones con la dirección física del origen. Es lógico ya que, probablemente, el destino pronto empezará una conversación con el origen. El host destino envía de vuelta una respuesta que contiene su propia dirección de la interfaz hardware.
Cuando el origen recibe la respuesta, actualiza su tabla de ARP y ya está listo para transmitir datos por la LAN.
Figura: Para determinar la dirección física Pb de B, desde su dirección IP, Ib, (a) el anfitrión A transmite por difusión una solicitud ARP que contiene Ib a todas las máquinas en la subred, y (b) el anfitrión B envía una respuesta ARP que contiene el par (Ib,Pb).
ARP Sustituto (proxy ARP)
Los términos ARP sustituto (proxy, ARP) promiscuo y ARP hack, se refieren a la segunda técnica utilizada para transformar un solo prefijo IP de red en dos direcciones físicas. La técnica, que sólo se aplica en redes que utilizan ARP para convertir direcciones de red en direcciones físicas, se puede explicar mejor mediante un ejemplo. En la figura se ilustra la situación.
En la figura, dos redes comparten una sola dirección IP. Imagine que la etiquetada como Red Principal era la red original y segunda, etiquetada como Red Oculta, se agregó después. R, que es el ruteador que conecta las dos redes, sabe qué anfitriones residen en cada red física y utiliza ARP para mantener la ilusión de que solamente existe una red. Para dar esa apariencia, R mantiene totalmente oculta la localización de los anfitriones, permitiendo que las demás máquinas en la red se comuniquen como si estuvieran conectadas de manera directa. En nuestro ejemplo, cuando el anfitrión H1 necesita comunicarse con el anfitrión H4, primero llama a ARP para convertir la dirección IP de H4 en una dirección física. Una vez que tiene la dirección física, H1 puede enviarle directamente el datagrama.
Debido a que el ruteador R corre software proxy ARP, R captura la solicitud transmitida por difusión de Hi1 decide que la máquina en cuestión reside en la otra red física y responde la solicitud ARP enviando su propia dirección física. H1 recibe la respuesta ARP, instala la asociación en su tabla ARP y la utiliza para enviar a R los datagramas destinados a H4. Cuando R recibe un datagrama, busca en una tabla especial de ruteo para determinar cómo rutear el datagrama. R debe encaminar los datagramas destinados a H4 a través de la red oculta. a fin de permitir que los anfitriones en la red oculta alcancen anfitriones en la red principal, R también realiza el servicio de ARP sustituto (proxy ARP) en dicha red.
Los ruteadores que utilizan la técnica de ARP sustituto, tornan ventaja de una característica importante del protocolo ARP, a saber, la confianza. ARP está basado en la idea de que todas las máquinas cooperan y de que cualquier respuesta es legitima. La mayor parte de los anfitriones instalan asociaciones obtenidas por medio de ARP sin verificar su validez y sin mantener una consistencia. Por lo tanto, puede suceder que la tabla ARP asocie muchas direcciones IP en la misma dirección física, sin embargo, esto no viola las especificaciones del protocolo.
Algunas implantaciones de ARP no son tan poco exigentes como otras. En particular, las implementaciones ARP diseñadas para alertar a los administradores de posibles violaciones de seguridad les informarán siempre que dos direcciones IP distintas se transformen en la misma dirección física de hardware. El propósito de alertar al administrador es avisarle sobre el spoofing, situación en la que una máquina indica ser otra para poder interceptar paquetes. Las implantaciones de ARP en anfitriones que alertan a los administradores del posible spoofing no se pueden utilizar en redes que tienen ruteadores sustitutos ARP, ya que el software generarla mensajes con gran frecuencia.
La principal ventaja de ARP sustituto es que se puede agregar a un solo ruteador en una red sin alterar las tablas de ruteo en otros anfitriones o ruteadores en esa red. Por lo tanto, el software ARP sustituto (proxy ARP) oculta completamente los detalles de las conexiones físicas.
La principal desventaja de ARP sustituto es que no trabaja para las redes a menos que utilicen ARP para la definición de direcciones. Además, no se generaliza para topologías de red más complejas (por ejemplo, muchos ruteadores que interconectan dos redes físicas), ni incorpora una forma razonable para el ruteo. De hecho, la mayor parte de las implantaciones de ARP confía en los administradores para el mantenimiento manual de máquinas y direcciones, haciendo que se ocupe tiempo y se tenga propensión a los errores.
Figura: La técnica de APP sustituto (ARP hack) permite que una dirección de red se comparta entre dos redes físicas. El ruteador R contesta solicitudes ARP en cada red para los anfitriones en otra, proporcionando su dirección de hardware y ruteando datagramas de manera correcta en cuanto llegan. En esencia, R miente sobre las transformaciones de dirección IP a dirección física.
Una máquina puede enviar una solicitud ARP preguntando sobre su propia dirección IP. Propósitos:
RARP (ARP inverso)
Para ayudar a un nodo a descubrir su propia dirección de IP se diseñó una variante del ARP llamado ARP inverso (RARP - reverse ARP). El objetivo era que lo usasen las estaciones de trabajo sin disco y otros dispositivos que necesitasen obtener configuración de red de un servidor de red.
La estación que usa el protocolo ARP inverso difunde una petición en la que indica su dirección física y solicita su dirección de IP. Un servidor de la red, configurado con una tabla de direcciones físicas y las correspondientes direcciones de IP responde a la petición.
ARP inverso ha sido superado por el protocolo BOOTP y su versión mejorada, el Protocolo de configuración dinámica de host (DHCP - Dynamic Host Configuration Protocol). Estos protocolos son más potentes y se usan para conseguir un conjunto completo de parámetros de configuración de un sistema TCP/IP.
Figura Ejemplo de un intercambio en el que se utiliza el protocolo RARP. (a) la máquina A transmite por difusión una solicitud RARP especificándose como des- tino y (b) las máquinas autorizadas para proporcionar el servicio RARP (C y D) responden directamente a A.
El campo HARDWARE TYPE especifica un tipo de interfaz de hardware para el que el transmisor busca una respuesta; contiene el valor 1 para Ehternet De forma similar, el campo PROTOCOL TYPE especifica el tipo de dirección de protocolo de alto nivel que proporcionó el transmisor. contiene 080016 para la dirección IP. El campo OPERATION especifica una solicitud ARP (1), una respuesta ARP (2), una solicitud RARP (3) o una respuesta RARP (4). Los campos HLEN y PLEN permiten que ARP se utilice con redes arbitrarias ya que éstas especifican la longitud de la dirección de hardware y la longitud de la dirección del protocolo de alto nivel. El transmisor proporciona sus direcciones IP y de hardware, si las conoce, en los campos SENDER HA y SENDER IP.
Cuando realiza una solicitud, el transmisor también proporciona la dirección IP del objetivo (ARP) o la dirección de hardware del objetivo (RARP), utilizando los campos TARGET HA y TARGET IP. Antes de que la máquina objetivo responda, completa las direcciones faltantes, voltea los pares de objetivo y transmisor, y cambia la operación a respuesta. Por lo tanto, una respuesta transporta las direcciones tanto de hardware como de TP del solicitante original, lo mismo que las direcciones de hardware e IP de la máquina para la que se realizó asignación.
Dentro de una misma red física, las máquinas se comunican enviándose tramas físicas. Estas tramas van dirigidas a una máquina con una determinada dirección física. Observemos que las tramas Ethernet contienen un campo con la dirección física de la máquina destino (48 bits).
El problema que se nos plantea es cómo podemos conocer la dirección física de la máquina destino. Lo único que nosotros sabemos (recordemos el ejemplo introductorio a la capa de red) del destino es su dirección IP. Necesitamos por tanto obtener la dirección física de un ordenador a partir de su dirección IP. Esto es justamente la misión del protocolo ARP (Address Resolution Protocol, protocolo de resolución de direcciones).
Queremos enviar un mensaje desde la máquina A con dirección 194.18.133.5 a la máquina B con dirección 194.18.133.1. Sin embargo la trama física, que es lo que realmente se envía por el cable, necesita conocer la dirección física del destino.
El protocolo ARP funciona de la siguiente manera: A envía un mensaje a todas las máquinas de su red preguntando "¿Cuál es la dirección física de la máquina con dirección IP 194.18.133.1?". La máquina con dirección 194.18.133.1 advierte que la pregunta está dirigida a ella y responde a A con su dirección física (A3.BB.05.33.12.99). Entonces, A envía el mensaje a R.
Observemos que las preguntas ARP son de multidifusión (se envían a todas las máquinas). Estas preguntas llevan además la dirección IP y dirección física de la máquina que pregunta. La respuesta se envía directamente a la máquina que formuló la pregunta.
Tabla ARP (caché ARP)
Cada ordenador almacena una tabla de direcciones IP y direcciones físicas. Cada vez que formula una pregunta ARP y le responden, inserta una nueva entrada a su tabla. La primera vez que A quiera enviar un mensaje a B tendrá que difundir previamente una pregunta ARP, tal como hemos visto. Sin embargo, las siguientes veces que A envíe mensajes a B ya no será necesario realizar nuevas preguntas, ya que A habrá almacenado en su tabla la dirección física de B. Sin embargo, para evitar incongruencias en la red debido a posibles cambios de direcciones IP o adaptadores de red, se asigna un tiempo de vida de cierto número de segundos a cada entrada de la tabla. Cuando se agote el tiempo de vida de una entrada, ésta será eliminada de la tabla.
Las tablas ARP reducen el tráfico de la red al evitar preguntas ARP innecesarias. Pensemos ahora en distintas maneras para mejorar el rendimiento de la red. Después de una pregunta ARP, el destino conoce las direcciones IP y física del origen. Por lo tanto, podría insertar la correspondiente entrada en su tabla. Pero no sólo eso, sino que todas las estaciones de la red escuchan la pregunta ARP: podrían insertar también las correspondientes entradas en sus tablas. Como es muy probable que otras máquinas se comuniquen en un futuro con la primera, habremos reducido así el tráfico de la red aumentando su rendimiento.
Esto que hemos explicado es para comunicar dos máquinas conectadas a la misma red física. ¿Y si la otra máquina no estuviese conectada a nuestra red? Entonces tendríamos un encaminador que nos comunicase ambas redes. La máquina origen, si no la tiene en su tabla, preguntaría por ARP la dirección física del encaminador y le transferiría a éste el mensaje. Estos pasos se van repitiendo para cada red física hasta llegar a la máquina destino.
Protocolo ARP y las Máscaras de Control de acceso al Medio (MAC)
Antes de enviar un datagrama de IP entre dos estaciones de una LAN, este debe envolverse en una trama con una cabecera y una cola. La trama se envía a la tarjeta interfaz de red cuya dirección física coincide con la dirección que se incluyó en la cabecera del mensaje de IP. Por lo tanto, para enviar un datagrama por una LAN, hay que saber primero cuál es su identificador de red o (MAC) Máscara de Coltrol de acceso al Medio. ARP posee un método de difusión de IP para traducir automáticamente de dirección IP a dirección MAC o física y viceversa.
ARP asocia las direcciones físicas de Hardware a cada dirección IP lógica asignada a una interfaz de red, una Máscara de Control de Acceso al Medio: es un identificador de Hardware único que es asignado por el fabricante de la NIC. Las MAC son adjuntadas a las cabeceras de IP origen y destino de manera de identificar la dirección IP mas la MAC de un sistema remoto.
Por ejemplo:
00-02-b9-16-01-20
Las MAC contienen 48bits de longitud y son únicas, es un componente superior de la Capa de Enlace de Datos (OSI).
Los sistemas de red local LAN usan ARP para descubrir su propia dirección física y la de los sistemas vecinos. Cuando un sistema necesita comunicarse con un host local busca la dirección de IP en su tabla de enrrutamiento IP que normalmente se mantiene en memoria. Si no existe la IP en su tabla local, el HOST difunde una solicitud de ARP que contiene la dirección IP de destino.
El host de destino reconoce que se trata de su dirección IP y lee la consulta. Lo primero que hace el host destino es actualizar su propia tabla de traducción de direcciones con la dirección física del origen. Es lógico, ya que, probablemente el destino pronto empezará una conversación con el origen. El host destino pronto envía la respuesta que contiene su propia dirección física. Cuando el origen recibe la respuesta actualiza su tabla y se prepara para empezar a transmitir datos.
El envío de datos de una máquina a otra puede causar problemas si no se conoce la dirección física de la máquina receptora, y si no existe un sistema de resolución para determinar las direcciones.
El protocolo ARP (Protocolo de Resolución de Direcciones) tiene como función convertir las direcciones IP en direcciones físicas (de red y local), y al hacerlo, elimina la necesidad de que las aplicaciones sepan direcciones físicas. Esencialmente, ARP es una tabla con una lista de direcciones IP y sus direcciones físicas correspondientes.
Esta tabla se conoce como caché ARP. Cada línea de la
tabla contiene la siguiente
información:
· Indice IF: indica el puerto
físico
· Dirección física:
dirección física del dispositivo
·
Dirección IP : la dirección IP que corresponda a la
dirección
física
Cuando ARP recibe la dirección IP de un dispositivo receptor, busca en el caché ARP alguna coincidencia. Si encuentra alguna, devuelve la dirección física. Si el caché ARP no encuentra alguna coincidencia correspondiente a la dirección IP, envía un mensaje a la red. Este mensaje, conocido como solicitud ARP, es una difusión que se recibe en los dispositivos de la red local. La solicitud ARP contiene la dirección IP del dispositivo receptor deseado. Si un dispositivo reconoce la dirección IP como suya, envía un mensaje de respuesta con la dirección física de regreso a la máquina que generó la solicitud ARP, y ésta coloca la información en su caché ARP para uso futuro. De esta forma, el caché ARP puede determinar la dirección física de cualquier máquina basada en su dirección de IP. Siempre que un caché ARP recibe una solicitud ARP, éste utiliza la información incluida en la solicitud para actualizar su propia tabla. Por lo tanto, el sistema se puede adecuar en forma dinámica a direcciones físicas cambiantes y a nuevas adiciones a la red, sin tener que generar una solicitud ARP propia.
Escriba ( arp -a ) desde la interfaz de comados de Windows NT para visualizar un listado de las entradas de ARP almacenadas en la tabla local del equipo.
ARP suele utilizarse también para asociar o disociar direcciones IP a interfaces físicas partiendo de su dirección MAC, esto es en el caso común de los Routers o dispositivos de impresión conectados a la Red.
Conclusión
Con esta investigación se puede llegar a la conclusión que el Protocolo de Resolución de Direcciones es esencial para iniciar una comunicación entre un nodo y otro y posteriormente proceda el envio de datagramas, y además el encargado de diferenciar una dirección física de una dirección lógica (IP).