Você não está fazendo ping na mesma interface , sem interfaces físicas você ainda tem um "host local".
Seu localhost
é usado para se referir ao seu computador a partir do seu IP "interno", e não de qualquer IP "externo" do seu computador. Portanto, os pacotes de ping não passam por nenhuma interface de rede física; somente através de uma interface virtual de loopback que envia diretamente os pacotes de porta a porta sem nenhum salto físico.
Você ainda pode se perguntar por que localhost
está resolvendo para ::1
, enquanto tradicionalmente esperamos que ele seja resolvido para o endereço IPv4 127.0.0.1
. Observe que .localhost
é tradicionalmente um TLD (consulte RFC 2606 ) que aponta para o endereço IP de loopback (para IPv4 , veja RFC 3330 , especialmente 127.0.0.0/8).
Pesquisando localhost
usando nslookup
nos dá:
nslookup localhost
...
Name: localhost
Addresses: ::1
127.0.0.1
Assim, o Windows prefere usar o endereço IP do loopback IPv6 ::1
(consulte RFC 2373 ) é listado primeiro.
Ok, então, de onde vem, vamos ver o arquivo hosts.
type %WINDIR%\System32\Drivers\Etc\Hosts
...
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
...
Hmm, temos que ver as configurações de DNS do Windows.
Este artigo da base de conhecimento nos informa sobre uma configuração que afeta o que o Windows prefere, enfatizada em negrito:
In Registry Editor, locate and then click the following registry subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters
Double-click DisabledComponents to modify the DisabledComponents entry.
Note: If the DisabledComponents entry is unavailable, you must create it. To do this, follow these steps:
In the Edit menu, point to New, and then click DWORD (32-bit) Value.
Type DisabledComponents, and then press ENTER.
Double-click DisabledComponents.
Type any one of the following values in the Value data: field to configure the IPv6 protocol to the desired state, and then click OK:
- Type
0
to enable all IPv6 components. (Windows default setting)- Type
0xffffffff
to disable all IPv6 components, except the IPv6 loopback interface. This value also configures Windows to prefer using Internet Protocol version 4 (IPv4) over IPv6 by modifying entries in the prefix policy table. For more information, see Source and Destination Address Selection.- Type
0x20
to prefer IPv4 over IPv6 by modifying entries in the prefix policy table.- Type
0x10
to disable IPv6 on all nontunnel interfaces (on both LAN and Point-to-Point Protocol [PPP] interfaces).- Type
0x01
to disable IPv6 on all tunnel interfaces. These include Intra-Site Automatic Tunnel Addressing Protocol (ISATAP), 6to4, and Teredo.- Type
0x11
to disable all IPv6 interfaces except for the IPv6 loopback interface.Restart the computer for this setting to take effect.
O que é essa tabela de diretivas de prefixo?
netsh interface ipv6 show prefixpolicies
(orprefixpolicy
on earlier versions)
Precedence Label Prefix
---------- ----- --------------------------------
50 0 ::1/128
45 13 fc00::/7
40 1 ::/0
10 4 ::ffff:0:0/96
7 14 2002::/16
5 5 2001::/32
1 11 fec0::/10
1 12 3ffe::/16
1 10 ::/96
Esta tabela decide quais prefixos têm precedência sobre outros prefixos durante as resoluções de DNS.
Ah, então, usando essa KB, podemos adicionar entradas aqui que indicam que o IPv4 tem precedência mais alta que o IPv6.
Observação: não há motivo para substituir esse comportamento, a menos que você esteja com problemas de compatibilidade. Mudar esta configuração no nosso Windows Server quebrou o nosso servidor de e-mail, por isso deve ser manuseado com cuidado ...