Was ist der Unterschied zwischen 0.0.0.0 und einer Loopback-IP-Adresse?


19

Aus dem Buch Computer Network :

Die IP-Adresse 0.0.0.0 , die niedrigste Adresse, wird von Hosts beim Booten verwendet. Es bedeutet "dieses Netzwerk" oder "dieser Host".

... Alle Adressen des Formulars 127.xx.yy.zz sind für Loopback-Tests reserviert. Pakete, die an diese Adresse gesendet werden, werden nicht auf das Kabel ausgegeben. Sie werden lokal verarbeitet und als eingehende Pakete behandelt. Auf diese Weise können Pakete an den Host gesendet werden, ohne dass der Absender seine Nummer kennt. Dies ist zum Testen hilfreich.

Wenn ich richtig bin, bezieht sich eine Loopback-IP-Adresse auf den aktuellen Host.

Was ist dann der Unterschied zwischen 0.0.0.0 und einer Loopback-IP-Adresse?


Kommentare sind nicht für eine längere Diskussion gedacht. Diese Unterhaltung wurde in den Chat verschoben .
Ron Maupin

Antworten:


36

Die Aussage:

Die IP-Adresse 0.0.0.0 [...] bedeutet "dieses Netzwerk" oder "dieser Host".

ist irreführend. Es ist kein "oder", sondern "Dieser Host in diesem Netzwerk".

Aus 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.

Die Loopback-Adresse (eigentlich jede Adresse im 127.0.0.0/8-Netzwerk) wird in demselben RFC folgendermaßen erläutert:

{127, any}

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

Daher können sowohl eine Loopback-Adresse als auch die All-Zero-Adresse als "dieser Host" bezeichnet werden, sie werden jedoch in der Tat sehr unterschiedlich verwendet:

  • Die 0.0.0.0-Adresse kann in einem Netzwerk beobachtet werden, jedoch nur während des DHCP / BOOTP-Prozesses und nur als Quelladresse.

  • Jede Adresse in der Version 127.0.0.0/8 kann nirgendwo im Netzwerk angezeigt werden und nur für folgende Zwecke verwendet werden:

    • Testen des TCP / IP-Stacks des Hosts.

    • zwei Anwendungen auf demselben Host, um miteinander zu kommunizieren.

Eine 127.XXX-Adresse wird an eine Loopback-Schnittstelle angehängt. An eine solche Schnittstelle ist keine untergeordnete Ebene angeschlossen (dh sie ist nicht an eine Verknüpfungsebene angeschlossen). Das Paket wird in der Internetschicht verarbeitet und beantwortet. Es gibt also wirklich keine Möglichkeit für dieses Paket, irgendetwas außerhalb des Hosts zu erreichen.

Ein von 0.0.0.0 gesendetes Paket wird jedoch vom Netzwerkstapel normal verarbeitet, mit der Ausnahme, dass keine Routingentscheidung getroffen wird. Es ist an die zu initialisierende Schnittstelle gebunden, wird also von dieser Schnittstelle aus gesendet und durch die Verbindungsschicht (die sein kann) geleitet etwas anderes als Ethernet), dann im Netzwerk.


Mit anderen Worten, 0.0.0.0aus der Sicht des Gastgebers ist "Selbst". 127address ist keine Referenz auf einen Host, sondern eher eine Simulation eines externen Hosts (auch wenn es sich nicht um einen externen handelt). Ist das korrekt ? Der RFC gibt auch an, dass "ein Datagramm, dessen Quelladresse keinen einzelnen Host definiert - z. B. eine Nulladresse, eine Loopback-Adresse" Netzwerk, sondern dienen als Referenz für verschiedene Dinge - Selbst- und Art "Test" Host.
Sergiy Kolodyazhnyy

Ihr Zitat stammt aus dem ICMP-Teil. Es besagt, dass ein nicht erreichbarer ICMP nicht an eine 0-Adresse gesendet werden kann. Eine solche ICMP-Antwort müsste an die 0-Adresse gesendet werden, was die Regel "DARF NICHT gesendet werden, außer als Quelladresse" verletzen würde. Außerdem kann die 0-Adresse nur als Teil eines BOOTP / DHCP-Prozesses verwendet werden, der in der Natur rundgesendet wird. Es macht also keinen Sinn, eine ICMP-Fehlermeldung für eine Rundsendung zu senden.
JFL

@SergiyKolodyazhnyy hat die Antwort bearbeitet
JFL

12

Wenn ich richtig bin, bezieht sich eine Loopback-IP-Adresse auf den aktuellen Host.

Nein. An eine Loopback-Adresse gesendeter Datenverkehr kehrt in den Host zurück. Sie können Datenverkehr an eine Loopback-Adresse als Zieladresse senden und diese dann lesen. Dies ist nützlich beim Testen.

Was ist dann der Unterschied zwischen 0.0.0.0 und einer Loopback-IP-Adresse?

Adressen im 0.0.0.0/8Netzwerk können nicht als Zieladressen verwendet werden. Die einzige praktische Verwendung ist die als Quelladresse, wenn ein Host keine Adresse hat und so etwas wie einen DHCP-Server auffordert, ihm eine Adresse zuzuweisen.


Es gibt die IANA IPv4-Registrierung für spezielle Adressen, in der alle speziellen Adressblöcke aufgelistet sind, und sie enthält Links zu den RFCs, die die einzelnen Blöcke definieren.


Kommentare sind nicht für eine längere Diskussion gedacht. Diese Unterhaltung wurde in den Chat verschoben .
Ron Maupin
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.