Mapeo de direcciones IP a direcciones MAC
El protocolo ARP ofrece dos funciones básicas:
Resolución de direcciones IPv4 a direcciones MAC.
Mantenimiento de una caché de las asignaciones.
Resolución de direcciones IPv4 a direcciones MAC
Para que una trama se coloque en los medios de la LAN, debe contar con una dirección MAC de destino. Cuando se envía un paquete a la capa de Enlace de datos para que se lo encapsule en una trama, el nodo consulta una tabla en su memoria para encontrar la dirección de la capa de Enlace de datos que se mapea a la dirección IPv4 de destino. Esta tabla se denomina tabla ARP o caché ARP. La tabla ARP se almacena en la RAM del dispositivo.
Cada entrada o fila de la tabla ARP tiene un par de valores: una dirección IP y una dirección MAC. La relación entre los dos valores se denomina mapa, que simplemente significa que usted puede localizar una dirección IP en la tabla y descubrir la dirección MAC correspondiente. La tabla ARP almacena el mapeo de los dispositivos de la LAN local en la memoria caché.
Para comenzar el proceso, un nodo transmisor intenta localizar en la tabla ARP la dirección MAC mapeada a un destino IPv4. Si este mapa está almacenado en la tabla, el nodo utiliza la dirección MAC como la MAC de destino en la trama que encapsula el paquete IPv4. La trama se codifica entonces en los medios de la red.
Mantenimiento de una tabla ARP
La tabla ARP se mantiene dinámicamente. Existen dos maneras en las que un dispositivo puede reunir direcciones MAC. Una es monitorear el tráfico que se produce en el segmento de la red local. A medida que un nodo recibe tramas de los medios, puede registrar las direcciones IP y MAC de origen como mapeos en la tabla ARP. A medida que las tramas se transmiten en la red, el dispositivo completa la tabla ARP con los pares de direcciones.
Otra manera en la que un dispositivo puede obtener un par de direcciones es emitir una solicitud de ARP. El ARP envía un broadcast de Capa 2 a todos los dispositivos de la LAN Ethernet. La trama contiene un paquete de solicitud de ARP con la dirección IP del host de destino. El nodo que recibe la trama y que identifica la dirección IP como si fuera la suya responde enviando un paquete de respuesta de ARP al emisor como una trama unicast. Esta respuesta se utiliza entonces para crear una entrada nueva en la tabla ARP.
Estas entradas dinámicas de la tabla MAC tienen una marca horaria similar a la de las entradas de la tabla MAC en los switches. Si un dispositivo no recibe una trama de un determinado dispositivo antes de que venza la marca horaria, la entrada para este dispositivo se elimina de la tabla ARP.
Además, pueden ingresarse entradas estáticas de mapas en una tabla ARP, pero esto no sucede con frecuencia. Las entradas estáticas de la tabla ARP caducan cuando pasa el tiempo y deben eliminarse en forma manual.
Creación de la trama
¿Qué hace un nodo cuando debe crear una trama y la caché ARP no contiene un mapa de una dirección IP hacia una dirección MAC de destino? Cuando el ARP recibe una solicitud para mapear una dirección IPv4 a una dirección MAC, busca el mapa almacenado en su tabla ARP. Si no encuentra la entrada, la encapsulación del paquete IPv4 no se realiza y los procesos de Capa 2 notifican al ARP que necesita un mapa.
Los procesos ARP envían entonces un paquete de solicitud de ARP para descubrir la dirección MAC del dispositivo de destino de la red local. Si un dispositivo que recibe la solicitud tiene la dirección IP de destino, responde con una respuesta ARP. Se crea un mapa en la tabla ARP. Los paquetes para esa dirección IPv4 pueden ahora encapsularse en tramas.
Si ningún dispositivo responde a la solicitud de ARP, el paquete se descarta porque no puede crearse una trama. Esta falla de encapsulación se informa a las capas superiores del dispositivo. Si el dispositivo es un dispositivo intermediario, como por ejemplo, un router, las capas superiores pueden optar por responder al host de origen con un error en un paquete ICMPv4.
Destinos fuera de la red local
Todas las tramas deben enviarse a un nodo de un segmento de la red local. Si el host IPv4 de destino se encuentra en la red local, la trama utilizará la dirección MAC de este dispositivo como la dirección MAC de destino.
Si el host IPv4 de destino no se encuentra en la red local, el nodo de origen necesita enviar la trama a la interfaz del router que es el gateway o el siguiente salto que se utiliza para llegar a dicho destino. El nodo de origen utilizará la dirección MAC del gateway como dirección de destino para las tramas que contengan un paquete IPv4 dirigido a hosts que se encuentren en otras redes.
La dirección de gateway de la interfaz del router se almacena en la configuración IPv4 de los hosts. Cuando un host crea un paquete para un destino, compara la dirección IP de destino con su propia dirección IP para determinar si las dos direcciones IP se encuentran en la misma red de Capa 3. Si el host receptor no se encuentra en la misma red, el origen utiliza el proceso de ARP para determinar una dirección MAC para la interfaz del router que sirve de gateway.
En caso de que la entrada de gateway no se encuentre en la tabla, el proceso de ARP normal enviará una solicitud de ARP para recuperar la dirección MAC asociada con la dirección IP de la interfaz del router.
ARP proxy
Hay ocasiones en las que un host puede enviar una solicitud de ARP con el objetivo de mapear una dirección IPv4 fuera del alcance de la red local. En estos casos, el dispositivo envía solicitudes de ARP para direcciones IPv4 que no se encuentran en la red local en vez de solicitar la dirección MAC asociada a la dirección IPv4 del gateway. Para proporcionar una dirección MAC para estos hosts, una interfaz de router puede utilizar un ARP proxy para responder en nombre de estos hosts remotos. Esto significa que la caché de ARP del dispositivo solicitante contendrá la dirección MAC del gateway mapeada a cualquier dirección IP que no se encuentre en la red local. Con el proxy ARP, una interfaz de router actúa como si fuera el host con la dirección IPv4 solicitada por la solicitud de ARP. Al "simular" su identidad, el router acepta la responsabilidad de enrutar paquetes al destino "real".
Uno de los usos que se le da a dicho proceso es cuando una implementación más antigua de IPv4 no puede determinar si el host de destino se encuentra en la misma red lógica que el origen. En estas implementaciones, el ARP siempre envía solicitudes de ARP para la dirección IPv4 de destino. Si el ARP proxy se desactiva en la interfaz del router, estos hosts no pueden comunicarse fuera de la red local.
Otro caso en el que se utiliza el ARP proxy es cuando un host cree que está directamente conectado a la misma red lógica que el host de destino. Esto ocurre generalmente cuando un host se configura con una máscara inapropiada.
Tal como se muestra en la figura, el Host A se configuró inapropiadamente con una máscara de subred /16. Este host cree que está directamente conectado a la red 172.16.0.0 /16 en vez de a la subred 172.16.10.0 /24.
Cuando se intenta comunicar con cualquier host IPv4 en el intervalo de 172.16.0.1 a 172.16.255.254, el Host A enviará una solicitud de ARP para esa dirección IPv4. El router puede utilizar un ARP proxy para responder a las solicitudes de dirección IPv4 del Host C (172.16.20.100) y el Host D (172.16.20.200). Como resultado, el Host A tendrá entradas para estas direcciones mapeadas a la dirección MAC de la interfaz e0 del router (00-00-0c-94-36-ab).
Otro uso que se le puede dar al ARP proxy es cuando un host no está configurado con un gateway por defecto. El ARP proxy puede ayudar a que los dispositivos de una red alcancen subredes remotas sin la necesidad de configurar el enrutamiento o un gateway por defecto.
Eliminación de mapeos de direcciones
Para cada dispositivo, un temporizador de caché de ARP elimina las entradas ARP que no se hayan utilizado durante un período de tiempo especificado. Los tiempos difieren dependiendo del dispositivo y su sistema operativo. Por ejemplo, algunos sistemas operativos de Windows almacenan las entradas de caché de ARP durante 2 minutos. Si la entrada se utiliza nuevamente durante ese tiempo, el temporizador ARP para esa entrada se extiende a 10 minutos.
También pueden utilizarse comandos para eliminar manualmente todas o algunas de las entradas de la tabla ARP. Después de eliminar una entrada, el proceso para enviar una solicitud de ARP y recibir una respuesta ARP debe ocurrir nuevamente para ingresar el mapa en la tabla ARP.
Broadcasts de ARP: Problemas
Sobrecarga en los medios
Todos los dispositivos de la red local reciben y procesan una solicitud de ARP debido a que es una trama de broadcast. En una red comercial típica, estos broadcasts tendrían probablemente un impacto mínimo en el rendimiento de la red. Sin embargo, si un gran número de dispositivos se encendiera y todos comenzaran a acceder a los servicios de la red al mismo tiempo, podría haber una disminución del rendimiento durante un período de tiempo breve. Por ejemplo, si todos los estudiantes de una práctica de laboratorio inician sesión en computadoras del aula e intentan acceder a Internet al mismo tiempo, podría haber demoras.
Sin embargo, una vez que los dispositivos envían los broadcasts de ARP iniciales y que aprenden las direcciones MAC necesarias, se minimizará todo impacto en la red.
Seguridad
En algunos casos, la utilización del ARP puede ocasionar un riesgo potencial de seguridad. La suplantación ARP o el envenenamiento ARP es una técnica que utiliza un atacante para introducir una asociación de direcciones MAC incorrecta en una red emitiendo solicitudes de ARP falsas. Un atacante falsifica la dirección MAC de un dispositivo y a continuación pueden enviarse tramas al destino equivocado.
La configuración manual de asociaciones ARP estáticas es una manera de evitar el ARP spoofing. Las direcciones MAC autorizadas pueden configurarse en algunos dispositivos de red para que limiten el acceso a la red para sólo los dispositivos indicados.