La destinazione di un pacchetto IP è mai impostata sull'indirizzo IP della sottorete?
Sì. È un indirizzo IP valido quindi può essere utilizzato.
Se sì, in quali casi e perché?
È semplicemente uno dei 255 IP utilizzabili in a / 24
Se no, allora perché non liberare quell'indirizzo da usare per qualsiasi host?
Se si dispone di hardware antico, è necessario verificare se utilizza il primo o l'ultimo indirizzo come indirizzo di rete. (.0 o .255 per reti con maschera FF.FF.FF.00)
Questo rende una buona abitudine saltare quell'IP. E le abitudini apprese molto tempo fa sono difficili da ignorare.
E le persone che non conoscono lo sfondo non lo usano 'perché altri non lo usano neanche, quindi deve essere sbagliato usarlo' o perché non si rendono conto che '0' può essere un primo numero.
[Modifica] Grezzo lo ha appena testato su Windows XP, dove la GUI della rete Windows ha "utile" impedito questa impostazione. Windows 7 ha lo stesso comportamento. Ho quindi provato su un host non Windows dove funziona. Se usi Windows, potresti dover configurare la tua rete manualmente tramite IPconfig per impostarla su tutti gli zeri.
[Modifica 2]
Più lavoro a lungo con questo, più mi confondo.
Rfc4632 - Il routing interdominio senza classi
non sembra vietarlo , ma non lo consente nemmeno esplicitamente.
Questo post di ServerFault menziona: "Per motivi storici, molti sistemi operativi trattano il primo indirizzo come una trasmissione. Ad esempio, il ping xxx0 da OS X, Linux e Solaris sulla mia rete locale (/ 24) ottiene risposte. Windows non consente di eseguire il ping il primo indirizzo per impostazione predefinita, ma potresti essere in grado di abilitarlo utilizzando il metodo WMI SetIPUseZeroBroadcast. Mi chiedo se potresti cavartela usando 0 come indirizzo host su una rete completamente Windows. " .
È la stessa domanda, ma non una risposta.
L'indirizzo di rete viene utilizzato anche nelle tabelle di routing. Ma non riesco a capire perché a causa di ciò non funzionerebbe. La stessa notazione nelle tabelle di routing verrebbe indirizzata alla rete corretta. Una volta sulla rete giusta arriverebbe a un PC con IP 0.
(Tutto questo per un 192.168.1 / 24.
Se si usasse 192.168.0 / 23, 192.168.1.0 sarebbe un valore valido e sicuro al centro dell'intervallo)
[Modifica 3]
Un altro link alla stessa domanda. Sembra piuttosto popolare nello scambio di stack:
/superuser/379451/why-can-a-network-address-not-be-a-valid-host-address
E un pensiero:
Destination_IP è probabilmente AND ed con il mast di rete (un'operazione veloce in hardware) prima di essere confrontato con le voci nelle tabelle di routing. Ma:
(Un IP semi-casuale) 192.168.0.42 E 255.255.255.0 produrrebbe 192.168.0.0
Ma 192.168.0.0 E 255.255.255.0 produrrebbero anche 192.168.0.0
[Modifica 4 - Molto tempo dopo la stesura di questa risposta - Potrebbe essere necessario riscrivere l'intero post a causa di queste nuove informazioni ]
RFC923 afferma a pagina 3 che:
In certain contexts, it is useful to have fixed addresses with
functional significance rather than as identifiers of specific
hosts. When such usage is called for, the address zero is to be
interpreted as meaning "this", as in "this network". The address
of all ones are to be interpreted as meaning "all", as in "all
hosts". For example, the address 128.9.255.255 could be
interpreted as meaning all hosts on the network 128.9. Or, the
address 0.0.0.37 could be interpreted as meaning host 37 on this
network.
Citando @ylearn sul nostro sito di ingegneria di rete
Credo che la prima documentazione di ciò provenga da RFC950 che fa riferimento a RFC943 (che ha superato RFC923 sopra ma utilizza la stessa lingua per indirizzi speciali):
It is useful to preserve and extend the interpretation of these
special addresses in subnetted networks. This means the values
of all zeros and all ones in the subnet field should not be
assigned to actual (physical) subnets.
ifconfig
non si lamenta quando si imposta l'indirizzo dell'host di 24 net su 0 o 255. Provare a usarlo.