Chapter 28. Neighboring Subsystem: Address Resolution Protocol (ARP)

Chapter 27 described the services provided by the infrastructure common to all neighboring protocols. This chapter will show how ARP, the protocol used by IPv4, fits into the modular design of the infrastructure. Readers familiar with ARP may have seen the outlines of its behavior in the description of the general neighboring subsystem in the previous chapters, although the nomenclature used to describe the subsystem is drawn more from IPv6’s ND protocol than from ARP.

The presence of a common infrastructure makes the design and implementation of ARP simpler. To cover ARP in this chapter, we look at the following points:

  • How the neigh_table structure arp_tbl is initialized to tune the behavior of the common neighboring infrastructure for ARP

  • How the neigh_parms structure is initialized to tune the behavior of the common neighboring infrastructure for ARP (e.g., to set timer expiration periods)

  • How the reception of ARP packets (i.e., ARPOP_REQUEST/ARPOP_REPLY) interacts with the neighboring subsystem, and how the solicit method works

  • How the neigh_ops structure is initialized depending on the device type and the type of L3 address (unicast, multicast, or broadcast)

  • How proxy ARP uses the common infrastructure

  • How the behavior of ARP can be further tailored by means of compile options and the explicit configuration of special features

  • How the kernel can hand some work over to a user-space daemon, arpd, to handle a particularly ...

Get Understanding Linux Network Internals now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.