Was ist IPV6 für localhost und 0.0.0.0?


91

Wie wir alle wissen , die IPv4 - Adresse für localhostist 127.0.0.1(Loopback - Adresse). Was ist die IPv6-Adresse für localhostund für 0.0.0.0die ich einige Anzeigenhosts blockieren muss ?

Antworten:


110

Wie wir alle wissen , dass IPv4 - Adresse für localhostIS 127.0.0.1(Loopback - Adresse).

Tatsächlich ist jede IPv4-Adresse 127.0.0.0/8eine Loopback-Adresse.

In IPv6 ist das direkte Analogon des Loopback-Bereichs ::1/128. So ::1(Langform 0:0:0:0:0:0:0:1) ist die erste und einzige IPv6 - Loopback - Adresse.


Während der Hostname localhostnormalerweise in 127.0.0.1oder aufgelöst wird ::1, habe ich Fälle gesehen, in denen jemand ihn an eine IP-Adresse gebunden hat, die keine Loopback-Adresse ist. Das ist ein bisschen verrückt ... aber manchmal machen es die Leute.

Ich sage "das ist verrückt", weil Sie dadurch leicht die Anwendungsannahmen brechen können. Beispielsweise kann eine Anwendung versuchen, eine umgekehrte Suche für die Loopback-IP durchzuführen und nicht das erwartete Ergebnis zu erhalten. Im schlimmsten Fall sendet eine Anwendung möglicherweise versehentlich vertraulichen Datenverkehr über ein unsicheres Netzwerk ... obwohl Sie wahrscheinlich auch andere Fehler machen müssen, um dies zu "erreichen".


Blockieren 0.0.0.0macht keinen Sinn. In IPv4 wird es nie weitergeleitet. Das Äquivalent in IPv6 ist die ::Adresse (Langform 0:0:0:0:0:0:0:0) ... die auch nie weitergeleitet wird.

Die 0.0.0.0und ::Adressen sind reserviert, um "jede Adresse" zu bedeuten. So kann beispielsweise ein Programm, das einen Webdienst bereitstellt , an 0.0.0.0Port 80 gebunden werden, um HTTP-Verbindungen über eine der IPv4-Adressen des Hosts zu akzeptieren. Diese Adressen sind nicht als Quell- oder Zieladresse für ein IP-Paket gültig.


Schließlich fragten einige Kommentare nach ::/128versus ::/0versus ::.

Was ist dieser Unterschied?

Genau genommen sind die ersten beiden CIDR-Notationen und keine IPv6-Adressen. Sie geben tatsächlich einen Bereich von IP-Adressen an. Ein CIDR besteht aus einer IP-Adresse und einer zusätzlichen Nummer, die die Anzahl der Bits in einer Netzmaske angibt. Die beiden geben zusammen einen Adressbereich an. dh der Satz von Adressen, der durch Ignorieren der aus der gegebenen Adresse maskierten Bits gebildet wird.

So:

  • :: bedeutet nur die IPv6-Adresse 0:0:0:0:0:0:0:0
  • ::/128bedeutet 0:0:0:0:0:0:0:0mit einer Netzmaske bestehend aus 128 Bit. Dies ergibt einen Netzwerkbereich mit genau einer Adresse.
  • ::/0bedeutet 0:0:0:0:0:0:0:0mit einer Netzmaske bestehend aus 0 Bits. Dies ergibt einen Netzwerkbereich mit 2 128 Adressen.; dh es ist der gesamte IPv6-Adressraum!

Weitere Informationen finden Sie auf den Wikipedia-Seiten zu IPv4- und IPv6-Adressen sowie zur CIDR-Notation:




3

Der Vollständigkeit halber: Es gibt IPv4-zugeordnete IPv6-Adressen , bei denen Sie eine IPv4-Adresse in eine IPv6-Adresse einbetten können (möglicherweise nicht von jedem IPv6-Gerät unterstützt).

Beispiel: Ich führe auf meinem Computer einen Server aus, auf den über zugegriffen werden kann http://127.0.0.1:19983/solr. Wenn ich über eine IPv4-zugeordnete IPv6-Adresse darauf zugreife, greife ich über http://[::ffff:127.0.0.1]:19983/solr(auf die konvertiert wird http://[::ffff:7f00:1]:19983/solr) zu.


2

Zur Verwendung in a /etc/hostsDatei 0. Als einfache Technik zum Blockieren von Anzeigen, bei der eine Domain nicht aufgelöst werden kann, wurde die Adresse 0.0.0.0 häufig verwendet, da die Anforderung sofort fehlschlägt, ohne es zu versuchen, da es sich nicht um eine gültige oder routbare Adresse handelt. Dies ist im Vergleich zur Verwendung von 127.0.0.1 an diesem Ort, an dem zumindest überprüft wird, ob Ihr eigener Computer den angeforderten Port 80 überwacht, bevor ein Fehler mit "Verbindung abgelehnt" auftritt. Jede dieser Adressen, die in der Hosts-Datei für die Domäne verwendet werden, verhindert, dass Anforderungen über das tatsächliche Netzwerk versucht werden. 0.0.0.0 hat jedoch an Bedeutung gewonnen, da es aus dem oben genannten Grund "optimaler" ist. "127" IPs versuchen, Ihren eigenen Computer zu treffen, und jede andere IP führt dazu, dass eine Anfrage an den Router gesendet wird, um zu versuchen, sie weiterzuleiten, aber für 0.0.0.0 dort '

Alles, was gesagt wird, ist es ausreichend, eine IP-Adresse in Ihrer Hosts-Datei zu haben, damit die Domain blockiert werden kann, und Sie müssten oder möchten auch keine IPv6-Adresse in Ihre Hosts-Datei einfügen, es sei denn - möglicherweise - Sie tun dies nicht IPv4 überhaupt aktiviert haben. Ich wäre wirklich überrascht, wenn dies der Fall wäre. Und dennoch denke ich, dass das Erscheinen des Hosts in / etc / hosts mit einer schlechten IPv4-Adresse, wenn Sie IPv4 nicht aktiviert haben , Ihnen immer noch das gesuchte Ergebnis liefert, bei dem es fehlschlägt, anstatt nachzuschlagen echtes DNS von beispielsweise adserver-example.com und das Zurückholen einer v4- oder v6-IP.

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.