LinuxCommandLibrary

arpd

Manage ARP (Address Resolution Protocol) table

SYNOPSIS

arpd [-d] [-f[FILE]] [INTERFACE]

PARAMETERS

-d
    Do not daemonize; run in foreground for debugging and logging.

-f [FILE]
    Read IP addresses from FILE instead of kernel ARP table (/proc/net/arp).

INTERFACE
    Optional network interface name to monitor (default: all interfaces).

DESCRIPTION

arpd is a userspace daemon designed to listen for ARP (Address Resolution Protocol) requests on specified network interfaces and respond with the corresponding MAC addresses for locally configured IP addresses. It operates alongside or as an alternative to the kernel's built-in ARP resolution, providing more flexibility in complex networking scenarios such as bridges, virtual private networks (VPNs), or environments requiring proxy ARP functionality.

The daemon reads the list of local IP addresses either from the kernel's ARP table (via /proc/net/arp) or from a custom file specified with the -f option. This allows administrators to statically define IPs for which arpd should respond, useful when dynamic kernel updates are undesirable or unavailable. By default, arpd daemonizes itself (runs in the background), but the -d flag keeps it in the foreground for debugging.

arpd binds to raw sockets on the given interface(s), requiring root privileges. It helps mitigate ARP storms, ensures reliable layer 2 resolution in multi-homed setups, and is particularly handy in embedded systems or containers where kernel capabilities might be limited. However, in standard Linux deployments, the kernel's ARP handling is efficient, making arpd niche.

CAVEATS

Requires root privileges for raw socket access. Rarely used today due to robust kernel ARP; misconfiguration may expose MAC/IP mappings unnecessarily or cause ARP duplication.

USAGE EXAMPLE

arpd -d eth0
Run in foreground on interface eth0, responding to ARP requests for its IPs.

FILE FORMAT

When using -f FILE, format as IP address per line, e.g.:
192.168.1.1
10.0.0.1

HISTORY

Part of the iproute2 suite, developed by Alexey N. Kuznetsov in the late 1990s for advanced routing tools. Included in Linux distributions since early 2000s but sees limited modern use.

SEE ALSO

arp(8), arping(8), ip-neighbor(8)

Copied to clipboard