「フレッツ光ユーザーは6/6以降IPv6が使えない」日経記事を考察する


IPv6への世界一斉対応、NTTは乗り遅れ (日本経済新聞)

上記リンクでいつまで記事が読めるかわからないので超ざっくり概要をまとめておくと以下のような内容です。

・6/6の「World IPv6 Launch」で、世界の主だったサイトや通信事業者がIPv6に恒久的に対応する
・NTTのフレッツ光では閉域IPv6網が存在するため、IPv6インターネットに明示的に対応していない環境では(インターネットにつながらない)IPv6での通信にトライする分ページの表示が遅れる
・そのため6/6以降は「AAAA(クワッドエー)フィルタ」によりフレッツ光サービスではIPv6の接続をさせないようにする

要するにずっと問題になっている「IPv6マルチプレフィクス問題」の話題なのですが、ちょっと気になったのは記事中のこの記述。

せっかく申し込みをしてv6によるネット接続に移行した末端利用者も、6月6日以降はv4による接続を強制されるようになってしまう。

IPv6に明示的に対応していない環境でIPv6が使えないのはともかく、IPv6 PPPoEやIPv6 IPoEでIPv6対応を済ませたフレッツ光回線でもIPv6が使えないようになると読めます。もし本当だとするとちょっと穏やかではない事態です。実際のところは6/6になってみないとわからないのでしょうが、現在わかっている範囲で考察してみました。

まずIPv6の接続をさせない手段として記事で取り上げられている「AAAAフィルタ」の仕組みを確認しておきます。インターネットに接続するためには、ホスト名(bari-ikutsu.comとか)をIPアドレスに変換する「DNS」と呼ばれる仕組みが必要になります。IPv6に対応するためにはDNSサーバーもIPv6に対応して、ホスト名の問い合わせに(従来のIPv4に加えて)IPv6アドレスを返す必要があります。この時返されるIPv4のアドレスデータを「Aレコード」、IPv6のアドレスデータを「AAAA(クワッドエー)レコード」と呼びます。つまりIPv6に対応したDNSサーバーは問い合わせに対してAレコードとAAAAレコードの両方の問い合わせ結果を返すことになります。

一方、DNSへ問い合わせを行う際に用いる通信の種類は、返すレコードの種類と直接は関係しません。もちろんIPv6の環境ではIPv6を使ってDNSサーバーに問い合わせることが望ましいでしょうが、従来のIPv4によるリクエストも当然DNSサーバーは受け付け、その際には通常AレコードとAAAAレコードが両方返されます。つまり問い合わせ自体にIPv4を使っても、ホスト名に対応したIPv6アドレスを取得できるわけです。

この仕組を踏まえると、IPv4はインターネットにつながっているものの、IPv6は閉域接続でインターネットにはつながっていないフレッツ光のような環境で、かつDNSの問い合わせがIPv4で行われた場合、

IPv4でDNSサーバーに問い合わせる

Aレコード(IPv4)とAAAAレコード(IPv6)を取得

端末から見れば(閉域とはいえ)IPv6が有効なのでAAAAレコードを元にIPv6の通信をトライ

IPv6はインターネットにつながっていないので通信できず

仕方ないのでIPv4で通信

という話になり、IPv6での通信トライ~失敗の分だけ接続に時間がかかることになります。これがIPv6マルチプレフィクス問題の本質です。

ではこの問題を解決するにはどうするか。最も安直な方法として

「IPv4でDNSサーバーに問い合わせてきた時にはAAAAレコードを返さなければいいんじゃね?」

という方法が考えられます。これが「AAAAフィルタ」です。AAAAフィルタが適用された場合、

IPv4でDNSサーバーに問い合わせる

Aレコード(IPv4)を取得(AAAAフィルタによりAAAAレコードは取得されず)

IPv4アドレスしかわからないのでIPv4で通信

ということになり(一応は)問題が解決します。またIPv6でDNS問い合わせを行う環境では

IPv6でDNSサーバーに問い合わせる

Aレコード(IPv4)とAAAAレコード(IPv6)を取得(IPv6での問い合わせなのでAAAAフィルタは適用されず)

IPv6アドレスが分かったのでIPv6で通信

ということになり、きちんとIPv6で通信できます。

 

では何が問題かというと「IPv6でインターネット通信はできるもののDNS問い合わせはIPv4で行う」という環境の場合、

(IPv6でも通信できるが)IPv4でDNSサーバーに問い合わせる

Aレコード(IPv4)を取得(AAAAフィルタによりAAAAレコードは取得されず)

IPv4アドレスしかわからないのでIPv4で通信(IPv6でも通信できるのに…)

IPv6でインターネットと通信できるはずなのにIPv4しか使えないということが起こります。本質的には「IPv6で通信できるんだったらDNS問い合わせをIPv4でやってんじゃねーよ」という話なのですが、こればかりは端末の仕様に依存することになります。

話をまとめると、AAAAフィルタが適用された状態でのIPv6通信は以下のような感じ。

・フレッツかどうかに関わらず、IPv6でDNS問い合わせをする環境ではIPv6での通信が可能
・そもそもIPv4にしか対応していない環境はいままでどおり
・IPv6対応していないフレッツ回線ではAAAAフィルタによりIPv4が強制されるが、そもそもIPv6対応していないので不都合はない
IPv6でインターネット通信できるのにDNS問い合わせがIPv4の場合はAAAAフィルタによりIPv4が強制される

あとは「IPv6インターネット接続が確立されている場合に端末がIPv6でのDNS問い合わせを行なってくれるかどうか」にかかっていますが、現状これについては確定情報を持っていないので、時間のある時にまた調べてみたいです。

また上記のように、AAAAフィルタは本質的にDNSサーバーに対して適用されるものなので、明示的にAAAAフィルタのかかっていないDNSサーバーを設定することでIPv6の通信が可能になると思われます。6/6になってAAAAフィルタに引っかかってしまったら、Google Public DNSとか試してみようかなと。

コメントを残す

メールアドレスが公開されることはありません。

Time limit is exhausted. Please reload CAPTCHA.