Qual è la differenza tra 0.0.0.0 e un indirizzo IP di loopback?


19

Dal libro Rete di computer :

L'indirizzo IP 0.0.0.0 , l'indirizzo più basso, viene utilizzato dagli host durante l'avvio. Significa "questa rete" o "questo host".

... Tutti gli indirizzi del modulo 127.xx.yy.zz sono riservati per il test di loopback. I pacchetti inviati a quell'indirizzo non vengono inviati al filo; vengono elaborati localmente e trattati come pacchetti in entrata. Ciò consente ai pacchetti di essere inviati all'host senza che il mittente ne sia a conoscenza del numero, utile per il test.

Se ho ragione, un indirizzo IP di loopback si riferisce all'host corrente.

Qual è la differenza tra 0.0.0.0 e un indirizzo IP di loopback allora?


I commenti non sono per una discussione estesa; questa conversazione è stata spostata in chat .
Ron Maupin

Risposte:


36

La dichiarazione:

L'indirizzo IP 0.0.0.0 [...] significa '' questa rete '' o '' questo host. ''

è fuorviante. Non è un "o" ma "Questo host su questa rete".

Da RFC1122 :

{0, 0}

             This host on this network.  MUST NOT be sent, except as
             a source address as part of an initialization procedure
             by which the host learns its own IP address.

L'indirizzo di loopback (in realtà qualsiasi indirizzo nella rete 127.0.0.0/8) è spiegato nello stesso RFC in questo modo:

{127, any}

             Internal host loopback address.  Addresses of this form
             MUST NOT appear outside a host.

Quindi sia un indirizzo di loopback sia l'indirizzo zero possono essere definiti "questo host", ma in realtà hanno usi molto diversi:

  • l'indirizzo 0.0.0.0 può essere osservato su una rete, ma solo durante il processo DHCP / BOOTP e solo come indirizzo di origine.

  • qualsiasi indirizzo in 127.0.0.0/8 non può essere visualizzato in nessun punto della rete e può essere utilizzato solo per:

    • test dello stack TCP / IP dell'host.

    • due applicazioni sullo stesso host per comunicare insieme.

Un indirizzo 127.XXX è collegato a un'interfaccia di loopback. A tale interfaccia non è associato alcun livello sottostante (ovvero non è collegato a un livello di collegamento). Il pacchetto viene elaborato e risposto nel livello Internet. Quindi non c'è davvero modo per questo pacchetto di raggiungere qualcosa al di fuori dell'host.

Ma un pacchetto inviato da 0.0.0.0 viene elaborato normalmente dallo stack di rete, tranne per il fatto che non vi è alcuna decisione di routing, è associato all'interfaccia che si sta inizializzando, quindi viene inviato da questa interfaccia e passa attraverso il livello di collegamento (che può essere qualcosa di diverso da Ethernet), quindi sulla rete.


Quindi, in altre parole, 0.0.0.0dal punto di vista dell'host è "sé". 127address non è un riferimento a un host, ma piuttosto una simulazione di un host esterno (anche se in realtà non è esterno). È corretto ? L'RFC afferma inoltre "un datagramma il cui indirizzo di origine non definisce un singolo host, ad esempio un indirizzo zero, un indirizzo di loopback" Quindi, se capisco correttamente, a differenza di altri indirizzi, non intendono significare un host esterno sul rete, ma servono come riferimento per cose diverse: sé e una sorta di host "test".
Sergiy Kolodyazhnyy,

Il tuo preventivo proviene dalla parte ICMP. Indica che un ICMP non raggiungibile non può essere inviato a un indirizzo 0. Tale risposta ICMP dovrebbe essere inviata all'indirizzo 0 che violerebbe la regola "NON DEVE essere inviata, tranne come indirizzo di origine". Inoltre l'indirizzo 0 non può essere utilizzato se non come parte di un processo BOOTP / DHCP che viene trasmesso in natura, quindi non ha senso inviare un messaggio di errore ICMP per una trasmissione.
JFL

@SergiyKolodyazhnyy ha modificato la risposta
JFL

12

Se ho ragione, un indirizzo IP di loopback si riferisce all'host corrente.

No. Il traffico inviato a un indirizzo di loopback ritorna all'interno dell'host. È possibile inviare il traffico a un indirizzo di loopback come indirizzo di destinazione e quindi leggerlo. Questo è utile nei test.

Qual è la differenza tra 0.0.0.0 e un indirizzo IP di loopback allora?

Gli indirizzi nella 0.0.0.0/8rete non possono essere utilizzati come indirizzi di destinazione. L'unico uso pratico è come un indirizzo di origine quando un host non ha un indirizzo e chiede a qualcosa come un server DHCP di assegnargli un indirizzo.


Esiste il registro indirizzi IANA IPv4 per scopi speciali che elenca tutti i blocchi di indirizzi speciali e ha collegamenti agli RFC che definiscono ciascuno di questi blocchi.


I commenti non sono per una discussione estesa; questa conversazione è stata spostata in chat .
Ron Maupin
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.