该环境是一个私有网络,其中有一个路由器,使用 DD-WRT 的 dnsmasq 来解析名称并进行缓存。通过 DNS 解析主机可以正常工作:
挖 + 短路 @192.168.1.1 伽马
192.168.1.22
现在,当尝试访问主机上的 SMB 共享或甚至只是 ping 它时,Windows 甚至不会尝试通过 DNS 解析名称,而是请求 LLMNR 和 NBNS 解析,而这两种情况都是我想要避免的。
这是 ping 主机时 wireshark 的输出伽马,请注意,根本没有任何 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>
另一方面,使用 FQDN ping 主机地址,例如伽马.局部,始终使用 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
以下是我的客户端配置的一些输出:
netsh dnsclient 显示状态
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 /全部
Host Name . . . . . . . . . . . . : BETA
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
现在我到处寻找解决方案,但据我所知,Windows 仅在连接到域控制器时执行真正的 DNS 解析。这可以改变吗?也许将客户端设置为这样一种模式:想它连接到域控制器吗?
到目前为止,我发现的唯一解决方案是通过适配器的 DNS 配置附加 .local DNS 后缀(Windows做例如,发送 gamma.local 的 DNS 查询),但是有没有办法将 Windows 设置为始终解析以下名称伽马先通过 DNS 吗?