Was ist der Unterschied zwischen 127.0.0.1 und 0.0.0.0?

Die meisten von uns haben von '127.0.0.1 und 0.0.0.0' gehört, aber wahrscheinlich nicht viel darüber nachgedacht, aber wenn beide tatsächlich auf denselben Ort zu zeigen scheinen, was ist dann der tatsächliche Unterschied zwischen den beiden? Der heutige SuperUser Q & A-Beitrag hilft einem verwirrten Leser, die Dinge zu klären.

Die heutige Frage-Antwort-Sitzung wird uns mit freundlicher Genehmigung von SuperUser zur Verfügung gestellt - einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites.

Foto mit freundlicher Genehmigung von Kate Gardiner (Flickr).

Die Frage

SuperUser-Leser Sagnik Sarkar möchte wissen, was der Unterschied zwischen 127.0.0.1 und 0.0.0.0 ist:

Ich verstehe, dass 127.0.0.1 auf localhost verweist und dass 0.0.0.0 dies auch tut (korrigieren Sie mich, wenn ich falsch liege). Was ist der Unterschied zwischen 127.0.0.1 und 0.0.0.0?

Was ist der Unterschied zwischen 127.0.0.1 und 0.0.0.0?

Die Antwort

Der SuperUser-Mitarbeiter DavidPostill hat die Antwort für uns:

Was ist der Unterschied zwischen 127.0.0.1 und 0.0.0.0?

  • 127.0.0.1 ist die Loopback-Adresse (auch als localhost bekannt).
  • 0.0.0.0 ist eine nicht routbare Meta-Adresse, mit der ein ungültiges, unbekanntes oder nicht anwendbares Ziel (ein Platzhalter ohne bestimmte Adresse) angegeben wird.

Im Kontext eines Routeneintrags bedeutet dies normalerweise die Standardroute.

Im Kontext von Servern bedeutet 0.0.0.0 alle IPv4-Adressen auf dem lokalen Computer . Wenn ein Host zwei IP-Adressen hat, 192.168.1.1 und 10.1.2.1, und ein Server, der auf dem Host ausgeführt wird, auf 0.0.0.0 lauscht, ist er an beiden IPs erreichbar.

Wie lautet die IP-Adresse 127.0.0.1?

127.0.0.1 ist die IP-Adresse (Loopback Internet Protocol), die auch als Localhost bezeichnet wird . Die Adresse wird verwendet, um eine IP-Verbindung zu demselben Computer oder Computer herzustellen, der vom Endbenutzer verwendet wird.

Die gleiche Konvention gilt für Computer, die die IPv6-Adressierung mit der Konnotation :: 1 unterstützen. Das Herstellen einer Verbindung unter Verwendung der Adresse 127.0.0.1 ist die häufigste Vorgehensweise. Die Verwendung einer IP-Adresse im Bereich von 127… * funktioniert jedoch auf die gleiche oder eine ähnliche Weise. Das Loopback-Konstrukt gibt einem Computer oder Gerät, das in der Lage ist, Netzwerke zu erstellen, die Möglichkeit, den IP-Stapel auf dem Computer zu validieren oder einzurichten.

Quelle: 127.0.0.1 - Wozu dient es und warum ist es wichtig?

Spezielle Adressen

Der Netzwerknummer 127 der Klasse A wird die Loopback- Funktion zugewiesen, dh ein Datagramm, das von einem Protokoll höherer Ebene an eine Adresse des Netzwerks 127 gesendet wird, sollte innerhalb des Hosts zurückgeschleift werden. Kein Datagramm, das an eine Netzwerkadresse 127 gesendet wurde , sollte jemals in einem Netzwerk irgendwo erscheinen.

Quelle: Netzwerknummern

Wenn es sich um eine ganze Klasse A handelt, wozu dienen dann andere willkürliche Werte für die letzten drei Oktette?

Der Zweck des Loopback-Bereichs ist das Testen der TCP / IP-Protokollimplementierung auf einem Host. Da die unteren Schichten kurzgeschlossen sind, können durch Senden an eine Loopback-Adresse die höheren Schichten (IP und höher) effektiv getestet werden, ohne dass sich Probleme an den unteren Schichten manifestieren. 127.0.0.1 ist die am häufigsten zu Testzwecken verwendete Adresse.

Quelle: IP reserviert, Loopback und private Adressen

Weitere Informationen finden Sie in der Frage Ubuntu stellen: Was ist das Loopback-Gerät und wie verwende ich es?

Wie lautet die IP-Adresse 0.0.0.0?

0.0.0.0 ist eine gültige Adressensyntax. Daher sollte es überall dort als gültig analysiert werden, wo eine IP-Adresse in herkömmlicher Punkt-Dezimal-Notation erwartet wird. Sobald es analysiert und in eine funktionsfähige numerische Form konvertiert wurde, bestimmt sein Wert, was als nächstes passiert.

Der Nullwert hat eine besondere Bedeutung. Es ist also gültig , hat aber eine Bedeutung, die für bestimmte Umstände möglicherweise nicht angemessen ist (und daher als ungültig behandelt wird). Es ist im Grunde der Platzhalter "Keine bestimmte Adresse". Für Dinge wie die Adressbindung von Netzwerkverbindungen kann das Ergebnis sein, der Verbindung eine geeignete Schnittstellenadresse zuzuweisen. Wenn Sie damit eine Schnittstelle konfigurieren, kann stattdessen eine Adresse von der Schnittstelle entfernt werden. Es hängt vom Verwendungskontext ab, zu bestimmen, was "keine bestimmte Adresse" wirklich tut.

Im Kontext eines Routeneintrags bedeutet dies normalerweise die Standardroute. Dies geschieht als Ergebnis der Adressmaske, die die zu vergleichenden Bits auswählt. Eine Maske von 0.0.0.0 wählt keine Bits aus, sodass der Vergleich immer erfolgreich ist. Wenn eine solche Route konfiguriert ist, können Pakete immer irgendwohin gehen (wenn sie mit einem gültigen Ziel konfiguriert sind).

In einigen Fällen funktioniert auch nur '0' und hat den gleichen Effekt. Dies ist jedoch nicht garantiert. Das Formular 0.0.0.0 ist die Standardmethode, um "keine bestimmte Adresse" zu sagen (in IPv6 ist dies :: 0 oder nur ::) .

Quelle: Was bedeutet die IP-Adresse 0.0.0.0?

In Internet Protocol Version 4 ist die Adresse 0.0.0.0 eine nicht routbare Metaadresse, mit der ein ungültiges, unbekanntes oder nicht anwendbares Ziel festgelegt wird. Einem ansonsten ungültigen Datenelement eine besondere Bedeutung zu geben, ist eine Anwendung der In-Band-Signalisierung.

Im Kontext von Servern bedeutet 0.0.0.0 alle IPv4-Adressen auf dem lokalen Computer . Wenn ein Host zwei IP-Adressen hat, 192.168.1.1 und 10.1.2.1, und ein Server, der auf dem Host ausgeführt wird, auf 0.0.0.0 lauscht, ist er an beiden IPs erreichbar ( Hinweis: Dieser spezielle Text wird als Teil von oben wiederholt der Gesamtantwort ).

Im Zusammenhang mit dem Routing bedeutet 0.0.0.0 normalerweise die Standardroute, dh die Route, die zum Rest des Internets führt, anstatt irgendwo im lokalen Netzwerk.

Verwendungen umfassen:

  • Die Adresse, die ein Host als seine eigene beansprucht, wenn ihm noch keine Adresse zugewiesen wurde. Zum Beispiel beim Senden des ersten DHCPDISCOVER-Pakets bei Verwendung von DHCP.
  • Die Adresse, die ein Host sich selbst zuweist, wenn eine Adressanforderung über DHCP fehlgeschlagen ist, sofern der IP-Stack des Hosts dies unterstützt. Diese Verwendung wurde in modernen Betriebssystemen durch den APIPA-Mechanismus ersetzt.
  • Eine Möglichkeit, einen IPv4-Host überhaupt anzugeben . Es wird auf diese Weise verwendet, wenn eine Standardroute angegeben wird.
  • Eine Möglichkeit, explizit anzugeben, dass das Ziel nicht verfügbar ist. Quelle:  127.0.0.1 - Wozu dient es und warum ist es wichtig?
  • Eine Möglichkeit, eine IPv4-Adresse anzugeben . Es wird auf diese Weise beim Konfigurieren von Servern verwendet (dh beim Binden von Listening-Sockets). Dies ist TCP-Programmierern als INADDR_ANY bekannt. [ bind (2) bindet an Adressen, nicht an Schnittstellen. ]]

In IPv6 wird die Null-Adresse wie folgt geschrieben :

Quelle: 0.0.0.0 [Wikipedia]

DHCP-Erkennung / Anforderung

Wenn ein Client zum ersten Mal hochfährt , befindet er sich im Initialisierungsstatus und sendet eine DHCPDISCOVER-Nachricht in seinem lokalen physischen Subnetz über den UDP-Port 67 (BootP-Server) des User Datagram Protocol. Da der Client das Subnetz, zu dem er gehört, nicht kennen kann, handelt es sich bei DHCPDISCOVER um eine Übertragung aller Subnetze (Ziel-IP-Adresse 255.255.255.255) mit einer Quell-IP-Adresse von 0.0.0.0. Die Quell-IP-Adresse lautet 0.0.0.0, da der Client keine konfigurierte IP-Adresse hat.

Wenn in diesem lokalen Subnetz ein DHCP-Server vorhanden ist, der konfiguriert ist und ordnungsgemäß funktioniert, hört der DHCP-Server die Übertragung und antwortet mit einer DHCPOFFER-Nachricht. Wenn im lokalen Subnetz kein DHCP-Server vorhanden ist, muss in diesem lokalen Subnetz ein DHCP / BootP-Relay-Agent vorhanden sein, um die DHCPDISCOVER-Nachricht an ein Subnetz weiterzuleiten, das einen DHCP-Server enthält.

Dieser Relay Agent kann entweder ein dedizierter Host (z. B. Microsoft Windows Server) oder ein Router (z. B. ein Cisco-Router, der beispielsweise mit IP-Hilfsanweisungen auf Schnittstellenebene konfiguriert ist) sein.

Nachdem der Client einen DHCPOFFER empfangen hat, antwortet er mit einer DHCPREQUEST-Nachricht, die seine Absicht angibt, die Parameter im DHCPOFFER zu akzeptieren, und wechselt in den anfordernden Zustand . Der Client kann mehrere DHCPOFFER-Nachrichten empfangen, eine von jedem DHCP-Server, der die ursprüngliche DHCPDISCOVER-Nachricht empfangen hat. Der Client wählt einen DHCPOFFER aus und antwortet nur auf diesen DHCP-Server, wobei alle anderen DHCPOFFER-Nachrichten implizit abgelehnt werden. Der Client identifiziert den ausgewählten Server, indem er das Optionsfeld Server Identifier mit der IP-Adresse des DHCP-Servers ausfüllt.

Die DHCPREQUEST ist auch eine Übertragung, sodass alle DHCP-Server, die einen DHCPOFFER gesendet haben, die DHCPREQUEST sehen und jeder weiß, ob sein DHCPOFFER akzeptiert oder abgelehnt wurde. Alle zusätzlichen Konfigurationsoptionen, die der Client benötigt, werden in das Optionsfeld der DHCPREQUEST-Nachricht aufgenommen. Obwohl dem Client eine IP-Adresse angeboten wurde, sendet er die DHCPREQUEST-Nachricht mit einer Quell-IP-Adresse von 0.0.0.0. Zu diesem Zeitpunkt hat der Client noch keine Bestätigung erhalten, dass die Verwendung der IP-Adresse eindeutig ist.

Client-Server-Konversation für einen Client, der eine DHCP-Adresse erhält, bei der sich der Client und der DHCP-Server im selben Subnetz befinden:

Quelle: Grundlegendes zu und Fehlerbehebung bei DHCP in Catalyst Switch- oder Unternehmensnetzwerken

Standardroute

In diesem Dokument wird erläutert, wie Sie eine Standardroute oder ein Gateway des letzten Auswegs konfigurieren. Diese IP-Befehle werden verwendet:

  • IP-Standard-Gateway
  • IP-Standard-Netzwerk
  • IP-Route 0.0.0.0 0.0.0.0

IP Route 0.0.0.0 0.0.0.0

Das Erstellen einer statischen Route zum Netzwerk 0.0.0.0 0.0.0.0 ist eine weitere Möglichkeit, das Gateway des letzten Auswegs auf einem Router festzulegen. Wie beim Befehl ip default-network hängt die Verwendung der statischen Route zu 0.0.0.0 nicht von Routing-Protokollen ab. Das IP-Routing muss jedoch auf dem Router aktiviert sein.

Hinweis: IGRP versteht keine Route zu 0.0.0.0. Daher können Standardrouten, die mit dem Befehl ip route 0.0.0.0 0.0.0.0 erstellt wurden, nicht weitergegeben werden . Verwenden Sie den Befehl ip default-network , damit IGRP eine Standardroute weitergibt.

Quelle: Konfigurieren eines Gateways der letzten Instanz mithilfe von IP-Befehlen

Haben Sie der Erklärung etwas hinzuzufügen? Ton aus in den Kommentaren. Möchten Sie weitere Antworten von anderen technisch versierten Stack Exchange-Benutzern lesen? Den vollständigen Diskussionsthread finden Sie hier.