(由于我的许多原始测试与新信息无关,因此重写了大部分问题)
我在使用Server 2012R2 DNS服务器时遇到问题。这些问题的最大副作用是Exchange电子邮件无法通过。在尝试A记录之前,请交换对AAAA记录的查询。当看到AAAA记录的SERVFAIL时,它甚至没有尝试A记录,而是放弃了。
对于某些域,当查询我的活动目录DNS服务器时,我得到SERVFAIL而不是NOERROR,没有结果。
我已经从运行DNS的几个不同的Server 2012R2域控制器中尝试过此操作。其中之一是一个完全独立的域,位于不同防火墙和Internet连接后面的不同网络上。
我知道导致此问题的两个地址是smtpgw1.gov.on.ca
和mxmta.owm.bell.net
我一直dig
在Linux机器上使用它进行测试(192.168.5.5是我的域控制器):
grant@linuxbox:~$ dig @192.168.5.5 smtpgw1.gov.on.ca -t AAAA
; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> @192.168.5.5 smtpgw1.gov.on.ca -t AAAA
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 56328
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;smtpgw1.gov.on.ca. IN AAAA
;; Query time: 90 msec
;; SERVER: 192.168.5.5#53(192.168.5.5)
;; WHEN: Wed Oct 21 14:09:10 EDT 2015
;; MSG SIZE rcvd: 46
但是,对公共域控制器的查询按预期工作:
grant@home-ssh:~$ dig @4.2.2.1 smtpgw1.gov.on.ca -t AAAA
; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> @4.2.2.1 smtpgw1.gov.on.ca -t AAAA
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 269
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 8192
;; QUESTION SECTION:
;smtpgw1.gov.on.ca. IN AAAA
;; Query time: 136 msec
;; SERVER: 4.2.2.1#53(4.2.2.1)
;; WHEN: Wed Oct 21 14:11:19 EDT 2015
;; MSG SIZE rcvd: 46
正如我所说,我已经在两个不同的网络和域上进行了尝试。一个是全新的域,该域肯定具有DNS的所有默认设置。另一个已迁移到Server 2012,因此某些旧设置可能会沿用2003/2008。我对他们两个都得到相同的结果。
禁用EDNS可以dmscnd /config /enableednsprobes 0
修复它。我看到许多有关EDNS在Server 2003中是一个问题的搜索结果,但与我在Server 2012中看到的不完全匹配。这两个防火墙都没有EDNS的问题。但是,禁用EDNS只是暂时的解决方法-它会阻止DNSSEC的使用,并可能导致其他问题。
我还看到了一些有关Server 2008R2和EDNS问题的帖子,但这些帖子都说Server 2012中已修复问题,因此它应该可以正常工作。
我也尝试过为DNS启用调试日志。我可以看到我期望的数据包,但是对于为什么它返回SERVFAIL并不能给我太多的了解。这是DNS服务器调试日志的相关部分:
第一个数据包-从客户端查询到我的DNS服务器
2015年10月16日9:42:29 0974数据包000000EFF1BF01A0 UDP Rcv 172.16.0.254 a61e Q [2001 D NOERROR] AAAA(7)smtpgw1(3)gov(2)on(2)ca(0) 0000000FF1BF01A0上的UDP问题信息 插座= 508 远程地址172.16.0.254,端口50764 时间查询= 4556080,排队= 0,过期= 0 Buf长度= 0x0fa0(4000) 信息长度= 0x002e(46) 信息: XID 0xa61e 标志0x0120 QR 0(问题) 操作码0(查询) AA 0 TC 0 RD 1 RA 0 零0 CD 0 公元1年 RCODE 0(无错误) 数量1 帐户0 NSCOUNT 0 人数1 问题部分: 偏移= 0x000c,RR计数= 0 名称“(7)smtpgw1(3)gov(2)on(2)ca(0)” QTYPE AAAA(28) QCLASS 1 解答部分: 空的 权限部分: 空的 其他部分: 偏移= 0x0023,RR计数= 0 名称“(0)” 类型OPT(41) 4096级 TTL 0 DLEN 0 数据 缓冲区大小= 4096 Rcode Ext = 0 Rcode Full = 0 版本= 0 标志= 0
第二个数据包-从我的DNS服务器查询到他们的DNS服务器
2015年10月16日9:42:29 0974数据包000000EFF0A22160 UDP Snd 204.41.8.237 3e6c Q [0000 NOERROR] AAAA(7)smtpgw1(3)gov(2)on(2)ca(0) 000000EFF0A22160上的UDP问题信息 插座= 9812 远程地址204.41.8.237,端口53 时间查询= 0,已排队= 0,到期= 0 Buf长度= 0x0fa0(4000) 信息长度= 0x0023(35) 信息: XID 0x3e6c 标志0x0000 QR 0(问题) 操作码0(查询) AA 0 TC 0 RD 0 RA 0 零0 CD 0 公元0 RCODE 0(无错误) 数量1 帐户0 NSCOUNT 0 人数0 问题部分: 偏移= 0x000c,RR计数= 0 名称“(7)smtpgw1(3)gov(2)on(2)ca(0)” QTYPE AAAA(28) QCLASS 1 解答部分: 空的 权限部分: 空的 其他部分: 空的
第三个数据包-来自其DNS服务器的响应(NOERROR)
2015年10月16日9:42:29 0974数据包000000EFF2188100 UDP Rcv 204.41.8.237 3e6c RQ [0084 A NOERROR] AAAA(7)smtpgw1(3)gov(2)on(2)ca(0) 000000EFF2188100上的UDP响应信息 插座= 9812 远程地址204.41.8.237,端口53 时间查询= 4556080,排队= 0,过期= 0 Buf长度= 0x0fa0(4000) 信息长度= 0x0023(35) 信息: XID 0x3e6c 标记0x8400 QR 1(回应) 操作码0(查询) AA 1 TC 0 RD 0 RA 0 零0 CD 0 公元0 RCODE 0(无错误) 数量1 帐户0 NSCOUNT 0 人数0 问题部分: 偏移= 0x000c,RR计数= 0 名称“(7)smtpgw1(3)gov(2)on(2)ca(0)” QTYPE AAAA(28) QCLASS 1 解答部分: 空的 权限部分: 空的 其他部分: 空的
第四个数据包-从我的DNS服务器到客户端的响应(SERVFAIL)
2015年10月16日9:42:29 0974数据包000000EFF1BF01A0 UDP Snd 172.16.0.254 a61e RQ [8281 DR SERVFAIL] AAAA(7)smtpgw1(3)gov(2)on(2)ca(0) 000000EFF1BF01A0处的UDP响应信息 插座= 508 远程地址172.16.0.254,端口50764 时间查询= 4556080,已排队= 4556080,到期= 4556083 Buf长度= 0x0fa0(4000) 信息长度= 0x002e(46) 信息: XID 0xa61e 标记0x8182 QR 1(回应) 操作码0(查询) AA 0 TC 0 RD 1 1区 零0 CD 0 公元0 RCODE 2(SERVFAIL) 数量1 帐户0 NSCOUNT 0 人数1 问题部分: 偏移= 0x000c,RR计数= 0 名称“(7)smtpgw1(3)gov(2)on(2)ca(0)” QTYPE AAAA(28) QCLASS 1 解答部分: 空的 权限部分: 空的 其他部分: 偏移= 0x0023,RR计数= 0 名称“(0)” 类型OPT(41) 4000级 TTL 0 DLEN 0 数据 缓冲区大小= 4000 Rcode Ext = 0 Rcode Full = 2 版本= 0 标志= 0
其他注意事项:
- 其中一个网络具有本地IPv6互联网访问权限,而另一个网络则没有(但是使用默认设置在服务器上启用了IPv6堆栈)。似乎不是IPv6网络问题
- 它并不影响所有域。例如,
dig @192.168.5.5 -t AAAA serverfault.com
返回NOERROR,并且没有结果。同样的方法可以google.com
正确返回google的IPv6地址。 - 尝试从KB3014171安装修补程序,没有区别。
- KB3004539的更新已安装。
编辑2015年11月7日
我已经安装了另一台非域加入Server 2012R2的计算机,并安装了DNS服务器角色,并使用命令进行了测试nslookup -type=aaaa smtpgw1.gov.on.ca localhost
。它没有相同的问题。
两个VM都位于同一主机和同一网络上,从而消除了任何网络/防火墙问题。现在下降到补丁程序级别,或成为不同的域成员/域控制器。
编辑2015年11月8日
应用所有更新,没有差异。仔细检查了一下我的新测试服务器和域控制器的DNS设置之间是否存在任何配置差异,并且-域控制器具有转发器设置。
现在,我确定我已尝试使用转发器,但没有进行初始测试,但仅dig
在Linux机器上使用了它。在Windows机器上使用nslookup时,无论是否设置转发器(与Google,OpenDNS,4.2.2.1和我的ISP DNS服务器一起尝试),我的确会得到略有不同的结果。
设置了转发器后,我得到Server failed
。
没有转发器(因此它使用根DNS服务器),我得到No IPv6 address (AAAA) records available for smtpgw1.gov.on.ca
。
但这仍然与我在没有IPv6记录的其他域中获得的结果不同-Windows上的nslookup只会为其他域返回任何结果。
有或没有转发器,在查询我的Windows DNS服务器时dig
仍会显示SERVFAIL
该名称。
即使我不参与我的Windows DNS服务器,问题域与其他似乎相关的域之间也存在微小差异:
dig -t aaaa @8.8.8.8 smtpgw1.gov.on.ca
没有答案,并且没有权限部分。
dig -t aaaa @8.8.8.8 serverfault.com
不返回任何答案,但是有一个授权部分。我尝试使用的其他大多数域也是如此,无论我使用哪种解析器。
那么,为什么缺少该权限部分?为什么在其他DNS服务器没有这样做的情况下,Windows DNS服务器却将其视为失败?