Creative Commons Reconocimiento-NoComercial-CompartirIgual 2.1
© 1999-2008 Joel Barrios Dueñas. Usted es libre de copiar, distribuir y comunicar públicamente la obra y hacer obras derivadas bajo las condiciones siguientes: a) Debe reconocer y citar al autor original. b) No puede utilizar esta obra para fines comerciales (incluyendo su publicación, a través de cualquier medio, por entidades con fines de lucro). c) Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Los derechos derivados de usos legítimos u otras limitaciones no se ven afectados por lo anterior. Licencia completa en castellano. La información contenida en este documento y los derivados de éste se proporcionan tal cual son y los autores no asumirán responsabilidad alguna si el usuario o lector hace mal uso de éstos.
ARP significa Address Resolution Protocol, o protocolo de resolución de direcciones. ARP se utiliza para supervisar y modificar la tabla de asignaciones de direcciones IP y direcciones MAC (Media Access Control). ARP utiliza un cache que consiste en una tabla que almacena las asignaciones entre nivel de enlace de datos y las direcciones IP del nivel de red. El nivel de enlace de datos se encarga de gestionar las direcciones MAC y el nivel de red de las direcciones IP. ARP asocia direcciones IP a las direcciones MAC, justo a la inversa del protocolo RARP que asigna direcciones MAC a las direcciones IP. Para reducir el número de peticiones ARP, cada sistema operativo que implementa el protocolo ARP mantiene una cache en la memoria RAM de todas las recientes asignaciones.
Visualizar el cache ARP actual.
arp -a |
Debe devolver algo similar a lo siguiente, en el caso de tratarse de un solo sistema:
m254.alcancelibre.org (192.168.1.254) at 00:14:95:97:27:E9 [ether] on eth0 |
Cuando se trata de un servidor intermediario (proxy), la tabla puede verse de este modo:
m051.redlocal.net (10.1.1.51) at 00:13:20:D0:09:1E [ether] on eth1 m046.redlocal.net (10.1.1.46) at 00:0F:1F:B1:71:14 [ether] on eth1 m073.redlocal.net (10.1.1.73) at 00:11:25:F6:93:F1 [ether] on eth1 m070.redlocal.net (10.1.1.70) at 00:11:25:F6:A2:52 [ether] on eth1 m040.redlocal.net (10.1.1.40) at 00:0D:60:6E:27:34 [ether] on eth1 m036.redlocal.net (10.1.1.36) at 00:0D:60:6E:25:FB [ether] on eth1 m011.redlocal.net (10.1.1.11) at 00:11:2F:C7:D0:D7 [ether] on eth1 |
El mandato arp acepta varias opciones más. Si se desea visualizar la información en estilo Linux, se utiliza el parámetro -e. ejemplo:
arp -e |
Lo anterior debe devolver una salida similar a la siguiente:
Address HWtype HWaddress Flags Mask Iface m051.redlocal.net ether 00:13:20:D0:09:1E C eth1 m046.redlocal.net ether 00:0F:1F:B1:71:14 C eth1 m073.redlocal.net ether 00:11:25:F6:A2:52 C eth1 m070.redlocal.net ether 00:11:25:F6:95:8E C eth1 m040.redlocal.net ether 00:0D:60:6E:26:6F C eth1 m036.redlocal.net ether 00:11:25:F6:5F:81 C eth1 |
Si se desea observar lo anterior en formato numérico, se utiliza el parámetro -n. ejemplo:
arp -n |
Lo anterior debe devolver algo similar a lo siguiente:
Address HWtype HWaddress Flags Mask Iface 10.1.1.46 ether 00:0F:1F:B1:71:14 C eth1 10.1.1.70 ether 00:11:25:F6:A2:52 C eth1 10.1.1.73 ether 00:11:25:F6:93:F1 C eth1 10.1.1.40 ether 00:0D:60:6E:27:34 C eth1 10.1.1.34 ether 00:0D:60:6E:26:6F C eth1 |
Si se desea especificar una interfaz en particular, se utiliza el parámetro -i seguido del nombre de la interfaz. Ejemplo:
arp -i eth0 |
Lo anterior debe regresar algo similar a lo siguiente, en el caso de tratarse de un solo sistema:
Address HWtype HWaddress Flags Mask Iface m254.alcancelibre.org ether 00:14:95:97:27:E9 C eth0 |
Si se desea añadir un registro manualmente, se puede hacer utilizando el parámetro -s seguido del nombre de un anfitrión y la dirección MAC correspondiente. Ejemplo:
arp -s m200.redlocal.net 00:08:A1:84:18:AD |
Si se quiere eliminar un registro de la tabla, solo se utiliza el parámetro -d seguido del nombre del anfitrión a eliminar. Ejemplo:
arp -d m200.redlocal.net |
Para limpiar todo el cache, se puede utilizar un bucle como el siguiente:
for i in `arp -n | awk '{print $1}' | grep -v Address`
do
arp -d $i
done
|
En el guión anterior se pide crear la variable i a partir de arp con la opción -n para devolver las direcciones numéricas, mostrando a través de awk solo la primera columna de la tabla generada, y eliminando la cadena de caracteres Address. Esto genera una lista de direcciones IP que se asignan como valores de la variable i en el bucle, donde se elimina cada una de estas direcciones IP utilizando arp -d.
El objeto de limpiar el cache de ARP es permitir corregir los registros de la tabla en ciertos escenarios donde, por ejemplo, un servidor o estación de trabajo fue encendido con una dirección IP que ya está uso.
Alcance Libre
http://www.alcancelibre.org/staticpages/index.php/como-arp