Las tablas ARP establecen enlaces entre las capas de protocolo y de 'link' (en caso de una red local Ethernet, sería entre dirección IP y dirección MAC). Cada host de una subred necesita conocer la dirección física de los demás para poder mandar paquetes a los destinatarios adecuados. Estas direcciones se almacenan en un caché ARP.
En caso de no conocer la dicha dirección MAC, se hace una petición de broadcast (por ejemplo cuando se enciende el equipo) que sería cómo "Hola ! Quién es la dirección IP w.x.y.z ?". La máquina con tal dirección IP contesta : "Yo soy la máquina w.x.y.z y mi MAC es 00:ad:f3:b1:22:4e". Entonces, nuestra máquina almacena esta MAC en su caché.
El Objeto 'neighbour' del comando ip gestiona el cache ARP. Estos son algunos ejemplos:
mrmime:~# ip neigh ls 192.168.2.5 dev eth0 lladdr 00:c0:ca:15:80:9c nud reachable 192.168.2.34 dev eth0 lladdr 00:05:1c:01:9d:c3 nud delay 192.168.2.72 dev eth0 lladdr 00:05:1c:01:6c:a9 nud reachable 192.168.2.1 dev eth0 lladdr 00:c0:ca:15:81:07 nud reachable 192.168.2.3 dev eth0 lladdr 00:01:02:ad:08:da nud stale 192.168.2.70 dev eth0 lladdr 00:40:f6:2c:27:13 nud reachable 192.168.2.21 dev eth0 lladdr 00:50:fc:42:07:b4 nud reachable 192.168.2.52 dev eth0 lladdr 00:05:1c:01:5e:1b nud delay mrmime:~# |
Puedo borrar una entrada:
mrmime:~# ip n d 192.168.2.52 dev eth0 mrmime:~# ip n l 192.168.2.5 dev eth0 lladdr 00:c0:ca:15:80:9c nud reachable 192.168.2.34 dev eth0 lladdr 00:05:1c:01:9d:c3 nud reachable 192.168.2.72 dev eth0 lladdr 00:05:1c:01:6c:a9 nud reachable 192.168.2.1 dev eth0 nud failed 192.168.2.3 dev eth0 lladdr 00:01:02:ad:08:da nud reachable 192.168.2.70 dev eth0 lladdr 00:40:f6:2c:27:13 nud reachable 192.168.2.21 dev eth0 lladdr 00:50:fc:42:07:b4 nud reachable 192.168.2.52 dev eth0 lladdr 00:05:1c:01:5e:1b nud reachable |
Que paso ? Realmente la entrada correspondiente no desaparecerá de inmediato. Se quedara hasta que el último cliente que la usa la 'libere'
Los otros comandos para añadir o cambiar una entrada son:
ip neigh add
ip neigh change