Tanto quanto eu entendo, "endereço de rede" como um endereço especial é um artefato das redes IP classful do passado. Hoje, usamos o Roteamento entre Domínios sem Classes ( CIDR ) na Internet, que não tem o conceito de um endereço de rede (se você olhar para o RFC 4632 ligado acima, verá que ele lista 256 endereços IP possíveis por legado "C", por exemplo, nenhum endereço reservado para rede ou endereço de broadcast (embora broadcasts sejam definidos como essenciais em outros RFCs) .
Dito isto, você ainda não deve atribuir um endereço de rede a nenhum host específico em uma rede: o endereço de rede é essencial para o roteamento. Este conceito é usado extensivamente em RFCs ( RFC 1812 ). Basta olhar para as tabelas de roteamento (comando route
), você verá como o seu endereço de rede local é usado para separar o tráfego de sua rede local do que deve passar pelo roteador. E se esse endereço de rede local fosse atribuído a algum host?
Ainda pior: é melhor não atribuir endereços IP que terminem em zero, mesmo que esse endereço não seja em um endereço de rede. Por exemplo. Se a sua rede é 10.10.0.0/255.255.0.0, o endereço IP 10.10.5.0 não é o seu endereço de rede, mas é melhor não atribuir esse IP, mesmo que seja completamente válido, mesmo em redes IP de classe. Algumas pilhas de software / IP legadas podem ter problemas com isso.
UPDATE: por goblinlord
De acordo com a RFC 1812 (Seção 5.3.5.2) , o que chamamos de endereço de rede foi originalmente usado para "broadcasts direcionados", que enviariam um pacote de broadcast para a rede desejada. Esta função foi tornada obsoleta devido a ataques SMURF. A função foi oficialmente alterada em RFC 2644 . Posteriormente, outras implementações devem descartar pacotes com um endereço de origem, conforme descrito (o endereço de rede). Embora isso seja o que deveria acontecer, estou curioso para saber quantas implementações realmente fazem isso.
Isso é adicionado ainda no RFC 3021 quando a sub-rede / 31 foi abordada.