Route and Address Scopes
The concept of scope was introduced in the section "Scope" in Chapter 30. Let's see here how the scopes described in that section are defined by the kernel, and see some examples of their use.

Figure 32-2. Generic hash table and use of lists
The kernel defines an rt_scope_t enum that lists
possible scopes in include/linux/rtnetlink.h. Its
values range from 0 to 255, where 0 (RT_SCOPE_UNIVERSE)
represents the broadest scope. The kernel actually uses only a few values. The others are
left to the discretion of the user; at the moment, there are no practical uses for them.
Route Scopes
The scope
of a route is saved in
the fa_scope field of the fib_alias data structure (see Figure 34-1 in Chapter 34). Here
are the main scopes used by the IPv4 routing code, in order of increasing scope:
-
RT_SCOPE_NOWHERE This value, which was not listed in Chapter 30, is treated by the code as illegal. The literal meaning is that the route does not lead anywhere, which basically means there is no route to the destination.
-
RT_SCOPE_HOST Examples of these routes are the ones created automatically when configuring IP addresses on the local interfaces (see the section "Adding an IP address").
-
RT_SCOPE_LINK This includes routes to the local network (as defined by the netmask) and to the subnet broadcast addresses derived from locally configured addresses (see the section "Adding an IP address ...
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