DNSサーバーとの通信にIPv4とIPv6のどちらが使われるかいろいろ調べてみた


事の発端はこの記事。

「フレッツ光ユーザーは6/6以降IPv6が使えない」日経記事を考察する (今日の気分はバリいくつ?)

6/6に世界の主だったWebサイトがIPv6を導入する「World IPv6 Launch」において、日本のフレッツユーザーが「IPv6マルチプレフィクス問題」によりページ表示に時間がかかるようになる可能性があるため「AAAAフィルタ」によってIPv6を遮断されるかもという話です。

このブログ記事の中で「ISPのAAAAフィルタはIPv4でのDNS問い合わせでIPv6アドレスを返さない仕組みだから、IPv6でDNS問い合わせする環境だったら大丈夫じゃ?」と書きました。そこで実際にIPv6でDNS問い合わせを行う環境がどれだけあるのか調べてみることに。

参考にした記事などはこちら。

IPv6だけで4日間生活してみた――苦戦したOSはWindows XPとAndroid (Impress)
クライアントOSのIPv6実装事情 (注意:PDF)

で、おおまかにこんな感じ。情報の確度は保証できませんのであしからず。

【DNSサーバーとの通信にIPv4しか使えない環境】

・Windows XP
・Android(バージョンは不明)

【DNSサーバーとの通信にIPv4とIPv6の両方が使えて、IPv6を優先する環境】

・Windows Vista
・Windows 7

【DNSサーバーとの通信にIPv4とIPv6の両方が使えて、優先順位は設定次第の環境】

・MacOS X
・Linux
・FreeBSD

※これらについてはresolv.confにIPv6のDNSサーバーが上に書かれていればIPv6を優先使用します。手元のUbuntu 11.10ではIPv4サーバーが上に書かれていましたが、IPv6サーバーを上に書きなおしたらIPv6でDNSサーバーと通信しました。
※MacOS Xの10.6以前ではDHCP6によるDNSサーバーの取得に対応していないため、特に何もしないとIPv4のDNSサーバーが用いられることになります。

【不明】

iOS(iPhone、iPadなど)

※iOS 5.1でIPv4のDNSサーバーへの通信を途絶させた環境(IPv4自体は有効)で名前解決できたので、IPv6でのDNSサーバーとの通信には対応していることは確認できたのですが、IPv4とIPv6の両方のDNSサーバーがあった時にどちらを優先するかは不明です。

iOSについては調査法をじっくり考えたいです。

—-

とここまで書いてきて、この調査の前提をひっくり返すような話題をいくつか見つけました。「AAAAフィルタ」ですが、IPv4からのDNS問い合わせに限らず、IPv6での問い合わせを含めたすべてのDNS問い合わせに適用することも可能な様子。IPv6で問い合わせてるんだからIPv6で通信可能なのは明白で、AAAAレコードを返してもいいのではと思うのですが、それはDNSサーバーを設定する側が決めることですね。

さらに、コンテンツを提供する根本(GoogleやらFacebookやら)側のDNSサーバーで細工をして「World IPv6 Launch以後も日本からのDNS問い合わせにはAAAAレコードを返さない」となる可能性もあるようです。そうなってしまうとISP側で何をやってもAAAAレコードは取れないわけで、(IPv6 PPPoE/IPoEなどで)IPv6インターネット通信ができる環境でも実際のIPv6通信はできないことになります。Google Public DNSでそうならないことを祈るばかりです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.