arpd

Userspace ARP cache daemon with persistent storage.

TLDR

Start the ARP daemon on an interface, using a database file
$ sudo arpd -b [/var/lib/arpd/arpd.db] [eth0]
Also actively resolve addresses (send up to N broadcast queries)
$ sudo arpd -a [3] -b [/var/lib/arpd/arpd.db] [eth0]
Dump the ARP database to standard output and exit
$ arpd -l -b [/var/lib/arpd/arpd.db]
Suppress kernel broadcast queries (let arpd do the asking)
$ sudo arpd -k [eth0]

SYNOPSIS

arpd [-lkh?] [-a N] [-b dbase] [-B number] [-f file] [-p interval] [-n time] [-R rate] [interface ...]

DESCRIPTION

arpd is a userspace ARP daemon that collects ARP information and stores it in a database. It can answer ARP requests from the kernel cache, reducing ARP traffic on large networks.The daemon maintains a persistent ARP database that survives reboots, improving network performance and reducing broadcast traffic.

PARAMETERS

-l

Dump the arpd database (interface index, IP address, MAC address) to standard output and exit
-a N
Actively send broadcast ARP queries, making up to N attempts before marking a host dead (otherwise arpd only listens passively)
-b file
Location of the database file (default: /var/lib/arpd/arpd.db)
-f file
Read and preload the database from a text file in the format produced by -l
-k
Suppress broadcast ARP queries sent by the kernel, so arpd performs the negotiation itself
-n time
Timeout of the negative cache in seconds (default: 60)
-p interval
Interval in seconds between polls of the kernel ARP table (default: 30)
-R rate
Maximum steady rate of broadcasts sent by arpd, in packets per second (default: 1)
-B number
Number of broadcasts arpd may send back to back (default: 3)
interface
Network interface(s) to monitor

INSTALL

sudo apt install iproute2
sudo pacman -S iproute2
sudo zypper install iproute2
brew install iproute2
nix profile install nixpkgs#iproute2

CAVEATS

Rarely needed on modern networks. May cause issues if the ARP cache becomes stale. Typically only useful on very large layer-2 networks. To use arpd, the kernel must be configured to push unresolved addresses to it via app_solicit in /proc/sys/net/ipv4/neigh/iface/.

HISTORY

arpd is part of the iproute2 package, providing userspace ARP table management for specialized networking scenarios.

SEE ALSO

arp(8), ip-neighbour(8)

RESOURCES

Source code