DNSでは、DNSSECでの不整合や、ポリシーによってブロックされて問い合わせがエラーとなることがあります。
Google Chromeでは「Extended DNS Errors(EDE)」という仕様のサポートが検討されています。これは、問い合わせに対するエラー原因を通知するための仕様で、EDNS0のオプション領域にエラーコードとエラー文を含めて応答できるようにするものです。現在IETFで標準化中になります。
これによってDNSのエラー原因がわかりやすくデバッグが用になるほか、ユーザへのエラー画面を出す際により分かりやすい文言を出せるようになります。
Chromeでの実装検討の詳細については下記の資料を参照ください。
https://docs.google.com/document/d/1PItRbCJHgv1CcqjnkOw1F8oup3oISkMf_xxKZmqGhiU/edit#heading=h.7nki9mck5t64
ここでは、Extended DNS Errorsを簡単に紹介します
Extended DNS Error EDNS0 option
EDNS0のOPTIONとして、定義されています。
- OPTION-CODE: EDNS0としてのオプション番号
- OPTION-LENGTH: オプションの長さ
- OPTION-CODE: エラー番号
- EXTRA-TEXT: エラー内容を示す文字列
このオプションがレスポンスに追加されて返されます。
定義済みエラー
下記のエラーコードが仕様で定義されています。ざっと、雰囲気がわかるかと思いますが、エラーコードの詳細については仕様(URL)を参照ください。
- 0 Other
- 1 Unsupported DNSKEY Algorithm
- 2 Unsupported DS Digest Type
- 3 Stale Answer
- 4 Forged Answer
- 5 DNSSEC Indeterminate
- 6 DNSSEC Bogus
- 7 Signature Expired
- 8 Signature Not Yet Valid
- 9 DNSKEY Missing
- 10 RRSIGs Missing
- 11 No Zone Key Bit Set
- 12 NSEC Missing
- 13 Cached Error
- 14 Not Ready
- 15 Blocked
- 16 Censored
- 17 Filtered
- 18 Prohibited
- 19 Stale NXDOMAIN Answer
- 20 Not Authoritative
- 21 Not Supported
- 22 No Reachable Authority
- 23 Network Error
- 24 Invalid Data