I have some rules in my routing tables that the kernel automatically adds when I configure an interface on my host.
$ ip route show table local
broadcast 10.0.0.0 dev eth1 proto kernel scope link src 10.0.0.3
local 10.0.0.3 dev eth1 proto kernel scope host src 10.0.0.3
broadcast 10.0.0.255 dev eth1 proto kernel scope link src 10.0.0.3
$ ip route show table main
default via 10.0.0.3 dev eth1
10.0.0.0/24 dev eth1 proto kernel scope link src 10.0.0.3
I'm trying to understand how Linux routing works, and I cannot figure out the purpose of the two broadcast entries in the local routing table.
For instance, in my understanding, a packet directed to 10.0.0.5
is routed according to the second rule in the main routing table, and not according
to rules in the local table.
Then, what packets are actually routed according to those broadcast rules? When these two rules are used?
Moreover, are the two "broadcast rules" in the local table /32
?