RFC 5155: DNS Security (DNSSEC) Hashed Authenticated Denial of Existence (Part 2)
こんにちは、まれいんです。
この記事は ひとりRFCの旅 Advent Calender 8日目の記事です。
- 原文: RFC 5155 - DNS Security (DNSSEC) Hashed Authenticated Denial of Existence
- 日本語訳: https://jprs.jp/tech/material/rfc/RFC5155-ja.txt
RFC 7129? 知らない子ですね...
続きを読むRFC 5155: DNS Security (DNSSEC) Hashed Authenticated Denial of Existence (Part 1)
こんにちは、まれいんです。
この記事は ひとりRFCの旅 Advent Calender 7日目の記事です。
今回はDNSSECでネガティブ応答を示すために導入されたNSEC3についてのRFC 5155を読んでいきます。
- 原文: RFC 5155 - DNS Security (DNSSEC) Hashed Authenticated Denial of Existence
- 日本語訳: https://jprs.jp/tech/material/rfc/RFC5155-ja.txt
RFC8914: Extended DNS Errors
こんにちは、まれいんです。
この記事は ひとりRFCの旅 Advent Calender 4日目の記事です。
2020年10月に出た、比較的新しめのRFCであるRFC8914を読んでいこうと思います。
原文: RFC 8914 - Extended DNS Errors
概要
DNSはステータスを返すためのフィールドRCODEがHeaderに用意されています。 名前解決に成功したらNOERROR、ドメイン存在しない時はNXDOMAIN、サーバーに何かあったらSERVFAILなど、 ここのフィールドを見ることでざっくりと名前解決結果のステータスを確認することが出来ました。 代表的なものについてはRFC1035 4.1.1参照
maleic@ohmae:~$ dig maleic1618.hatenablog.jp @8.8.8.8 ; <<>> DiG 9.16.8-Debian <<>> maleic1618.hatenablog.jp @8.8.8.8 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28650 ↑これ ...
しかし、あくまでざっくりとしか分かりません。 例えば以下はDNSSECの検証に失敗した場合ですが、SERVFAILしか返ってこないのでサーバー側がcrashしたのか、応答が返ってこないのかわかりません。
$ dig dnssec-failed.org @8.8.8.8 ; <<>> DiG 9.16.8-Debian <<>> dnssec-failed.org @8.8.8.8 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 32185 # <-- SERVFAILになっているだけ ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;dnssec-failed.org. IN A ...
というわけでこれとは別にエラーが発生した場合はより詳しい失敗理由を通知できるようにする仕組みが、このRFC8914で導入されるExtended DNS Errors(EDE)です。
wire format
EDNS0で導入されたOPTリソースレコードのkey-value形式のオプションを利用します。 wire formatは以下です。
1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 0: | OPTION-CODE | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 2: | OPTION-LENGTH | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 4: | INFO-CODE | +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+ 6: / EXTRA-TEXT ... / +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
フィールド | 意味 |
---|---|
OPTION-CODE | オプションタイプの識別子、EDEは15 |
OPTION-LENGTH | INFO-CODE長 + EXTRA-TEXT長 |
INFO-CODE | エラー理由を示すコード |
EXTRA-TEXT | 人間が読む用のUTF-8な文字列 |
INFO-CODEのいくつかはこのRFCで定義されています。 序盤はDNSSEC関連がほとんどですね。
INFO-CODE | 意味 | 定義か所 |
---|---|---|
0 | Other Error | Section 4.1 |
1 | Unsupported DNSKEY Algorithm | Section 4.2 |
2 | Unsupported DS Digest Type | Section 4.3 |
3 | Stale Answer | Section 4.4 and [RFC8767] |
4 | Forged Answer | Section 4.5 |
5 | DNSSEC Indeterminate | Section 4.6 |
6 | DNSSEC Bogus | Section 4.7 |
7 | Signature Expired | Section 4.8 |
8 | Signature Not Yet Valid | Section 4.9 |
9 | DNSKEY Missing | Section 4.10 |
10 | RRSIGs Missing | Section 4.11 |
11 | No Zone Key Bit Set | Section 4.12 |
12 | NSEC Missing | Section 4.13 |
13 | Cached Error | Section 4.14 |
14 | Not Ready | Section 4.15 |
15 | Blocked | Section 4.16 |
16 | Censored | Section 4.17 |
17 | Filtered | Section 4.18 |
18 | Prohibited | Section 4.19 |
19 | Stale NXDomain Answer | Section 4.20 |
20 | Not Authoritative | Section 4.21 |
21 | Not Supported | Section 4.22 |
22 | No Reachable Authority | Section 4.23 |
23 | Network Error | Section 4.24 |
24 | Invalid Data | Section 4.25 |
25-49151 | Unassigned | |
49152-65535 | Reserved for Private Use | Section 5.2 |
RFC6891: Extension Mechanisms for DNS (EDNS(0))
こんにちは、まれいんです。
この記事は ひとりRFCの旅 Advent Calender 3日目の記事です。
2013年4月に出たEDNS0についてのRFC、RFC6891を読んでいきます。 ちょうど先日のRFC2671をUpdateするRFCです。
- 原文: RFC 6891 - Extension Mechanisms for DNS (EDNS(0))
- 日本語訳: https://jprs.jp/tech/material/rfc/RFC6891-ja.txt
RFC2671: Extension Mechanisms for DNS (EDNS0)
こんにちは、まれいんです。
この記事は ひとりRFCの旅 Advent Calender 2日目の記事です。
今日は1999年8月に出たDNSにおける拡張オプションのようなものである、EDNS0を定めたRFC2671を読んでいきます。 多分普通にdigコマンドを叩くと使われているので、皆さんも知らず知らずのうちに使っているかと思います。
記事を書いた後に気付いたのですが、JPNICさんが日本語訳を公開しているのでみなさんはこちらを読んでみるとよいと思います。
$ dig maleic1618.hatenablog.jp @8.8.8.8 ; <<>> DiG 9.16.8-Debian <<>> maleic1618.hatenablog.jp @8.8.8.8 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19383 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 <-- これ! ;; QUESTION SECTION: ;maleic1618.hatenablog.jp. IN A ...
RFC 2671 - Extension Mechanisms for DNS (EDNS0)
現在はこのRFCはObsoletedとなっており、RFC6891で更新されていますが、歴史を追いかける意味でいったん読んでみます。
続きを読む