Title: DNS64 で変換できない名前がある問題 Author(s): 石原知洋 (sho@c.u-tokyo.ac.jp) Date: 2011-09-09 問題の概要 DNS64 において、RFC に従わない挙動をする権威サーバが提供している名前を 変換できない 問題点: 幾つかのサイトの名前を提供している権威サーバで、RFC4074 で 記載されているような誤動作をしていることが原因で、DNS64 が 動作しない。 例えばあるサイトでは RFC4074 4.2 Return "Name Error" で 記載されているように、AAAA を引いた際に NXDOMAIN を 返してしまうので、そこで DNS64 Resolver は処理を止めてしまい、 A レコードの問い合わせおよび変換に進まない。 他にも、4.3「Return Other Erroneous Codes」で記載されている ように、AAAA を問い合わせても A レコードを返してくる、 もしくは 4.4 「Return a Broken Response」で記載されている ように、NOERROR だが Authority Section が 0 といった 壊れた応答を返してくる場合も発見されている。これらの場合では DNS64 Resolver は ServFail を返して同じく変換を行わない。 解決方法: 本質的な解決方法としては、このような壊れた構成をしている 権威サーバに対して是正を要求することが挙げられるが、 それ以外の work-around な解決方法としては DNS64 の アルゴリズムを変更する方法が考えられる。 1:AAAA が NXDOMAIN/ServFail でも構わず A を問い合わせる 2:先に A を問い合わせて候補を見つけ、そこで NOERROR だった  場合には次に AAAA を問い合わせ、存在した場合は AAAA を返し、  存在しなかった場合はすでに問い合わせた A レコードを変換する。 いずれの場合にも存在しないレコードを問い合わせた場合に 問い合わせ量が増加することになるが、正式な動作をするサイトに 比べて十分に少ないため、それほど問題ではないと考える。 ToDo?: 上記動作をするパッチを書いてみる