Tunable ARP Options
The kernel allows the user to tune the ARP behavior via both the /proc filesystem and compile-time options . We will see details on how to configure those features, their allowed settings, and their defaults in the section "Tuning via /proc Filesystem" in Chapter 29, but let's introduce the main ones here.
Compile-Time Options
Two ARP options can be enabled at compile time:
-
ARPD (CONFIG_ARPD) This allows a user-space daemon to handle ARP, which can improve performance on a very large and busy network. See the section "ARPD."
-
UNSOLICITED ARP (CONFIG_IP_ACCEPT_UNSOLICITED_ARP) By default, when a host receives an
ARPOP_REPLYfor which it had no pendingARPOP_REQUEST, the kernel drops the reply. Sometimes, however, it could be useful to accept it. This feature, which establishes that unsolicited replies are accepted, is actually not supported by Linux anymore: the code is commented out (in the functionarp_process) and the kernel configuration menu does not provide any way to enable it.Do not confuse the effect of this feature with gratuitous ARP.
ARP_UNSOLICITEDaccepts unsolicitedARPOP_REPLYpackets, whereas gratuitous ARP causes a "push" update via anARPOP_REQUEST. As Figure 28-18 shows, only unicast unsolicited requests are accepted.
/proc Options
Most of those features can be configured both globally and on a per-device basis.
Code can check whether they are enabled by using the IN_DEV_
XXX macros defined in include/linux/inetdevice.h (e.g., IN_DEV_ARP_ANNOUNCE ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access