環境是一個具有單一路由器的專用網絡,使用 DD-WRT 的 dnsmasq 來解析名稱並進行快取。透過 DNS 解析主機效果很好:
挖掘 +short @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?