Wie wir alle wissen , die IPv4 - Adresse für localhost
ist 127.0.0.1
(Loopback - Adresse). Was ist die IPv6-Adresse für localhost
und für 0.0.0.0
die ich einige Anzeigenhosts blockieren muss ?
Wie wir alle wissen , dass IPv4 - Adresse für
localhost
IS127.0.0.1
(Loopback - Adresse).
Tatsächlich ist jede IPv4-Adresse 127.0.0.0/8
eine 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 localhost
normalerweise in 127.0.0.1
oder 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.0
macht 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.0
und ::
Adressen sind reserviert, um "jede Adresse" zu bedeuten. So kann beispielsweise ein Programm, das einen Webdienst bereitstellt , an 0.0.0.0
Port 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 ::/128
versus ::/0
versus ::
.
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
::/128
bedeutet 0:0:0:0:0:0:0:0
mit einer Netzmaske bestehend aus 128 Bit. Dies ergibt einen Netzwerkbereich mit genau einer Adresse.::/0
bedeutet 0:0:0:0:0:0:0:0
mit 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:
::1
ist die Loopback- Adresse in IPv6.
Verwenden Sie in einer URL eckige Klammern []
:
http://[::1]/
http://[::1]:80/
Das Einschließen des IPv6-Literals in eckige Klammern zur Verwendung in einer URL ist in RFC 2732 - Format für literale IPv6-Adressen in URLs definiert .
Der ipv6 localhost ist ::1
. Die nicht angegebene Adresse lautet ::
. Dies ist in Abschnitt 2.5 von RFC 4291 definiert .
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.
Zur Verwendung in a /etc/hosts
Datei 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.