ARPD Daemon

Alexey Kuznetsov, kuznet@ms2.inr.ac.ru

some_negative_number, 20 Sep 2001
arpd is daemon collecting gratuitous ARP information, saving it on local disk and feeding it to kernel on demand to avoid redundant broadcasting due to limited size of kernel ARP cache.

Description

The format of the command is:

       arpd OPTIONS [ INTERFACE [ INTERFACE ... ] ]

OPTIONS are:

INTERFACE is name of networking inteface to watch. If no interfaces given, arpd monitors all the interfaces. In this case arpd does not adjust sysctl parameters, it is supposed user does this himself after arpd is started.

Signals

arpd exits gracefully syncing database and restoring adjusted sysctl parameters, when receives SIGINT or SIGTERM. SIGHUP syncs database to disk. SIGUSR1 sends some statistics to syslog. Effect of another signals is undefined, they may corrupt database and leave sysctl parameters in an unpredictable state.

Note

In order to arpd be able to serve as ARP resolver, kernel must be compiled with the option CONFIG_ARPD and, in the case when interface list is not given on command line, variable app_solicit on interfaces of interest should be set in /proc/sys/net/ipv4/neigh/*. If this is not made arpd still collects gratuitous ARP information in its database.

Examples

  1. Start arpd to collect gratuitous ARP, but not messing with kernel functionality:
       arpd -b /var/tmp/arpd.db
    
  2. Look at result after some time:
       killall arpd
       arpd -l -b /var/tmp/arpd.db
    
  3. To enable kernel helper, leaving leading role to kernel:
       arpd -b /var/tmp/arpd.db -a 1 eth0 eth1
    
  4. Completely replace kernel resolution on interfaces eth0 and eth1. In this case kernel still does unicast probing to validate entries, but all the broadcast activity is suppressed and made under authority of arpd:
       arpd -b /var/tmp/arpd.db -a 3 -k eth0 eth1
    
    This is mode which arpd is supposed to work normally. It is not default just to prevent occasional enabling of too aggressive mode occasionally.