我最近发现我的 Windows 网络(Windows Server 2008 R2 也是 DC)中的 DNS 服务器将两个请求转发到外部 DNS 服务器。
如果我输入如下命令:
nslookup google.com dc1.mycompany.local
域控制器收到后,转发两个请求:
[+] google.com.mycompany.local
[+] google.com
有谁知道如何禁用此功能,因为它会不必要地加倍 DNS 请求
问候
答案1
该[+] google.com.mycompany.local
条目是由于您的本地域名位于客户的域名后缀搜索列表。删除它意味着仅针对域内机器的主机名的查找将会失败 - 所有 DNS 查询都需要 FQDN,这可能是不可取的。
话虽如此,如果您希望禁用它,您可以通过 GPO 来实现。(或者在每个客户端上手动操作。)GPO 位于:Computer Configuration
-> Policies
-> Administrative Templates
-> Network
->DNS Client
只需附加一个空的后缀列表,就不会添加任何内容。
答案2
您如何确定服务器正在转发请求?接收请求的服务器和转发请求的服务器是两码事。您是否在服务器上运行了数据包捕获来验证服务器是否正在转发请求?
除了实际发生转发的情况外,使用 nslookup 并提交不完全合格的查询时,此行为完全正常。您在查询中省略了尾随点 (.)(google.com 而不是 google.com.),因此在将查询提交给服务器时,本地 DNS 后缀(主要和/或连接特定)将附加到查询中。这是 nslookup 的功能,而不是 DNS 客户端本身的功能。请参阅此处以了解说明:
http://support.microsoft.com/kb/200525
我使用我的 DNS 服务器进行了测试,我的 DNS 服务器没有转发带有本地 DNS 后缀的请求。它们仅在本地 DNS 后缀被剥离后才转发请求。
我附上了 2 张屏幕截图来说明我的观点。在第一个屏幕截图中,您可以看到我的客户端在启用调试的情况下发出的 nslookup 查询。在第二个屏幕截图中,您可以看到我的服务器上捕获的 DNS 流量。您会清楚地看到,服务器接收带有和不带有本地 DNS 后缀的请求,但只有在本地 DNS 后缀被删除后才会转发查询。