付録 B. 応答例
付録 B. 応答例
本節の例は、付録 A の署名付きゾーン例を使用する応答メッセージを示す。
B.1. 名前エラー
権威ある名前エラー。NSEC3 RR は、その名前が存在せず、展開すべきワイルドカード RR も存在しないことを証明する。
;; Header: QR AA DO RCODE=3
;;
;; Question
;; Answer
;; (empty)
;; Authority
3600000 3600 )
40430 example. Hu25UIyNPmvPIVBrldN+9Mlp9Zql39qaUd8i q4ZLlYWfUUbbAS41pG+68z81q1xhkYAcEyHd VI2LmKusbZsT0Q== )
;; NSEC3 RR that covers the "next closer" name (c.x.w.example)
;; H(c.x.w.example) = 0va5bpr2ou0vk0lbqeeljri88laipsfh
2t7b4g4vsa5smi47k61mv5bv1a22bojr MX DNSKEY NS SOA NSEC3PARAM RRSIG )
20150420235959 20051021000000 40430 example.
OSgWSm26B+cS+dDL8b5QrWr/dEWhtCsKlwKL IBHYH6blRxK9rC0bMJPwQ4mLIuw85H2EY762 BOCXJZMnpuwhpA== )
;; NSEC3 RR that matches the closest encloser (x.w.example)
;; H(x.w.example) = b4um86eghhds6nea196smvmlo4ors995
gjeqe526plbf1g8mklp59enfd789njgi MX RRSIG )
20150420235959 20051021000000 40430 example.
ZkPG3M32lmoHM6pa3D6gZFGB/rhL//Bs3Omh 5u4m/CUiwtblEVOaAKKZd7S959OeiX43aLX3 pOv0TSTyiTxIZg== )
;; NSEC3 RR that covers wildcard at the closest encloser (*.x.w.example)
;; H(*.x.w.example) = 92pqneegtaue7pjatc3l3qnk738c6v5m
b4um86eghhds6nea196smvmlo4ors995 NS DS RRSIG )
20150420235959 20051021000000 40430 example.
g6jPUUpduAJKRljUsN8gB4UagAX0NxY9shwQ Aynzo8EUWH+z6hEIBlUTPGj15eZll6VhQqgZ XtAIR3chwgW+SA== )
;; Additional
;; (empty)
この問合せは、要求したデータが存在せず、ワイルドカード展開も
適用されないことを証明する三つの NSEC3 RR を返した。負の応答は
NSEC3 RR の検証によって認証される。対応する RRSIG は、NSEC3 RR
がアルゴリズム 7、キータグ 40430 の「example」DNSKEY で署名されて
いることを示す。この応答を認証するには、リゾルバーに対応する
DNSKEY RR が必要である。
NSEC3 RR の所有者名の一つは最も近い包含名と一致する。一つの
NSEC3 RR は、それより長い名前が存在しないことを証明する。別の
NSEC3 RR は、展開すべきワイルドカード RRSet が存在しないことを
証明する。最も近い包含名は、8.3 節のアルゴリズムを適用して見つける。
上記の例では、名前「x.w.example」は
「b4um86eghhds6nea196smvmlo4ors995」にハッシュされる。これは
最も近い包含名である可能性を示す。「c.x.w.example」と
「*.x.w.example」が存在しないことを証明するため、これらの名前は
それぞれ「0va5bpr2ou0vk0lbqeeljri88laipsfh」と
「92pqneegtaue7pjatc3l3qnk738c6v5m」にハッシュされる。最初と最後の
NSEC3 RR は、これらのハッシュ済み所有者名が存在しないことを証明する。
B.2. データなしエラー
「データなし」応答。NSEC3 RR は名前が存在し、要求した RR 型が存在しないことを証明する。
;; Header: QR AA DO RCODE=0
;;
;; Question
;; Answer
;; (empty)
;; Authority
3600000 3600 )
40430 example. Hu25UIyNPmvPIVBrldN+9Mlp9Zql39qaUd8i q4ZLlYWfUUbbAS41pG+68z81q1xhkYAcEyHd VI2LmKusbZsT0Q== )
;; NSEC3 RR matches the QNAME and shows that the MX type bit is not set.
2vptu5timamqttgl4luu9kg21e0aor3s A RRSIG )
20150420235959 20051021000000 40430 example.
OmBvJ1Vgg1hCKMXHFiNeIYHK9XVW0iLDLwJN 4TFoNxZuP03gAXEI634YwOc4YBNITrj413iq NI6mRk/r1dOSUw== )
;; Additional
;; (empty)
この問合せは、要求した名前が存在することを証明する NSEC3 RR を
返した(「ns1.example.」は「2t7b4g4vsa5smi47k61mv5bv1a22bojr」に
ハッシュされる)。ただし、要求した RR 型は存在しない(NSEC3 RR の
型コード一覧に MX 型がない)。また CNAME でもない(NSEC3 RR の型
コード一覧に CNAME 型もない)。
B.2.1. データなしエラー、空の非終端
空の非終端による「データなし」応答。NSEC3 RR は名前が存在し、要求した RR 型が存在しないことを証明する。
;; Header: QR AA DO RCODE=0
;;
;; Question
y.w.example. IN A
;; Answer
;; (empty)
;; Authority
example. SOA ns1.example. bugs.x.w.example. 1 3600 300 (
3600000 3600 )
example. RRSIG SOA 7 1 3600 20150420235959 20051021000000 (
40430 example.
Hu25UIyNPmvPIVBrldN+9Mlp9Zql39qaUd8i
q4ZLlYWfUUbbAS41pG+68z81q1xhkYAcEyHd
VI2LmKusbZsT0Q== )
;; NSEC3 RR matches the QNAME and shows that the A type bit is not set.
ji6neoaepv8b5o6k4ev33abha8ht9fgc.example. NSEC3 1 1 12 aabbccdd (
k8udemvp1j2f7eg6jebps17vp3n8i58h )
ji6neoaepv8b5o6k4ev33abha8ht9fgc.example. RRSIG NSEC3 7 2 3600 (
20150420235959 20051021000000 40430 example.
gPkFp1s2QDQ6wQzcg1uSebZ61W33rUBDcTj7
2F3kQ490fEdp7k1BUIfbcZtPbX3YCpE+sIt0
MpzVSKfTwx4uYA== )
;; Additional
;; (empty)
この問合せは、要求した名前が存在することを証明する NSEC3 RR を
返した(「y.w.example.」は「ji6neoaepv8b5o6k4ev33abha8ht9fgc」に
ハッシュされる)。ただし、要求した RR 型は存在しない(NSEC3 RR の
Type Bit Maps フィールドに A 型がない)。NSEC を用いる空の非終端の
証明とは異なり、これはデータなしエラーと同一である。この例は完全性の
ためだけに掲載する。
B.3. Opt-Out 未署名ゾーンへの紹介
NSEC3 RR は、この委任対象について何も署名されていないことを証明する。未署名の委任が存在することを示す証拠はない。
;; Header: QR DO RCODE=0
;;
;; Question
mc.c.example. IN MX
;; Answer
;; (empty)
;; Authority
c.example. NS ns1.c.example.
NS ns2.c.example.
;; NSEC3 RR that covers the "next closer" name (c.example)
;; H(c.example) = 4g6p9u5gvfshp30pqecj98b3maqbn1ck
35mthgpgcu1qg68fab165klnsnk3dpvl.example. NSEC3 1 1 12 aabbccdd (
b4um86eghhds6nea196smvmlo4ors995 NS DS RRSIG )
35mthgpgcu1qg68fab165klnsnk3dpvl.example. RRSIG NSEC3 7 2 3600 (
20150420235959 20051021000000 40430 example.
g6jPUUpduAJKRljUsN8gB4UagAX0NxY9shwQ
Aynzo8EUWH+z6hEIBlUTPGj15eZll6VhQqgZ
XtAIR3chwgW+SA== )
;; NSEC3 RR that matches the closest encloser (example)
;; H(example) = 0p9mhaveqvm6t7vbl5lop2u3t2rp3tom
0p9mhaveqvm6t7vbl5lop2u3t2rp3tom.example. NSEC3 1 1 12 aabbccdd (
2t7b4g4vsa5smi47k61mv5bv1a22bojr MX DNSKEY NS
SOA NSEC3PARAM RRSIG )
0p9mhaveqvm6t7vbl5lop2u3t2rp3tom.example. RRSIG NSEC3 7 2 3600 (
20150420235959 20051021000000 40430 example.
OSgWSm26B+cS+dDL8b5QrWr/dEWhtCsKlwKL
IBHYH6blRxK9rC0bMJPwQ4mLIuw85H2EY762
BOCXJZMnpuwhpA== )
;; Additional
ns1.c.example. A 192.0.2.7
ns2.c.example. A 192.0.2.8
この問合せは未署名の「c.example.」ゾーンへの紹介を返した。応答には
「c.example」の最も近い証明可能な包含名として「example」が含まれる。
これは「c.example」のハッシュ
(「4g6p9u5gvfshp30pqecj98b3maqbn1ck」) が最初の NSEC3 RR でカバーされ、その Opt-Out ビットが設定されているためである。
B.4. ワイルドカード展開
ワイルドカード展開を含む応答で回答された問合せ。回答節の RRSIG RRSet に含まれるラベル数は、ワイルドカード RRSet が展開されてこの応答が生成されたことを示し、NSEC3 RR はゾーン内に「次に近い」名前が存在しないことを証明する。
;; Header: QR AA DO RCODE=0
;;
;; Question
a.z.w.example. IN MX
;; Answer
a.z.w.example. MX 1 ai.example.
a.z.w.example. RRSIG MX 7 2 3600 20150420235959 20051021000000 (
40430 example.
CikebjQwGQPwijVcxgcZcSJKtfynugtlBiKb
9FcBTrmOoyQ4InoWVudhCWsh/URX3lc4WRUM
ivEBP6+4KS3ldA== )
;; Authority
example. NS ns1.example.
example. NS ns2.example.
example. RRSIG NS 7 1 3600 20150420235959 20051021000000 (
40430 example.
PVOgtMK1HHeSTau+HwDWC8Ts+6C8qtqd4pQJ
qOtdEVgg+MA+ai4fWDEhu3qHJyLcQ9tbD2vv
CnMXjtz6SyObxA== )
;; NSEC3 RR that covers the "next closer" name (z.w.example)
;; H(z.w.example) = qlu7gtfaeh0ek0c05ksfhdpbcgglbe03
q04jkcevqvmu85r014c7dkba38o0ji5r.example. NSEC3 1 1 12 aabbccdd (
r53bq7cc2uvmubfu5ocmm6pers9tk9en A RRSIG )
q04jkcevqvmu85r014c7dkba38o0ji5r.example. RRSIG NSEC3 7 2 3600 (
20150420235959 20051021000000 40430 example.
hV5I89b+4FHJDATp09g4bbN0R1F845CaXpL3
ZxlMKimoPAyqletMlEWwLfFia7sdpSzn+ZlN
NlkxWcLsIlMmUg== )
;; Additional
ai.example. A 192.0.2.9
ai.example. RRSIG A 7 2 3600 20150420235959 20051021000000 (
40430 example.
hVe+wKYMlObTRPhX0NL67GxeZfdxqr/QeR6F
tfdAj5+FgYxyzPEjIzvKWy00hWIl6wD3Vws+
rznEn8sQ64UdqA== )
ai.example. AAAA 2001:db8:0:0:0:0:f00:baa9
ai.example. RRSIG AAAA 7 2 3600 20150420235959 20051021000000 (
40430 example.
LcdxKaCB5bGZwPDg+3JJ4O02zoMBrjxqlf6W
uaHQZZfTUpb9Nf2nxFGe2XRPfR5tpJT6GdRG
cHueLuXkMjBArQ== )
この問合せはワイルドカード展開の結果として生成された応答を返した。
回答節には、従来の DNS 応答の場合と同じように展開されたワイルドカード
RRSet が含まれる。RRSIG の Labels フィールド値 2 は、名前
「a.z.w.example」が四つのラベルを含むため、応答がワイルドカード展開の
結果であることを示す。これは「w.example」が存在することも示すため、
最も近い包含名と一致する NSEC3 RR は不要である。
NSEC3 RR は、この問合せへの回答により近い一致を使用できなかったことを
証明する。
B.5. ワイルドカードのデータなしエラー
ワイルドカードによりカバーされる名前に対する「データなし」応答。NSEC3 RR は、一致するワイルドカード名に要求した型の RR が存在せず、ゾーン内により近い一致も存在しないことを証明する。
;; Header: QR AA DO RCODE=0
;;
;; Question
a.z.w.example. IN AAAA
;; Answer
;; (empty)
;; Authority
example. SOA ns1.example. bugs.x.w.example. 1 3600 300 (
3600000 3600 )
example. RRSIG SOA 7 1 3600 20150420235959 20051021000000 (
40430 example.
Hu25UIyNPmvPIVBrldN+9Mlp9Zql39qaUd8i
q4ZLlYWfUUbbAS41pG+68z81q1xhkYAcEyHd
VI2LmKusbZsT0Q== )
;; NSEC3 RR that matches the closest encloser (w.example)
;; H(w.example) = k8udemvp1j2f7eg6jebps17vp3n8i58h
k8udemvp1j2f7eg6jebps17vp3n8i58h.example. NSEC3 1 1 12 aabbccdd (
kohar7mbb8dc2ce8a9qvl8hon4k53uhi )
k8udemvp1j2f7eg6jebps17vp3n8i58h.example. RRSIG NSEC3 7 2 3600 (
20150420235959 20051021000000 40430 example.
FtXGbvF0+wf8iWkyo73enAuVx03klN+pILBK
S6qCcftVtfH4yVzsEZquJ27NHR7ruxJWDNMt
Otx7w9WfcIg62A== )
;; NSEC3 RR that covers the "next closer" name (z.w.example)
;; H(z.w.example) = qlu7gtfaeh0ek0c05ksfhdpbcgglbe03
q04jkcevqvmu85r014c7dkba38o0ji5r.example. NSEC3 1 1 12 aabbccdd (
r53bq7cc2uvmubfu5ocmm6pers9tk9en A RRSIG )
q04jkcevqvmu85r014c7dkba38o0ji5r.example. RRSIG NSEC3 7 2 3600 (
20150420235959 20051021000000 40430 example.
hV5I89b+4FHJDATp09g4bbN0R1F845CaXpL3
ZxlMKimoPAyqletMlEWwLfFia7sdpSzn+ZlN
NlkxWcLsIlMmUg== )
;; NSEC3 RR that matches a wildcard at the closest encloser.
;; H(*.w.example) = r53bq7cc2uvmubfu5ocmm6pers9tk9en
r53bq7cc2uvmubfu5ocmm6pers9tk9en.example. NSEC3 1 1 12 aabbccdd (
t644ebqk9bibcna874givr6joj62mlhv MX RRSIG )
r53bq7cc2uvmubfu5ocmm6pers9tk9en.example. RRSIG NSEC3 7 2 3600 (
20150420235959 20051021000000 40430 example.
aupviViruXs4bDg9rCbezzBMf9h1ZlDvbW/C
ZFKulIGXXLj8B/fsDJarXVDA9bnUoRhEbKp+
HF1FWKW7RIJdtQ== )
;; Additional
;; (empty)
この問合せは、要求したデータが存在せず、ワイルドカード RR も適用
されないことを証明する NSEC3 RR を返した。
B.6. DS 子ゾーンのデータなしエラー
子ゾーンのネームサーバーへ誤って送られた QTYPE=DS 問合せに対する「データなし」応答。
;; Header: QR AA DO RCODE=0
;;
;; Question
;; Answer
;; (empty)
;; Authority
3600000 3600 )
40430 example. Hu25UIyNPmvPIVBrldN+9Mlp9Zql39qaUd8i q4ZLlYWfUUbbAS41pG+68z81q1xhkYAcEyHd VI2LmKusbZsT0Q== )
;; NSEC3 RR matches the QNAME and shows that the DS type bit is not set.
2t7b4g4vsa5smi47k61mv5bv1a22bojr MX DNSKEY NS SOA NSEC3PARAM RRSIG )
20150420235959 20051021000000 40430 example.
OSgWSm26B+cS+dDL8b5QrWr/dEWhtCsKlwKL IBHYH6blRxK9rC0bMJPwQ4mLIuw85H2EY762 BOCXJZMnpuwhpA== )
;; Additional
;; (empty)
この問合せは、要求が「example」ゾーンに対して権威を持つサーバーにより
回答されたことを示す NSEC3 RR を返した。NSEC3 RR は SOA RR の存在を
示すため、この NSEC3 RR が親のゾーンカットではなく子の apex からのもの
であることが分かる。「example」の DS RRSet に対する問合せは、親側の
サーバー(この場合はルートサーバー)へ送るべきである。