web-dev-qa-db-ja.com

一部のAAAAクエリに対してサーバー2012R2 DNSサーバーがSERVFAILを返す

(私の元のテストの多くは新しい情報に照らして無関係であるため、この質問のほとんどを書き換えます)

Server 2012R2 DNSサーバーに問題があります。これらの問題の最大の副作用は、Exchangeメールが通過しないことです。 Aレコードを試す前に、AAAAレコードのクエリを交換します。 AAAAレコードのSERVFAILを検出すると、Aレコードを試行することすらせず、あきらめるだけです。

一部のドメインでは、Active Directory DNSサーバーに対してクエリを実行すると、NOERRORではなくSERVFAILが返され、結果が表示されません。

DNSを実行しているいくつかの異なるサーバー2012R2ドメインコントローラーからこれを試しました。それらの1つは、別のファイアウォールとインターネット接続の背後にある別のネットワーク上の、完全に別のドメインです。

この問題の原因となる2つのアドレスは、_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, 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
_

言ったように、私は2つの異なるネットワークとドメインでこれを試しました。 1つはまったく新しいドメインで、間違いなくDNSのすべてのデフォルト設定があります。もう1つはServer 2012に移行されているため、2003/2008の古い設定の一部が引き継がれている可能性があります。どちらでも同じ結果が得られます。

_dmscnd /config /enableednsprobes 0_でEDNSを無効にすると修正されます。 EDNSに関する多くの検索結果がServer 2003で問題となっているのがわかりますが、Server 2012での問題とあまり一致しません。どちらのファイアウォールにもEDNSの問題はありません。 EDNSを無効にすることは、一時的な回避策ですが、DNSSECの使用を妨げ、他の問題を引き起こす可能性があります。

Server 2008R2とEDNSに関する問題についての投稿もいくつか見ましたが、それらの同じ投稿はServer 2012で修正されたため、正しく機能するはずだと言っています。

また、DNSのデバッグログを有効にしてみました。予想どおりのパケットは表示されますが、SERVFAILが返されている理由はわかりません。 DNSサーバーのデバッグログの関連部分は次のとおりです。

最初のパケット-クライアントからDNSサーバーへのクエリ

 2015/10/16 9:42:29 AM 0974パケット000000EFF1BF01A0 UDP Rcv 172.16.0.254 a61e Q [2001 D NOERROR] AAAA(7)smtpgw1(3)gov(2)on(2)ca(0 )
 UDP質問情報000000EFF1BF01A0 
ソケット= 508 
リモートアドレス172.16.0.254、ポート50764 
時間クエリ= 4556080、キュー= 0、有効期限= 0 
 Buf length = 0x0fa0(4000)
 Msg length = 0x002e(46)
 Message:
 XID 0xa61e 
 Flags 0x0120 
 QR 0(質問)
 OPCODE 0(クエリ)
 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 
質問セクション:
オフセット= 0x000c、RRカウント= 0 
名前 "(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 
名前 "(0)" 
 TYPE OPT(41)
 CLASS 4096 
 TTL 0 
 DLEN 0 
 DATA 
バッファサイズ= 4096 
 Rcode Ext = 0 
 Rcode Full = 0 
バージョン= 0 
フラグ= 0 

2番目のパケット-DNSサーバーからDNSサーバーへのクエリ

 2015/10/16 9:42:29 AM 0974パケット000000EFF0A22160 UDP Snd 204.41.8.237 3e6c Q [0000エラーなし] AAAA(7)smtpgw1(3)gov(2)on(2)ca(0) 
 UDP質問情報000000EFF0A22160 
ソケット= 9812 
リモートアドレス204.41.8.237、ポート53 
時間クエリ= 0、キュー= 0、期限切れ= 
 Buf length = 0x0fa0(4000)
 Msg length = 0x0023(35)
 Message:
 XID 0x3e6c 
 Flags 0x0000 
 QR 0 (質問)
 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 
質問セクション:
オフセット= 0x000c、RRカウント= 0 
名前 "(7)smtpgw1(3)gov(2)on(2)ca(0)" 
 QTYPE AAAA(28)
 QCLASS 1 [.___ _。] ANSWER SECTION:
 empty 
 AUTHORITY SECTION:
 empty 
 ADDITIONAL SECTION:
 empty 

3番目のパケット-DNSサーバーからの応答(NOERROR)

 10/16/2015 9:42:29 AM 0974パケット000000EFF2188100 UDP Rcv 204.41.8.237 3e6c RQ [エラーなし] AAAA(7)smtpgw1(3)gov(2)on(2)ca(0 )
 UDP応答情報000000EFF2188100 
ソケット= 9812 
リモートアドレス204.41.8.237、ポート53 
時間クエリ= 4556080、キュー= 0、有効期限= 0 
 Buf length = 0x0fa0(4000)
 Msg length = 0x0023(35)
 Message:
 XID 0x3e6c 
 Flags 0x8400 
 QR 1(応答)
 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 
質問セクション:
オフセット= 0x000c、RRカウント= 0 
名前 "(7)smtpgw1(3)gov(2)on(2)ca(0)" 
 QTYPE AAAA(28)
 QCLASS 1 
回答セクション:
空
権限セクション:
空
追加セクション:
空

4番目のパケット-DNSサーバーからクライアントへの応答(SERVFAIL)

 2015/10/16 9:42:29 AM 0974パケット000000EFF1BF01A0 UDP Snd 172.16.0.254 a61e RQ [8281 DR SERVFAIL] AAAA(7)smtpgw1(3)gov(2)on(2)ca(0 )
 UDP応答情報000000EFF1BF01A0 
ソケット= 508 
リモートアドレス172.16.0.254、ポート50764 
時間クエリ= 4556080、キュー= 4556080、有効期限= 4556083 
 Buf length = 0x0fa0(4000)
 Msg length = 0x002e(46)
 Message:
 XID 0xa61e 
 Flags 0x8182 
 QR 1(応答)
 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 
質問セクション:
オフセット= 0x000c、RRカウント= 0 
名前 "(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 
名前 "(0)" 
 TYPE OPT(41)
 CLASS 4000 
 TTL 0 
 DLEN 0 
 DATA 
バッファサイズ= 4000 
 Rcode Ext = 0 
 Rcode Full = 2 
バージョン= 0 
フラグ= 0 

その他の注意事項:

  • ネットワークの1つにはネイティブIPv6インターネットアクセスがあり、もう1つにはありません(ただし、デフォルト設定のサーバーではIPv6スタックが有効になっています)。 IPv6ネットワークの問題ではないようです
  • すべてのドメインに影響するわけではありません。たとえば、_Dig @192.168.5.5 -t AAAA serverfault.com_はNOERRORを返し、結果はありません。 _google.com_についても同じことが、GoogleのIPv6アドレスを適切に返します。
  • KB3014171 から修正プログラムをインストールしようとしましたが、違いはありませんでした。
  • KB3004539 からのアップデートはすでにインストールされています。

2015年11月7日を編集

ドメインに参加していない別のサーバー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サーバーで試した場合)がある場合とない場合で、わずかに異なる結果が得られます。

フォワーダーを設定すると、_Server failed_が返されます。

フォワーダーなしで(ルートDNSサーバーを使用するため)、No IPv6 address (AAAA) records available for smtpgw1.gov.on.caを取得します。

しかし、それはIPv6レコードを持たない他のドメインで得られるものと同じではありません-Windowsのnslookupは他のドメインの結果を返さないだけです。

フォワーダーの有無にかかわらず、Windows DNSサーバーにクエリを実行すると、Digはその名前のSERVFAILを引き続き表示します。

IS問題のドメインと他のドメインとの小さな違いがあり、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サーバーがそれを失敗として扱うのか?

17
Grant

ネットワークの詳細をもう少し調べて読みました。 AAAAレコードの要求は、存在しない場合、SOAを返します。 SOAは、要求されている別のドメイン用です。Windowsが応答を拒否しているのはそのためだと思います。mx.atomwide.comのAAAAを要求してください。応答SOA for lgfl.org.uk.この情報である程度前進できるかどうかを確認します。編集:将来の参考のために、「汚染に対する安全なキャッシュ」を一時的にオフにすると、クエリが成功するようになります。理想的ではありませんが、問題が危険なDNSレコードにあることを証明しますRFC4074も良いリファレンスです-イントロとセクション。

3
Shruti Chawla

KB83222 によると

原因

この問題は、Windows Server DNSでサポートされているDNSの拡張メカニズム(EDNS0)機能が原因で発生します。

EDNS0は、より大きなユーザーデータグラムプロトコル(UDP)パケットサイズを許可します。ただし、一部のファイアウォールプログラムでは、512バイトを超えるUDPパケットが許可されない場合があります。したがって、これらのDNSパケットはファイアウォールによってブロックされる可能性があります。

マイクロソフトの解決策は次のとおりです。

解決

この問題を解決するには、ファイアウォールプログラムを更新して、512バイトを超えるUDPパケットを認識して許可します。これを行う方法の詳細については、ファイアウォールプログラムの製造元に問い合わせてください。

マイクロソフトは、この問題を回避するために次の提案をしています。

Workaround

この問題を回避するには、WindowsベースのDNSサーバーでEDNS0機能をオフにします。これを行うには、次のアクションを実行します。

コマンドプロンプトで次のコマンドを入力し、Enterキーを押します。

dnscmd /config /enableednsprobes 0

注このコマンドでは、 "enableednsprobes"の後に文字 "O"ではなく0(ゼロ)を入力してください。

0
Tim Penner