Im Folgenden sind die Einträge in meinem /etc/hosts
.
Ich habe mich gefragt, wofür der letzte Eintrag ( fe80::1%lo0 localhost
) ist.
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
Im Folgenden sind die Einträge in meinem /etc/hosts
.
Ich habe mich gefragt, wofür der letzte Eintrag ( fe80::1%lo0 localhost
) ist.
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
Antworten:
Es ist eine IPv6-Adresse. Der fe80 :: -Block ist für verbindungslokale Adressen reserviert. Lokale Linkadressen werden für Pakete verwendet, die nur an direkt angeschlossene Geräte gesendet werden (nicht geroutet). Das Network Discovery Protocol (NDP) ist der größte Benutzer von verbindungslokalen Adressen (NDP ersetzt ARP und DHCP in IPv6).
Jede Ihrer Schnittstellen hat eine andere verbindungslokale Adresse, die mit fe80 :: beginnt und (normalerweise) mit einer geänderten Version der MAC-Adresse der Schnittstelle (EUI-64-Format) endet, um sicherzustellen, dass Sie eine eindeutige Adresse in Ihrem Segment haben. Im Falle Ihres Loopback-Interfaces ist nichts anderes damit verbunden, so dass es die Adresse von fe80 :: 1 ohne Angst vor Konflikten verwenden kann, weshalb fe80 :: 1 normalerweise als "localhost" -Adresse verwendet wird - das IPv6-Äquivalent von 127.0.0.1.
::1
verwendet als IPv6 equivavelent von 127.0.0.1
, nicht fe80::1%lo0
.
lo
und nicht ist lo0
? Warum sollten auch 2 IPv6-Hosts für localhost aufgenommen werden?
Ausgezeichnete Antwort oben vom Esser. IPv6-Link-Local-Adressen, wie oben erwähnt, in der Form fe80:*
, fe80::/10
dass nur die Top-Ten-Bits abgeglichen werden, fe8*:*
sodass der Bereich fe80 :: 0 .. ist febf:*
. Überprüfen Sie meine Arithmetik.
Diese Adressen entsprechen den 169.254.\*.\*
Adressen in IPv4, obwohl die IPv4-Gegenstücke viel weniger häufig verwendet werden.
Es ist sehr üblich, in IPv6 mehrere Adressen zu haben, in IPv4 jedoch nur eine. Die Regel ist nicht die Ausnahme, fe80::
wenn Sie sowohl eine Adresse als auch eine global sinnvolle routbare IPv6-Adresse haben (wie 2001:*
zum Beispiel). Leider tun Anwendungen und Betriebssysteme in IPv4 nicht das Gleiche, dh Schnittstellen haben in der Regel nicht mehrere IPv4-Adressen, und ich habe den Fall nicht gesehen, dass eine Schnittstelle eine 169.254.\*.\*
Adresse und einen anderen Adresstyp gleichzeitig enthält.
Die gleichzeitige Verwendung der beiden Typen in IPv4 würde viel Schmerz und Leid vermeiden, wenn beispielsweise das Kit in der falschen Reihenfolge hochgefahren wird, die PCs hochgefahren werden, bevor Router oder Server und die PCs sich selbst eine 169.254.\*.\*
Adresse zuweisen und sich nur an diese halten, anstatt eine Sekunde hinzuzufügen global bedeutsame, routingfähige Adresse, wenn sie später von ihrem Router oder Server erfahren, wo sie sich im Internet befinden sollen.
fe80::..... a link local address
Linklokale IPv6-Adressen, die durch das Präfix fe80: angegeben werden, sind nur für die unmittelbare Netzwerkverbindung gültig, mit der diese Hostschnittstelle verbunden ist.