DNS名前解決エラーもネガティブキャッシュする提案

Negative Caching of DNS Resolution Failures」という提案が、Verisignの方らによって提案されています。

DNSの名前解決の結果はつぎのいずれかです。

  • 1) 要求されたデータを含む応答
  • 2) 要求されたデータが存在しないことを示す応答
  • 3) ネットワークエラーや、データ不整合などの、有用な情報が得られない(失敗)

今回の提案では、(3)のエラーについても最低5秒間ネガティブキャッシュするよう要求します(5分以上キャッシュしてはいけない)。

RFC2308 「Negative Caching of DNS Queries」では、サーバが落ちていたり接続できない場合に、オプショナルでキャッシュする事が記述されてはいます。

モチベーション

提案仕様のなかで、DNSのエラーが起こり、再帰サーバのトラフィックが増大したことを説明しています。幾つかを紹介すると

  • 2018年のDNSSECのKSK Rolloverにおいて、古いトラストアンカーを使用しDNSKEYをリトライする再起リゾルバーがいて、トラフィックが増大した (参考)
  • 2021年、Verisignの研究により、REFUSEDやSERVFAILを返す権威サーバのクエリトラフィックが多いということを示した
  • 2021年 10月、Facebookの障害で権威サーバにアクセスできなくなったとき、再帰サーバでタイムアウトが発生した。.comや.netへのクエリが、7000 query/sec から 900,000 query/secに増大した (参考)

失敗の種類

この提案仕様では、失敗の種類として、以下のものについて言及しています

  • SERVFAILの応答
  • REFUSEDの応答
  • 要求のタイムアウト
  • 委譲のループ (NSレコードの指定先がループしている)
  • エイリアスのループ (CNAMEレコードの指定先がループしている)
  • DNSSECの検証失敗