Eu tenho um problema com meu sistema operacional. O utilitário ping está me retornando um endereço IP errado quando tento executar ping no servidor de nome de host local.
No meu servidor tenho 3 interfaces: Ethernet0, Ethernet1, Ethernet2
A interface principal com IP estático preferencial é Ethernet0. Ele também possui a métrica mais baixa na tabela de rotas do SO e também é o único que possui um gateway atribuído. Com Ethernet0 estou conectado a uma rede de domínio 'example.local'. Tenho servidores DNS configurados estaticamente nesta interface de rede.
O resto das interfaces (Ethernet1 e Ethernet2) não possuem gateway, mas possuem IP estático atribuído.
Agora vamos ao problema. Quando executo o nslookup recebo esta resposta:
PS C:\Users\Administrator> nslookup server01.example.local
Server: dc01.example.local
Address: 100.72.10.133
Name: server01.example.local
Address: 100.72.10.137
mas quando executo o ping recebo esta resposta:
PS C:\Users\Administrator> ping server01.example.local
Pinging server01.example.local [100.76.26.142] with 32 bytes of data:
Reply from 100.76.26.142: bytes=32 time<1ms TTL=128
Reply from 100.76.26.142: bytes=32 time<1ms TTL=128
Reply from 100.76.26.142: bytes=32 time<1ms TTL=128
Reply from 100.76.26.142: bytes=32 time<1ms TTL=128
Ping statistics for 100.76.26.142:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
O IP '100.72.10.137' do nslookup é meu IP estático preferido da NIC primária.
O IP '100.76.26.142' do ping é meu ip estático da NIC Ethernet2.
O que estou tentando conseguir é que quando coloco 'server01.example.local' nas configurações do meu programa localizadas diretamente neste server01, o programa entrará em contato com o host local com o IP da LAN da NIC primária (100.72.10.137). Eu sei que isso pode ser resolvido adicionando '127.0.0.1 server01.example.local' ao arquivo hosts, mas quero entender esse problema mais profundamente.
Por que tenho respostas diferentes no utilitário ping? Já desativei 'Desativar NetBIOS sobre TCP/IP' na NIC. Também desabilitei o serviço 'TCP/IP NetBIOS Helper'. Tenho 100% de certeza de que meu arquivo hosts está vazio. Reiniciei o servidor, removi o cache (ipconfig/flushdns). Presumo que o ping agora deva tentar resolver o endereço usando os servidores DNS apenas na NIC primária. No entanto, parece que há outro componente ou lógica subjacente no sistema operacional Windows que me retorna um endereço IP errado usando ping.
Meu palpite sobre o que aconteceu:
Essa suposição requer que todas as interfaces estejam conectadas à rede. O Windows 10/11 dá muito menos importância às métricas do que as versões anteriores.
Ok, descobri que em uma tabela de rotas do meu sistema operacional, duas interfaces tinham o mesmo valor de métrica. Alterei os valores métricos das interfaces de Automático para Manual e defini o valor métrico mais baixo na interface Ethernet0. Também precisei alterar o valor da métrica nas interfaces Ethernet1 e Ethernet2 para um valor mais alto. Agora o ping está me retornando o endereço IP correto.
Ainda não entendo como o ping (fluxo de resolução DNS do sistema operacional subjacente) decide qual endereço IP será retornado quando duas NICs tiverem o mesmo valor de métrica neste caso.