Poniżej znajdują się wpisy w moim /etc/hosts
.
Zastanawiałem się, po co jest ostatni wpis ( fe80::1%lo0 localhost
).
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
Poniżej znajdują się wpisy w moim /etc/hosts
.
Zastanawiałem się, po co jest ostatni wpis ( fe80::1%lo0 localhost
).
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
Odpowiedzi:
To adres IPv6. Blok fe80 :: jest zarezerwowany dla adresów lokalnych. Łącza lokalne adresy są używane dla pakietów wysyłanych tylko do bezpośrednio podłączonych urządzeń (nie trasowanych). Protokół wykrywania sieci (NDP) jest największym użytkownikiem adresów lokalnych dla łącza (NDP sorta zastępuje ARP i DHCP w IPv6).
Każdy z interfejsów będzie miał inny adres lokalny dla łącza, zaczynający się od fe80 :: i (zazwyczaj) kończący się na zmodyfikowanej wersji adres MAC interfejsu (format EUI-64), aby zapewnić unikalny adres w segmencie. W przypadku interfejsu sprzężenia zwrotnego nie ma z nim nic innego, więc może on używać adresu fe80 :: 1 bez obawy o konflikt, dlatego fe80 :: 1 jest zwykle używany jako adres „localhost” - ekwiwalent IPv6 127.0.0.1.
::1
używany jako równoważny IPv6 127.0.0.1
, nie fe80::1%lo0
.
lo
a nie lo0
? Dlaczego także dołączyć 2 rekordy hostów IPv6 dla hosta lokalnego?
Doskonała odpowiedź powyżej zjadacza. Adresy IPv6 Link-local, jak wspomniano powyżej, od postaci fe80:*
w rzeczywistości fe80::/10
oznaczającego szczyt tylko dziesięć bitów są dopasowywane fe8*:*
tak zakres jest FE80 :: 0 .. febf:*
. Sprawdź moją arytmetykę.
Te adresy są równoważne 169.254.\*.\*
adresom w IPv4, chociaż odpowiedniki IPv4 są znacznie mniej dobrze używane.
Bardzo często jest kilka adresów w ipv6, ale tylko jeden w IPv4. Posiadanie zarówno fe80::
adresu, jak i globalnego, możliwego do routingu adresu IPv6 (takiego jak 2001:*
na przykład) nie jest regułą. Niestety aplikacje i systemy operacyjne nie robią tego samego w IPv4, to znaczy interfejsy zwykle nie mają kilku adresów IPv4, i nie widziałem przypadku, w którym interfejs podaje jednocześnie 169.254.\*.\*
adres i inny typ adresu.
Jednoczesne użycie tych dwóch typów w IPv4 zapobiegłoby wielu bólom i cierpieniom, gdy na przykład zestaw włącza się w niewłaściwej kolejności, komputery włączają się przed routerami lub serwerami, a komputery przypisują sobie 169.254.\*.\*
adres i trzymają się go, zamiast dodawać drugi globalnie znaczący, możliwy do routingu adres, gdy później dowiedzą się ze swojego routera lub serwera, gdzie powinni być w Internecie.
fe80::..... a link local address
Adresy IPv6 lokalnego łącza, oznaczone prefiksem fe80:, są ważne tylko w bezpośrednim łączu sieciowym, z którym połączony jest ten interfejs hosta.