我遇到了Server 2012R2 DNS服务器的问题.这些问题最大的副作用是Exchange电子邮件无法通过.在尝试A记录之前交换AAAA记录的查询.当它看到SERVAIL为AAAA记录时,它甚至没有尝试A记录,它只是放弃了.
对于某些域,当查询我的活动目录DNS服务器时,我得到SERVFAIL而不是NOERROR而没有结果.
我从几个运行DNS的不同Server 2012R2域控制器中尝试过这个.其中一个是完全独立的域,位于不同防火墙和互联网连接后面的不同网络上.
我知道导致此问题的两个地址是smtpgw1.gov.on.ca和mxmta.owm.bell.net
我一直在linux机器上使用dig来测试这个(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,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年的一些旧设置可能已经延续.我对它们都得到了相同的结果.
使用dmscnd / config / enableednsprobes 0禁用EDNS修复它.我看到有很多关于EDNS的搜索结果是Server 2003中的一个问题,但与我在Server 2012中看到的相比并不多.防火墙都没有EDNS的问题.禁用EDNS应该只是一个临时的解决方法 – 它可以防止使用DNSSEC,并可能导致其他问题.
我还看到一些关于Server 2008R2和EDNS问题的帖子,但是那些相同的帖子说服务器在2012年修复了,所以它应该正常工作.
我也尝试启用DNS的调试日志.我可以看到我期望的数据包,但是它没有让我深入了解它为什么返回SERVFAIL.以下是DNS服务器调试日志的相关部分:
第一个数据包 – 从客户端查询到我的DNS服务器
10/16/2015 9:42:29 AM 0974 PACKET 000000EFF1BF01A0 UDP Rcv 172.16.0.254 a61e Q [2001 D NOERROR] AAAA (7)smtpgw1(3)gov(2)on(2)ca(0) UDP question info at 000000EFF1BF01A0 Socket = 508 Remote addr 172.16.0.254,port 50764 Time Query=4556080,Queued=0,Expire=0 Buf length = 0x0fa0 (4000) Msg length = 0x002e (46) Message: XID 0xa61e Flags 0x0120 QR 0 (QUESTION) OPCODE 0 (QUERY) AA 0 TC 0 RD 1 RA 0 Z 0 CD 0 AD 1 RCODE 0 (NOERROR) QCOUNT 1 ACOUNT 0 NSCOUNT 0 ARCOUNT 1 QUESTION SECTION: Offset = 0x000c,RR count = 0 Name "(7)smtpgw1(3)gov(2)on(2)ca(0)" QTYPE AAAA (28) QCLASS 1 ANSWER SECTION: empty AUTHORITY SECTION: empty ADDITIONAL SECTION: Offset = 0x0023,RR count = 0 Name "(0)" TYPE OPT (41) CLASS 4096 TTL 0 DLEN 0 DATA Buffer Size = 4096 Rcode Ext = 0 Rcode Full = 0 Version = 0 Flags = 0
第二个数据包 – 从我的DNS服务器查询到他们的DNS服务器
10/16/2015 9:42:29 AM 0974 PACKET 000000EFF0A22160 UDP Snd 204.41.8.237 3e6c Q [0000 NOERROR] AAAA (7)smtpgw1(3)gov(2)on(2)ca(0) UDP question info at 000000EFF0A22160 Socket = 9812 Remote addr 204.41.8.237,port 53 Time Query=0,Expire=0 Buf length = 0x0fa0 (4000) Msg length = 0x0023 (35) Message: XID 0x3e6c Flags 0x0000 QR 0 (QUESTION) OPCODE 0 (QUERY) AA 0 TC 0 RD 0 RA 0 Z 0 CD 0 AD 0 RCODE 0 (NOERROR) QCOUNT 1 ACOUNT 0 NSCOUNT 0 ARCOUNT 0 QUESTION SECTION: Offset = 0x000c,RR count = 0 Name "(7)smtpgw1(3)gov(2)on(2)ca(0)" QTYPE AAAA (28) QCLASS 1 ANSWER SECTION: empty AUTHORITY SECTION: empty ADDITIONAL SECTION: empty
第三个数据包 – 来自其DNS服务器的响应(NOERROR)
10/16/2015 9:42:29 AM 0974 PACKET 000000EFF2188100 UDP Rcv 204.41.8.237 3e6c R Q [0084 A NOERROR] AAAA (7)smtpgw1(3)gov(2)on(2)ca(0) UDP response info at 000000EFF2188100 Socket = 9812 Remote addr 204.41.8.237,port 53 Time Query=4556080,Expire=0 Buf length = 0x0fa0 (4000) Msg length = 0x0023 (35) Message: XID 0x3e6c Flags 0x8400 QR 1 (RESPONSE) OPCODE 0 (QUERY) AA 1 TC 0 RD 0 RA 0 Z 0 CD 0 AD 0 RCODE 0 (NOERROR) QCOUNT 1 ACOUNT 0 NSCOUNT 0 ARCOUNT 0 QUESTION SECTION: Offset = 0x000c,RR count = 0 Name "(7)smtpgw1(3)gov(2)on(2)ca(0)" QTYPE AAAA (28) QCLASS 1 ANSWER SECTION: empty AUTHORITY SECTION: empty ADDITIONAL SECTION: empty
第四个数据包 – 从我的DNS服务器到客户端的响应(SERVFAIL)
10/16/2015 9:42:29 AM 0974 PACKET 000000EFF1BF01A0 UDP Snd 172.16.0.254 a61e R Q [8281 DR SERVFAIL] AAAA (7)smtpgw1(3)gov(2)on(2)ca(0) UDP response info at 000000EFF1BF01A0 Socket = 508 Remote addr 172.16.0.254,Queued=4556080,Expire=4556083 Buf length = 0x0fa0 (4000) Msg length = 0x002e (46) Message: XID 0xa61e Flags 0x8182 QR 1 (RESPONSE) OPCODE 0 (QUERY) AA 0 TC 0 RD 1 RA 1 Z 0 CD 0 AD 0 RCODE 2 (SERVFAIL) QCOUNT 1 ACOUNT 0 NSCOUNT 0 ARCOUNT 1 QUESTION SECTION: Offset = 0x000c,RR count = 0 Name "(0)" TYPE OPT (41) CLASS 4000 TTL 0 DLEN 0 DATA Buffer Size = 4000 Rcode Ext = 0 Rcode Full = 2 Version = 0 Flags = 0
其他注意事项:
>其中一个网络具有本机IPv6 Internet访问权限,另一个网络没有(但是在具有默认设置的服务器上启用了IPv6堆栈).似乎不是IPv6网络问题
>它不会影响所有域.例如,挖掘@ 192.168.5.5 -t AAAA serverfault.com返回NOERROR,没有结果. google.com同样可以正确返回谷歌的IPv6地址.
>尝试从KB3014171安装修补程序,没有任何区别.
>已安装KB3004539的更新.
编辑2015年11月7日
我已经设置了另一个非域加入的Server 2012R2计算机,并安装了DNS服务器角色,并使用命令nslookup -type = aaaa smtpgw1.gov.on.ca localhost进行了测试.它没有相同的问题.
两个VM位于同一主机和同一网络上,因此可以消除任何网络/防火墙问题.它现在已经下降到补丁级别或者是域成员/域控制器,这会产生差异.
编辑2015年11月8日
应用所有更新,没有任何区别.仔细检查我的新测试服务器和我的域控制器的DNS设置之间是否存在任何配置差异,并且有 – 域控制器已设置转发器.
现在,我确定我尝试使用转发器,而不是在我的初始测试中,但我只是尝试使用linux机器上的dig.当我在Windows机器上使用nslookup时,在使用和不使用转发器设置(尝试使用Google,OpenDNS,4.2.2.1和我的ISP DNS服务器)时,我会得到稍微不同的结果.
使用转发器设置,我得到服务器失败.
没有转发器(因此它使用根DNS服务器),我得到smtpgw1.gov.on.ca没有可用的IPv6地址(AAAA)记录.
但这仍然与我没有获得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没有回复,但确实有权限部分.无论我使用哪种解析器,我尝试的其他大多数域都是如此.
那么为什么缺少权限部分,以及为什么Windows DNS服务器在其他DNS服务器没有时将其视为失败?