最近、サーバーのIPアドレスを要求するリモートサービス(ホストされたDNSプロバイダーを使用)が次の応答を返すという問題がありました。
DNS problem: SERVFAIL looking up A for mysql.xavamedia.nl
(更新:ここで言及されているリモートサービスはLet's Encryptです。私は バグ をこのトラッカーに対して提出したため、このパスに誘導されました。)
ローカルネットワークでテストしたところ、ホストされているDNSサーバーから空のDNS応答が返されることがあります。明らかにこれは断続的です。これは、DNSレコードがキャッシュにない場合にのみ発生し、DNSサーバーが本当にビジーな場合にのみ問題となるためです。
次に、空の応答メッセージのWiresharkの説明を示します。
もちろん、ほとんどのDNSクエリと応答はUDP経由で送信されるため、ローカルリゾルバは応答をしばらく待ってからあきらめます。私が今疑問に思っているのは、DNS応答時間のガイドラインはありますか? DNSホスティング業者は肩をすくめて、ローカルリゾルバーが空の応答を送信するのが早すぎると言っていました。私はこれまでこの問題に遭遇したことがありませんが、エラーモードのない空のDNS応答であるエラーモードに驚いています。
これがどのように機能するかについてのガイドライン、およびDNSホスティングが何か間違っていることをいつ/どのように証明できるかを誰かが知っていますか?
あなたが見ている空の応答は NODATA
と呼ばれる合成状態です。 NODATA
とNXDOMAIN
はどちらも名前が存在しないことを示しますが、NXDOMAIN
はすべての名前に適用されますbeneath示されたレコードも同様です。 NODATA
は、その名前が要求されていないタイプのレコードに関連付けられているか、または要求しているものの下に他のレコードがあることを通知しています。 (つまり、example.test.xavamedia.nl.
)
NODATA
およびNXDOMAIN
からのあなたの持ち帰りは、このコンテキストでは事実上同じです。要求された名前とタイプのレコードが存在しませんでした。要求されたドメインの信頼できるネームサーバーに到達しましたandその名前とタイプのレコードが存在しないと返信しました。これは通信エラーではありません。 権限のあるサーバーは、データがないと述べました。おそらく、あなたが話しているサーバーがすでにこのリクエストを処理しており、過去4時間以内にそのレコードの不在を否定的にキャッシュしていました。 (14400秒は、SOA xavamedia.nl.
のレコードによって定義される負のキャッシュ間隔です)
NXDOMAIN
もNODATA
自分自身もこのインスタンスで発生した場合はタイムアウトになりませんが、リゾルバライブラリはおそらくここからDNS検索サフィックスの追加に進みます。検索ドメインの権限のあるDNSサーバー。
これは、mysql.xavamedia.nl.
を検索したときにSERVFAIL
応答が発生した理由を説明するものではないことに注意してください。これは、再帰サーバーが信頼できるサーバーから回答を取得する際の問題を示しています。権限のあるサーバーがSERVFAIL
で応答したか、再帰サーバーが権限のあるサーバーに到達できなかったか、または再帰サーバーが返されたデータが無効であると判断しました。あなたが提供した情報でこれを証明することはできません。
RFC 1123のセクション「6.1.3.3効率的なリソースの使用」で定義されているものを除いて、特定のガイドラインを知りません http://tools.ietf.org/rfcmarkup?rfc=1123#page-77 =
「5秒以上」というタイムアウト値が指定されています。 RFCには、一時的な障害をキャッシュする必要があることも記載されています。これは、クライアントがRFCのセクション2.2に違反した場合に、過剰な量のDNS要求を防ぐためです。このセクションでは、ソフト障害が発生した場合、クライアントは再試行の間に「妥当な」時間待機する必要があると述べています。
このトピックに関するStackoverflowスレッドもありますが、実際の観測を除いて、それ以上の情報は含まれていません。 https://stackoverflow.com/questions/3036054/ideal-timeout-period-for-dns-lookup
このトピックについて私が言えることはこれだけです。他に誰か追加することがあれば、私も興味があります。