現在、ドメインレジストラーとDNSは、不明なドメインへのDNS要求を無視します。無視するということは、ブラックホールを意味し、応答しないことを意味します。これにより、DNSクライアントとリゾルバライブラリは再試行、バックオフ、最後にタイムアウトします。
dig @NS3.DNSOWL.COM somedomainthatdoesntexist.org
...
;; connection timed out; no servers could be reached
他の一般的なドメインネームサービスを調査すると、他のプロバイダーは5(拒否)のRCODEを返すため、この動作は非常にユニークです。
dig @DNS1.NAME-SERVICES.COM somedomainthatdoesntexist.org
dig @NS-284.AWSDNS-35.COM somedomainthatdoesntexist.org
dig @NS21.DOMAINCONTROL.COM somedomainthatdoesntexist.org
すべて次のようなものを返します。
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 64732
または
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 31219
サーバールームのフロアにリクエストを単にドロップするのではなく、返すREFUSED
かNXDOMAIN
すぐに返すことが適切です。
サーバーが応答しないことについてプロバイダーに不平を言うと、サーバーが違反しているというRFCを引用するように頼まれます。サーバーがすべての要求に応答する必要があることを証明するように彼らが私に求めているのは奇妙ですが、それはそうです。
質問:
- 私の規定では、リクエストIDが重複していないか、何らかのDOS応答がない限り、サーバーは常にリクエストに応答する必要があります。これは正しいです?
- 規定をサポートするには、どのRFCと特定のセクションを引用すればよいですか?
私にとって、DNSクエリに応答しないのは悪いことです。ほとんどのクライアントはバックオフし、同じクエリを同じDNSサーバーまたは別のサーバーに再送信します。クライアントの速度が低下するだけでなく、権限のあるネームサーバーとNSエントリに応じて、独自のサーバーまたは他のサーバーによって同じクエリが再度実行されます。
ではRFC 1536および2308 Iは、パフォーマンス上の理由と同じクエリの停止、再送信にネガティブキャッシュに関する多くの情報を参照してください。で4074私は、クライアントが空の応答の別の一例であるAのRRについて質問させなければならないのIPv6情報がありません知っているので、0のRCODEとの空の答えを返すの情報を参照してください。
しかし、おそらく暗示されているために、DNSサーバーが要求に応答する必要があるというRFCが見つかりません。
特定の問題は、ドメイン(および関連するDNSレコード)をサーバーに移行するとき、または新しいドメインをサービスに登録してから最初のX分後に発生します。権限のあるネームサーバーが変更されるまでに時間がかかります(最近ではかなり高速です)が、サーバーがDNSレコードの提供を開始します。この遅延時間中、DNSクライアントはサーバーが信頼できると考えますが、たとえリクエストがあったとしてもリクエストに応答しませんREFUSED
。ラグは大丈夫ですが、DNS要求に応答しないという決定には同意しません。記録のために、私は彼らのシステムのこれらの制限を回避する方法を理解していますが、私は彼らとサービスを改善してDNSプロトコルとより一致するように彼らと協力しています。
助けてくれてありがとう。
編集:
これを投稿して私のプロバイダーにフォローアップしてから数ヶ月以内に、彼らNXDOMAIN
は未知のドメインに戻るようにサーバーを変更しました。