Qual é a relevância de "fe80 :: 1% lo0 localhost" em / etc / hosts?

35

A seguir estão as entradas no meu /etc/hosts.

Eu queria saber qual é a última entrada ( fe80::1%lo0 localhost) para.

127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
fe80::1%lo0 localhost
Kenster
fonte
3
O% lo0 é um identificador de zona IPv6, a maioria dos sistemas não suporta isso nos serviços de nome.
Steve-o
3
Quais aplicativos usariam essas informações? Em outras palavras, se alguém editasse essa linha, o que quebraria?

Respostas:

25

É um endereço IPv6. O bloco fe80 :: está reservado para endereços locais de link. Os endereços locais de link são usados ​​para pacotes enviados apenas para dispositivos conectados diretamente (não roteados). O NDP (Network Discovery Protocol) é o maior usuário de endereços locais de link (o NDP sorta substitui o ARP e o DHCP no IPv6).

Cada uma de suas interfaces terá um endereço local de link diferente, começando com fe80 :: e (normalmente) terminando com uma versão modificada, o endereço MAC da interface (formato EUI-64) para garantir que você tenha um endereço exclusivo no seu segmento. No caso da sua interface de loopback, não há mais nada conectado a ela, portanto ela pode usar o endereço de fe80 :: 1 sem medo de conflito, e é por isso que fe80 :: 1 é normalmente usado como o endereço "localhost" - o equivalente do IPv6 a 127.0.0.1.

comedor
fonte
4
Também devo mencionar que a parte "% lo0" é necessária porque qualquer endereço local de link seria ambíguo se não estivesse explicitamente vinculado a uma interface.
comedor
1
Não há NDP na interface de loopback e é ::1usado como IPv6 equivalente a 127.0.0.1, não fe80::1%lo0.
citrin
E se o meu nome real da interface de loopback for (conforme relatado pelo ifconfig) simples loe não lo0? Por que incluir também 2 registros de hosts IPv6 para o host local?
Ivan
5

Excelente resposta acima do comedor. IPv6 link-local endereços, como disse acima, de forma fe80:*, de facto, fe80::/10ou seja, o topo dez bits só são comparados com fe8*:*assim que a escala é fe80 :: 0 .. febf:*. Verifique minha aritmética.

Esses endereços são equivalentes aos 169.254.\*.\*endereços no IPv4, embora as contrapartes do IPv4 sejam muito menos usadas.

É muito comum ter vários endereços no ipv6, mas apenas um no IPv4. Ter um fe80::endereço e um endereço IPv6 roteável com significado global (como 2001:*por exemplo) é a regra, não a exceção. Infelizmente, aplicativos e sistemas operacionais não tendem a fazer o mesmo no IPv4, ou seja, as interfaces tendem a não ter vários endereços IPv4, e não vi o caso em que uma interface tenha dito um 169.254.\*.\*endereço e outro tipo de endereço simultaneamente.

O uso simultâneo dos dois tipos no IPv4 evitaria muita dor e sofrimento quando, por exemplo, o kit é ligado na ordem errada, os PCs são ativados antes dos roteadores ou servidores e os PCs atribuem a eles um 169.254.\*.\*endereço e ficam com apenas isso, em vez de adicionar um segundo endereço roteável e com significado global quando descobrirem posteriormente a partir do roteador ou servidor em que deveriam estar na Internet.

Cecil Ward
fonte