DNSのエラー理由を通知するExtended DNS Errorsの仕様

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として、定義されています。

f:id:ASnoKaze:20200910000926p:plain

  • 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