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


17

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

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

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

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

私はこの問題を引き起こす知っている二つのアドレスであるsmtpgw1.gov.on.camxmta.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

私が言ったように、私は2つの異なるネットワークとドメインでこれを試しました。1つはまったく新しいドメインであり、これには間違いなくDNSのすべてのデフォルト設定があります。もう1つは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サーバーへのクエリ

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)
000000EFF1BF01A0のUDP質問情報
  ソケット= 508
  リモートアドレス172.16.0.254、ポート50764
  時間クエリ= 4556080、キュー= 0、有効期限= 0
  バフの長さ= 0x0fa0(4000)
  メッセージの長さ= 0x002e(46)
  メッセージ:
    XID 0xa61e
    フラグ0x0120
      QR 0(質問)
      オペコード0(クエリ)
      AA 0
      TC 0
      RD 1
      RA 0
      Z 0
      CD 0
      AD 1
      RCODE 0(エラーなし)
    QCOUNT 1
    ACOUNT 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)」
      タイプオプト(41)
      クラス4096
      TTL 0
      DLEN 0
      データ   
        バッファサイズ= 4096
        Rcode Ext = 0
        Rcode Full = 0
        バージョン= 0
        フラグ= 0

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

10/16/2015 9:42:29 AM 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
  Time Query = 0、Queued = 0、Expire = 0
  バフの長さ= 0x0fa0(4000)
  メッセージの長さ= 0x0023(35)
  メッセージ:
    XID 0x3e6c
    フラグ0x0000
      QR 0(質問)
      オペコード0(クエリ)
      AA 0
      TC 0
      RD 0
      RA 0
      Z 0
      CD 0
      AD 0
      RCODE 0(エラーなし)
    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
    回答セクション:
      空の
    権限セクション:
      空の
    追加セクション:
      空の

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

10/16/2015 9:42:29 AM 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
  バフの長さ= 0x0fa0(4000)
  メッセージの長さ= 0x0023(35)
  メッセージ:
    XID 0x3e6c
    フラグ0x8400
      QR 1(応答)
      オペコード0(クエリ)
      AA 1
      TC 0
      RD 0
      RA 0
      Z 0
      CD 0
      AD 0
      RCODE 0(エラーなし)
    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)

10/16/2015 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)
000000EFF1BF01A0のUDP応答情報
  ソケット= 508
  リモートアドレス172.16.0.254、ポート50764
  時間クエリ= 4556080、キュー= 4556080、有効期限= 4556083
  バフの長さ= 0x0fa0(4000)
  メッセージの長さ= 0x002e(46)
  メッセージ:
    XID 0xa61e
    フラグ0x8182
      QR 1(応答)
      オペコード0(クエリ)
      AA 0
      TC 0
      RD 1
      RA 1
      Z 0
      CD 0
      AD 0
      RCODE 2(SERVFAIL)
    QCOUNT 1
    ACOUNT 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)」
      タイプオプト(41)
      クラス4000
      TTL 0
      DLEN 0
      データ   
        バッファサイズ= 4000
        Rcode Ext = 0
        Rcode Full = 2
        バージョン= 0
        フラグ= 0

その他の注意事項:

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

2015年11月7日編集

別の非ドメイン参加サーバー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応答を返しませんが、権限セクションがあります。したがって、使用するリゾルバに関係なく、私が試みる他のほとんどのドメインも同様です。

では、なぜその権限セクションが欠落しているのでしょうか?また、Windows DNSサーバーは、他のDNSサーバーがそうしないのに、それを失敗として扱うのはなぜですか?


これらのテストをExchangeサーバーから実行していますか?そうでない場合は、Exchangeの観点から確認できるようにすることをお勧めします。ExchangeサーバーからSMTPDiagを実行することもできます。ネットワーク/ DNSアクティビティの詳細を表示できるように、Exchangeサーバーでネットワークキャプチャを実行しながら実行することをお勧めします。SMTPDiagは古いツールですが、インストールを必要としないコマンドラインツールなので、Exchangeのすべてのバージョンで動作するはずです。- microsoft.com/en-us/download/details.aspx?id=11393
joeqwerty

一部のネットワークデバイスは、EDNSパケットを認識せず、拒否します。ネットワークチームは最近、新しいデバイス/設定を導入しましたか?この可能性を排除するには、google.comのAAAAレコードを解決してみてください。IPv6アドレスが返されます。
strongline

@strongline EDNSパケットは正常に送信されます。GoogleのAAAAレコードは機能しますが、私が知っている他のいくつかのサイトでIPv6が実行されています。最近の唯一のチャンスは、最後のServer 2008R2 DC / DNSサーバーを取り除き、2012R2に置き換えることでした。
グラント

ご使用の環境でIPv6が無効になっていますか
ジムB

@JimBは実際には有効でも無効でもありません... IPv6スタックはサーバー上で実行されています。これは、デフォルトの構成でデフォルトでオンになっているためです。ゲートウェイとインターネット接続にはIPv6がまったくありません。
グラント

回答:


3

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


今日、私の環境でこれをテストしようとしますが、あなたは何かに夢中になっているかもしれません!
グラント

また、私はあなたのリンクを編集しました-署名とトピック外のリンクはここでは許可されていません。そうでなければあなたの優れた答えが削除されるのを見たくありません。
グラント

0

KB832223によると

原因

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

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

Microsoftの解決策は次のとおりです。

解決

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

Microsoftは、この問題を回避するために次の提案をしています。

回避策

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

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

dnscmd /config /enableednsprobes 0

注このコマンドでは、「enableednsprobes」の後に文字「O」ではなく0(ゼロ)を入力します。


私はこの記事を見ました-私が両方でテストしたファイアウォールは、Linux上で完全に動作することによって証明されるように、問題なくパケット化された大きなDNSを通過します。ednsを無効にするとDNSSECが使用できなくなるため、問題は修正されますが、良い解決策ではありません。
グラント

申し訳ありませんが、MicrosoftのガイダンスがLinuxにも適用されることを理解していませんでした。好奇心から、あなたが持っている任意のファイアウォールを介して作業しているMicrosoft OSを?
ティムペナー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.