がtest.example.com
存在せず、NXDOMAIN
実行するとが返されるdig
が、 がsubdomain.test.example.com
存在し、同じことを実行すると が返されることがわかっている場合、中間サブドメインが必ずしも存在しない可能性がある場合でも、ディープ サブドメインが存在することを確認する方法はありますか。具体的には、プローブまたはクエリを実行するときに、ディープ サブドメインの存在を示すNOERROR
ヒントを探しています。subdomain.test.example.com
答え1
test.example.com が存在せず、dig を実行すると NXDOMAIN が返されるが、subdomain.test.example.com が存在することがわかっているとします。
DNS 仕様では、これは不可能です。言い換えると、このゾーンの権威ネームサーバーが壊れていることを意味します。
見るRFC 8020: NXDOMAIN: 実際にはその下には何も存在しない
反復キャッシュ DNS リゾルバが NXDOMAIN 応答を受信すると、それをキャッシュに保存し、そのノードまたはそのノード以下のすべての名前とリソース レコード セット (RRset) は到達不能とみなされます。そのような名前に対する後続のクエリは、NXDOMAIN 応答を引き出す必要があります。
答え2
私はパトリック氏に同意しますが、実際の期待が何であるかについてもう少し明確に説明したいと思います。
subdomain.test.example.com
にレコードがあるが にレコードがない場合test.example.com
、「 が存在しない」という意味ではありませんtest.example.com
。この空のノードの用語は空の非終端記号(場合によっては耳鼻咽喉科)。
空の非終端記号である名前を照会する場合、適切な応答のタイプは次のようになります。ない NXDOMAIN
(これは「そのような名前はありません」という意味になります) ではなく、NODATA
(これは、ENT の場合、どのタイプを要求したかに関係なく、「要求されたタイプのレコードはありません」という意味になります)。
わかりやすくするために、応答タイプは、セクションのNODATA
応答コード です。NOERROR
SOA
AUTHORITY
そこにできたさらにサブドメインが存在するかどうかは、返された応答が ではないかどうかでNXDOMAIN
決まります。この名前にレコードがない (つまり、空の非終端である) ことも判明した場合は、実際に何かが存在するサブドメイン (1 つ以上のレベル下) が存在するはずです。
質問が示唆し、Patrick が説明したもう 1 つの側面は、一部のネームサーバーの実装にバグがあり、NXDOMAIN
これが適切な応答ではない状況でも送信することです。
このタイプの実装の欠陥により、一貫性のないデータが提供されることになり、ツリー構造であるはずのものが実際には接続されていない断片に分割されます。この動作は、以前に確認された応答が実際に何かを意味することに依存するリゾルバーの観点からは特に失敗でありNXDOMAIN
、DNSSEC で表現することもできません。