Chapter 26. Neighboring Subsystem: Concepts

This chapter describes why and when a neighboring protocol is used and lays out its major tasks. It is deliberately a general overview that makes only passing references to particular neighboring protocols such as ARP. It covers such general issues as:

  • The tasks taken on by a general neighboring infrastructure

  • Why caching is valuable

  • The states a neighbor entry in the cache can take

  • Reachability detection and Network Unreachability Detection (NUD)

  • What proxying is for

The terminology used in the Linux kernel source code follows the IPv6 neighbor discovery model described in RFC 2461 in the section "Neighboring Protocols,” but we will try to keep the discussion as protocol-independent as possible.

The terms L2 address, Layer two address, hardware address, MAC address, and link layer address are commonly used to refer to the same concept. In this chapter, we will mostly use the first term.

What Is a Neighbor?

A host is your neighbor if it is connected to the same LAN (i.e., you are directly connected to it through either a shared medium or a point-to-point link) and it is configured on the same L3 network. For example, on an IP network, you can say that two hosts are neighbors if they are connected to the same LAN and each has at least one interface on the same IP subnet. Two such hosts can speak directly using the protocol associated with the medium that connects them (e.g., Ethernet). Another way to define a neighbor is to say that a host must ...

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.