5.10. Comprobación de las tablas ARP

En ciertas ocasiones, es útil poder ver o alterar el contenido de las tablas ARP del núcleo, por ejemplo, cuando usted sospecha que una dirección IP duplicada es la casa de algún problema intermitente en su red. La herramienta arp se hizo para situaciones como ésta. Sus opciones son:
    arp [-v] [-t tipohw] -a [hostname]
    arp [-v] [-t tipohw] -s hostname dirección hardware
    arp [-v] -d máquina [hostname…]

Todos los argumentos hostname pueden ser nombres simbólicos, o direcciones IP en notación de cuaterna.

El primer comando muestra el registro de la tabla correspondiente a la dirección IP o máquina especificada, o si no se pasa ninguna, se mostrarán todos los registros. Por ejemplo, al invocar arp en vlager obtendríamos:
    # arp -a
    IP address      HW type                 HW address
    172.16.1.3      10Mbps Ethernet         00:00:C0:5A:42:C1
    172.16.1.2      10Mbps Ethernet         00:00:C0:90:B3:42
    172.16.2.4      10Mbps Ethernet         00:00:C0:04:69:AA

Que muestra las direcciones Ethernet de vlager, vstout y vale.

Se puede limitar el listado a un tipo de hardware especificado usando la opción –t. Los valores posibles son ether, ax25, o pronet, y se refieren a Ethernet de 10Mbps, AMPR AX.25, y equipos token ring IEEE 802.5, respectivamente.

La opción –s se usa para añadir permanentemente la dirección Ethernet de la máquina especificada a las tablas ARP. El argumento dirección hawdware especifica la dirección de hardware, que por omisión se supone que es una dirección Ethernet especificada como seis bytes en hexadecimal separados por dos puntos. Usted puede incluso definir las direcciones de hardware para otros tipos de hardware, usando la opción –t.

Por alguna razón, las peticiones ARP para máquinas remotas fallan algunas veces, por ejemplo cuando el controlador ARP no funciona, o cuando alguna otra máquina se identifica erróneamente como si ella misma tuviera esa dirección IP. Este problema requiere que usted añada manualmente una dirección IP en la tabla ARP. También es una forma (muy drástica) de protegerse a sí mismo de otras máquinas de su Ethernet que tratan de hacerse pasar por otras.

El uso de arp con el modificador –d borra todas las entradas ARP referentes a la máquina dada. Este modificador puede ser usado para forzar a la interfaz a intentar obtener la dirección Ethernet correspondiente a la dirección IP en cuestión. Esto es útil cuando un sistema mal configurado ha emitido una información ARP errónea (por supuesto, usted debe reconfigurar la máquina estropeada primero).

La opción –s también puede usarse para implementar un proxy ARP. Esta es una técnica especial, en la que una máquina, llamémosla gate, actúa como una pasarela a otra máquina llamada fnord simulando que las dos direcciones hacen referencia a la misma máquina, en este caso gate. Esto se consigue incluyendo una entrada ARP para fnord que apunte a su propia interfaz Ethernet. Cuando una máquina envíe una petición ARP para fnord, gate devolverá una respuesta con su propia dirección Ethernet. La máquina que hizo la petición enviará entonces todos los datagramas a gate, que se los pasará a fnord.

Estas virguerías pueden ser necesarias cuando usted quiera acceder a fnord desde una máquina DOS con una implementación errónea de TCP, que no entienda el enrutado demasiado bien. Cuando use proxy ARP, éste le aparecerá a la máquina DOS como si fnord estuviera en la subred local, así que no tiene que saber cómo enrutar a través de una pasarela.

Otra aplicación útil del proxy ARP es cuando una de sus máquinas actúe como una pasarela para otra máquina sólo temporalmente, por ejemplo a través de un enlace telefónico. En un ejemplo anterior, ya nos encontramos con que el portátil vlite se conectaba a vlager a través de un enlace PLIP de vez en cuando. Por supuesto, esta aplicación servirá sólo si la dirección de la máquina para la que quiere actuar como proxy ARP está en la misma subred que su pasarela. vstout podría hacer de proxy ARP para cualquier máquina de la red de la Cervecera (172.16.1.0), pero nunca para una máquina de la red de la Vinatera (172.16.2.0).

La invocación adecuada para hacer de proxy ARP para fnord se da abajo. Por supuesto, la dirección Ethernet dada debe ser la de gate:

    # arp -s fnord 00:00:c0:a1:42:e0 pub

Para borrar el registro del proxy ARP:
    # arp -d fnord