O seu entendimento de que um pacote direcionado a 10.0.0.5
é roteado pela segunda regra na tabela de roteamento principal está correto.
Além de enviar um pacote para um único destino (unicast), o Internet Protocol (IP) também permite enviar um pacote para todos os receptores em uma parte (segmento) específica de uma rede física (broadcast). Isso é usado, por exemplo, por clientes DHCP: Eles basicamente transmitem uma mensagem "olá, estou aqui, preciso de um endereço IP" para todos os computadores conectados localmente atrás de uma interface de rede e o computador com o servidor DHCP responderá. Por exemplo, Ethernet, há transmissões na camada 2 (ou seja, apenas o quadro Ethernet).
O endereço mais alto em uma sub-rede é reservado como endereço de transmissão . Portanto, na sub-rede 10.0.0.0/24
, esse endereço será 10.0.0.255
. Ele pode ser considerado como um endereço / 32, mas eu prefiro pensar nele como um endereço especial em uma sub-rede.
A tabela local contém esses endereços de broadcast, um para cada interface de rede (observe o scope link
, ou seja, ele atinge apenas receptores no segmento por trás desse link).
Eles também contêm o endereço de rede (o menor endereço em uma sub-rede) como um endereço de broadcast. Não sei exatamente por quê, e outra documentação também não parece ter certeza:
The network address and broadcast address are both entered as broadcast type addresses on the interface to which they have been bound. Conceptually, there is significance to the distinction between a network and broadcast address, but practically, they are treated analogously, by other networking gear as well as the linux kernel.
Eu li isso como "alguns programas tentarão usar o endereço de rede em vez do endereço de broadcast apropriado, e nós somos tolerantes e permitimos que eles façam isso". Mas esta é minha interpretação pessoal.