(私の元のテストの多くは新しい情報に照らして無関係であるため、この質問のほとんどを書き換えます)
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
その他の注意事項:
Dig @192.168.5.5 -t AAAA serverfault.com
_はNOERRORを返し、結果はありません。 _google.com
_についても同じことが、GoogleのIPv6アドレスを適切に返します。ドメインに参加していない別のサーバー2012R2マシンをセットアップし、DNSサーバーの役割をインストールして、_nslookup -type=aaaa smtpgw1.gov.on.ca localhost
_コマンドでテストしました。同じ問題はありません。
両方のVMが同じホスト上にあり、同じネットワーク上にあるため、ネットワーク/ファイアウォールの問題を排除できます。違いはパッチレベルまたはドメインメンバー/ドメインコントローラーのいずれかに下がっています。
すべての更新を適用し、違いはありませんでした。新しいテストサーバーとドメインコントローラーの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サーバーがそれを失敗として扱うのか?
ネットワークの詳細をもう少し調べて読みました。 AAAAレコードの要求は、存在しない場合、SOAを返します。 SOAは、要求されている別のドメイン用です。Windowsが応答を拒否しているのはそのためだと思います。mx.atomwide.comのAAAAを要求してください。応答SOA for lgfl.org.uk.この情報である程度前進できるかどうかを確認します。編集:将来の参考のために、「汚染に対する安全なキャッシュ」を一時的にオフにすると、クエリが成功するようになります。理想的ではありませんが、問題が危険なDNSレコードにあることを証明しますRFC4074も良いリファレンスです-イントロとセクション。
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(ゼロ)を入力してください。