¿Cuál es la relevancia de "fe80 :: 1% lo0 localhost" en / etc / hosts?

35

Las siguientes son las entradas en mi /etc/hosts.

Me preguntaba para qué es la última entrada ( fe80::1%lo0 localhost).

127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
Kenster
fuente
3
El% lo0 es un identificador de zona IPv6, la mayoría de los sistemas no lo admiten en los servicios de nombres.
Steve-o
3
¿Qué aplicaciones usarían esta información? En otras palabras, si uno editara esa línea, ¿qué se rompería?

Respuestas:

25

Es una dirección IPv6. El bloque fe80 :: está reservado para direcciones locales de enlace. Las direcciones locales de enlace se usan para paquetes enviados solo a dispositivos conectados directamente (no enrutados). El protocolo de descubrimiento de red (NDP) es el mayor usuario de direcciones locales de enlace (el tipo de NDP reemplaza a ARP y DHCP en IPv6).

Cada una de sus interfaces tendrá una dirección local de enlace diferente que comienza con fe80 :: y (típicamente) termina con una versión modificada de la dirección MAC de la interfaz (formato EUI-64) para garantizar que tenga una dirección única en su segmento. En el caso de su interfaz de bucle invertido, no hay nada más conectado a ella, por lo que puede usar la dirección de fe80 :: 1 sin temor a conflictos, por lo que fe80 :: 1 se usa típicamente como la dirección "localhost" --el equivalente de IPv6 de 127.0.0.1.

tener siempre buen apetito
fuente
44
También debo mencionar que la parte "% lo0" es necesaria porque cualquier dirección de enlace local sería ambigua si no estuviera explícitamente vinculada a una interfaz.
comedor
1
No hay NDP en la interfase de bucle invertido y se ::1utiliza como IPv6 equivalente de 127.0.0.1, no fe80::1%lo0.
citrin
¿Qué sucede si mi nombre real de interfaz de bucle invertido es (según lo informado por ifconfig) simplemente loy no lo0? Además, ¿por qué incluir 2 registros de hosts IPv6 para localhost?
Ivan
5

Excelente respuesta anterior del comedor. Direcciones de enlace local IPv6, como se dijo anteriormente, de la forma fe80:*, de hecho, fe80::/10es decir, la parte superior diez bits solamente se comparan con fe8*:*lo que el rango es fe80 :: 0 .. febf:*. Comprueba mi aritmética.

Estas direcciones son equivalentes a las 169.254.\*.\*direcciones en IPv4, aunque las contrapartes de IPv4 son mucho menos utilizadas.

Es muy común tener varias direcciones en ipv6 pero solo una en IPv4. Tener una fe80::dirección y una dirección IPv6 enrutable globalmente significativa (como 2001:*por ejemplo) es la regla, no la excepción. Desafortunadamente, las aplicaciones y los sistemas operativos no tienden a hacer lo mismo en IPv4, es decir, las interfaces tienden a no tener varias direcciones IPv4, y no he visto el caso en que una interfaz diga una 169.254.\*.\*dirección y otro tipo de dirección simultáneamente.

El uso simultáneo de los dos tipos en IPv4 evitaría mucho dolor y sufrimiento cuando, por ejemplo, el kit se enciende en el orden incorrecto, las PC se encienden antes de que los enrutadores o servidores y las PC se asignen una 169.254.\*.\*dirección y se limiten a eso en lugar de agregar un segundo dirección enrutable globalmente significativa cuando más tarde descubren en su enrutador o servidor dónde se supone que deben estar en Internet.

Cecil Ward
fuente