O ambiente é uma rede privada com um único roteador usando dnsmasq do DD-WRT para resolver nomes e fazer cache. A resolução de hosts via DNS funciona bem:
cavar +curto @192.168.1.1 gama
192.168.1.22
Agora, ao tentar acessar um compartilhamento SMB em um host ou simplesmente fazer ping nele, o Windows nem tenta resolver o nome por meio de DNS, mas solicita a resolução LLMNR e NBNS, ambas as quais desejo evitar.
Aqui está uma saída do wireshark ao executar ping no hostgama, observe que não há nenhuma resolução de DNS:
0.000000 192.168.1.11 -> 224.0.0.252 LLMNR 65 Standard query 0x64a0 A gamma
0.099582 192.168.1.11 -> 224.0.0.252 LLMNR 65 Standard query 0x64a0 A gamma
0.303237 192.168.1.11 -> 192.168.1.255 NBNS 92 Name query NB GAMMA<00>
1.052808 192.168.1.11 -> 192.168.1.255 NBNS 92 Name query NB GAMMA<00>
1.802938 192.168.1.11 -> 192.168.1.255 NBNS 92 Name query NB GAMMA<00>
Por outro lado, executar ping em um endereço de host com um FQDN, comogama.local, sempre usa DNS:
0.426289 192.168.1.11 -> 192.168.1.1 DNS 71 Standard query 0xe319 A gamma.local
0.427027 192.168.1.1 -> 192.168.1.11 DNS 87 Standard query response 0xe319 A 192.168.1.22
Aqui estão alguns resultados da configuração do meu cliente:
netsh dnsclient mostrar estado
Name Resolution Policy Table Options
--------------------------------------------------------------------
Query Failure Behavior : Always fall back to LLMNR and
NetBIOS for any kinds of errors
Query Resolution Behavior : Resolve both IPv4 and IPv6
addresses for names
Network Location Behavior : Never use Direct Access settings
Machine Location : Outside corporate network
Direct Access Settings : Not Configured
DNSSEC Settings : Not Configured
ipconfig /todos
Host Name . . . . . . . . . . . . : BETA
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
Agora procurei por uma solução de alto a baixo, mas pelo que descobri, o Windows só executa resolução de DNS real quando conectado a um controlador de domínio. Isso é mutável? Talvez coloque o cliente em um modo onde eleachaele está conectado a um controlador de domínio?
A única solução que encontrei até agora seria anexar um sufixo DNS .local por meio da configuração DNS do adaptador (Windowsfazenviar consultas DNS para gamma.local por exemplo), mas não há uma maneira de configurar o Windows para sempre resolver nomes comogamaembora o DNS primeiro?