3
2
The enviroment is a private network with a single router using DD-WRT's dnsmasq to resolve names and do caching. Resolving hosts via DNS works fine:
dig +short @192.168.1.1 gamma
192.168.1.22
Now, when trying to access a SMB share on a host or even simply pinging it, Windows doesn't even try to resolve the name through DNS, but instead requests LLMNR and NBNS resolution, both which I want to avoid.
Here's a output of wireshark when pinging the host gamma, notice that there is no DNS resolution whatsoever:
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>
On the other hand, pinging a host address with a FQDN, like gamma.local, always uses 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
Here's some output of my client's configuration:
netsh dnsclient show state
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 /all
Host Name . . . . . . . . . . . . : BETA
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
Now I've search high and low for a solution, but from what I've gathered, Windows only performs real DNS resolution when connected to a Domain Controller. Is this changeable? Maybe set the client into a mode where it thinks it is connected to a Domain Controller?
The only solution I've found so far would be to append a .local DNS suffix through the adapter's DNS configuration (Windows does send DNS queries for gamma.local for example), but isn't there a way to set Windows to always resolve names like gamma though DNS first?
have you tried setting DNS IP's in the network configuration GUI? – Lizz – 2012-12-14T06:13:48.777
have you found a solution for it ? – Kousalik – 2014-02-13T14:47:30.757
Sadly not. I'm still using DNS suffixes which work in most applications, but not all :( – silverwind – 2014-02-23T12:54:10.170