最近、特集執筆のためIPv6の取材をする機会があった。IPv6のことはご存じの方も多いと思うが、いまのIPネットワークで使用されるIPv4の後継にあたるプロトコルである。2011年3月ころとみられるIPv4アドレスの枯渇(関連記事)や、4月以降にNTT東西のNGN上でIPv6インターネット接続サービスが始まる(関連記事)ことをきっかけに普及が進むとみられている。

 機器/ソフトベンダーやサービス事業者にIPv6関連の取材をしていると、たびたび「ナゾ」が出てくる。ここでは最近記者が遭遇した「IPv6でDNSを使う」ときの二つのナゾを紹介したい。

 DNSの役割はIPv4でもIPv6でも同じだ。ホスト名からIPアドレスを調べる正引きも、IPアドレスからホスト名を調べる逆引きも利用できる。ところがIPv6では、IPv4のようにはいかないのだ。

ナゾその1:DNS問い合わせのうち、なぜIPv6アドレスを聞くものが多い?

 こんなにIPv6にアクセスしたがるユーザーがいるのか?---JPRS(日本レジストリサービス)から紹介してもらった統計を見て驚いた。JPRSは、JPドメインを管理するJP DNSサーバーを運用している。

 JP DNSへ問い合わせ(クエリー)がIPv4ネットワークとIPv6ネットワークのどちらから届いたかを見ると、98.5%対1.5%で圧倒的にIPv4からのほうが多い。ところが、JP DNSへの問い合わせをタイプ別にみると、「Aレコード」が65.1%、「AAAAレコード」が10.7%を占めるという。

 Aレコードは、ホスト名からIPv4アドレスを知るために使う。これが最多なのは理解できる。問題は、AAAAレコードだ。これはホスト名からIPv6アドレスを知るために使う問い合わせである。AAAAレコードが10.7%を占めるというのは、JP DNSへの問い合わせのおよそ10件に1件が「サーバーのIPv6アドレスを知りたい」という内容であることを意味する。

 記者は、AAAAレコードがこんなにあることを不思議に思った。いま説明した二つの数字から、IPv4ネットワークを通ってIPv6サーバーのIPアドレスを聞く問い合わせが結構あると推測される。それにしても、なぜこうした事象が起こるのか。

 クライアントOSのなかには、IPv6インターネットに接続できているかどうかにかかわらず、AとAAAAの両方のレコードを送信するものがある。この場合は、AAAAレコードをIPv4ネットワーク経由で送ることになる。

 クライアントOSがDNS問い合わせを送る先は多くの場合、プロバイダー(ISP)のDNSキャッシュサーバーである。このキャッシュサーバーがクライアントからの問い合わせを受け、キャッシュされていなければルートサーバーから順に問い合わせをしていく。その過程でJP DNSに問い合わせを送ることもある。JPRSによると、DNSには「AAAAレコードは、IPv6ネットワークから送らなくてはならない」といった決まりはない。

 一方、プロバイダーのインターネットイニシアティブ(IIJ)に聞くと、IPv6でDNSの問い合わせができるDNSキャッシュサーバーは少数ではないかという。つまり多くのDNSキャッシュサーバーは、IPv4でAAAAレコードを送っているとみられる。それでJP DNSに結構な数のAAAAレコードがIPv4ネットワーク経由で届いている、というのが先ほど挙げた数字のカラクリであるようだ。

ナゾその2:「IPv6のDNS逆引き」はなぜ難しい?

 別の取材で、IPv6のDNSの逆引きは「難しい」あるいは「ほとんど不可能」という話を聞いた。過去にも耳にしたことがあったが、その理由はナゾだった。IPv6のDNSに逆引きの仕組みがあるにもかかわらず、それが難しいのはなぜか。

 ライブドアによると、IPアドレスからホスト名を得る逆引きは、パラノイドチェックや、ログに記録されたIPアドレスからアクセス元の組織を把握するために使用しているという。パラノイドチェックは、なりすましによるメール送信をしていないかどうかをチェックする手法である。

 ログから逆引きしたデータは、Webサービスの提供のほかピアリングを計画する際にも役立てている。IPv4ネットワークにおいて、DNSの逆引きは重要な役割を果たしているのだ。

 IPv6で逆引きが難しいとみられる理由は、大きく二つあるようだ。一つは、「DNSサーバーに登録する逆引き用のレコードが、IPv4に比べて長い」(JPRS)ことである。

 IPv4では「192.0.2.1.in-addr.arpa.」という書式で済むところ、IPv6では「1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.」といった具合に“寿限無”みたいな書式になる。手作業で記述すると、IPv4より記述ミスが起こる可能性が高くなる。これは難しいというよりも、ネットワークやサーバーの運用担当者の手間がかかるという話である。

 もう一つの理由は、エンドユーザーに割り当てるIPv6のグローバルアドレスに逆引きレコードを設定するのが大変であることだ。分かりやすい例として、ISPがユーザーに/64のプレフィックスを配り、これを使ってパソコンにIPv6のグローバルアドレスを付けることを考えてみよう。このケースでIPアドレスがいくつ付けられるかというと、京(兆の次の単位)のオーダーになる。こんな数のアドレスに逆引きレコードを付けるのはかなり困難である。

 IIJに尋ねたところ、IPv4では同社設備やフレッツなど接続時に動的に払い出すアドレス空間のような同社管理分のアドレスには原則、逆引きレコードを登録している。一方IPv6の同社管理分については「過去に一部逆引きレコードを登録したが、現在は登録していない」という。

 これからも、こうしたIPv6のナゾに遭遇するに違いない。IPv6について紹介すべきことはまだまだありそうだと感じている。