ANSWER セクションに CNAME RR を含む NXDOMAIN

ANSWER セクションに CNAME RR を含む NXDOMAIN

console.aws.amazon.comで解決するとdig、次のようになります。

; <<>> DiG 9.10.6 <<>> console.aws.amazon.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35338
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;console.aws.amazon.com.        IN  A

;; ANSWER SECTION:
console.aws.amazon.com. 4   IN  CNAME   lbr-optimized.console-l.amazonaws.com.
lbr-optimized.console-l.amazonaws.com. 4 IN CNAME us-east-1.console.aws.amazon.com.
us-east-1.console.aws.amazon.com. 4 IN  CNAME   gr.console-geo.us-east-1.amazonaws.com.
gr.console-geo.us-east-1.amazonaws.com. 4 IN CNAME console.us-east-1.amazonaws.com.
console.us-east-1.amazonaws.com. 59 IN  A   54.239.30.25

ただし、解決するとus-east-1.console.aws.amazon.com次のようになりますNXDOMAIN:

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 33652
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; ANSWER SECTION:
us-east-1.console.aws.amazon.com. 60 IN CNAME   gr.console-geo.us-east-1.amazonaws.com.

;; AUTHORITY SECTION:
us-east-1.amazonaws.com. 60 IN  SOA ns-912.amazon.com. root.amazon.com. 1609664924 3600 900 7776000 60

;; Received 147 bytes from 52.9.146.37#53(ns-912.amazon.com) in 270 ms

どうやら、as 応答コードがあってもNXDOMAIN、CNAME の解決は続行されるようです。ただし、RFC によると (#8020 で確認しました)、NXDOMAINas 応答コードがある場合は、チェーンの末尾のドメインが存在しないことを意味するため、A RR は取得されないため、続行する必要があるようです...

チェーンの途中にがある理由が少しわかりません。ANSWER セクションにがある場合、 を無視して CNAME のチェーンを解決し続けてもNXDOMAIN安全ですか?NXDOMAINCNAME

このような疑問を解決する RFC はありますか?

答え1

(回答CNAME) + SOA(権限) + NXDOMAIN(rcode) タイプの回答は、サーバーが正規名 ( CNAME「ターゲット」) のステータスを実際に認識している場合に有効です。
この場合、 のネームサーバーは、正規名が存在しないと判断するゾーン (この CNAME が導くゾーン)aws.amazon.comも持つように設定されているようですus-east-1.amazonaws.com。問題は、これが実際にus-east-1.amazonaws.com使用されているゾーンではなく、 の実際の委任がus-east-1.amazonaws.comまったく異なるネームサーバーにつながることです。

関連する回答(質問から)を見ると、SOA権威セクション(否定的な回答の一部)の と、それが の「偽の」us-east-1.amazonaws.comゾーンからのものであることに注意してくださいns-912.amazon.com

$ dig @ns-912.amazon.com us-east-1.console.aws.amazon.com +norec

; <<>> DiG 9.11.25-RedHat-9.11.25-2.fc33 <<>> @ns-912.amazon.com us-east-1.console.aws.amazon.com +norec
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 19359
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;us-east-1.console.aws.amazon.com. IN   A

;; ANSWER SECTION:
us-east-1.console.aws.amazon.com. 60 IN CNAME   gr.console-geo.us-east-1.amazonaws.com.

;; AUTHORITY SECTION:
us-east-1.amazonaws.com. 60     IN      SOA     ns-912.amazon.com. root.amazon.com. 1609723312 3600 900 7776000 60

;; Query time: 152 msec
;; SERVER: 52.9.146.37#53(52.9.146.37)
;; WHEN: Mon Jan 04 01:21:54 UTC 2021
;; MSG SIZE  rcvd: 147

$

「実際」はus-east-1.amazonaws.com完全に別の場所に委任されます( ではありませんns-912.amazon.com)。

us-east-1.amazonaws.com. 86400  IN      NS      ns2.p31.dynect.net.
us-east-1.amazonaws.com. 86400  IN      NS      ns4.p31.dynect.net.
us-east-1.amazonaws.com. 86400  IN      NS      pdns5.ultradns.info.
us-east-1.amazonaws.com. 86400  IN      NS      pdns3.ultradns.org.
us-east-1.amazonaws.com. 86400  IN      NS      ns1.p31.dynect.net.
us-east-1.amazonaws.com. 86400  IN      NS      ns3.p31.dynect.net.
us-east-1.amazonaws.com. 86400  IN      NS      pdns1.ultradns.net.
us-east-1.amazonaws.com. 86400  IN      NS      u2.amazonaws.com.
us-east-1.amazonaws.com. 86400  IN      NS      u6.amazonaws.com.
us-east-1.amazonaws.com. 86400  IN      NS      u3.amazonaws.com.
us-east-1.amazonaws.com. 86400  IN      NS      u5.amazonaws.com.
us-east-1.amazonaws.com. 86400  IN      NS      u1.amazonaws.com.
us-east-1.amazonaws.com. 86400  IN      NS      u4.amazonaws.com.

まったく異なる SOA を備えています。

us-east-1.amazonaws.com. 900    IN      SOA     dns-external-master.amazon.com. root.amazon.com. 8548 180 60 2592000 5

この明らかな設定ミスにもかかわらず、比較的うまく機能している点については、リゾルバは、応答内の「管轄内」のデータのみを信頼するのが得意であるため、この 主張 を単に見抜いているだけだと思います 。つまり、そのネームサーバーで実際にホストされていないゾーンに属する名前に関する主張を行う応答内の追加データは信頼しませんNXDOMAIN

関連情報