back

概要: 増えつづける IPv4 の需要に対処するために提案された IPv6 は IPv4 とは互換性がなく、その代用品にはならない。 しかし人々は依然として IPv4 のサービスを必要とする。 したがってたとえ IPv6 が普及しても、その普及率が 100% になるまでは IPv4 の需要は減少しない。そのためサービスを提供する側はつねに IPv4 をサポートする必要にせまられ、IPv6 のメリットはいつまでたっても見えてこない。 結果としてインターネット全体の IPv6 の導入には予想以上の時間とコストがかかり、 普及までには長い忍耐が必要となる。

おことわり: これは Daniel J. Bernstein さん (以下 djb) による IPv6 mess (日本語訳) および ngtransメーリングリスト (IPv6 への移行に関する問題を扱っていた) での彼の発言を読んで、新山が理解したことをまとめたものです。 ここでは IPv6 がなぜ普及しづらいのかを技術的な観点から説明しています。 比喩と説明文は新山のオリジナルですが、基本的なアイデアはすべて djb の受け売りで、新山自身は何も新しいことは言っていません。 だからといってこのページで書いたことの内容に責任をもたないというわけではないので、 間違っている部分についてはご指摘いただければ幸いです:

注意: png を沢山使っているためか、このページを 印刷しようとすると異常に時間がかかるようです。すみません。 印刷のときに「白黒」を指定できる方はそうするとすこしはましになるかもしれません。

現在のインターネット (IPv4) はただ一つの鉄道会社が運用している鉄道の路線のようなものです。 かりにこの鉄道会社を「インターネット公共地上鉄道会社」と呼びましょう。 インターネットに接続されているコンピュータ (建物) はすべてこの 「インターネット公共地上鉄道会社」の鉄道につながれた「駅」を持っており、 インターネット上を流れるデータ (人) はかならずこれらの駅を経由して運ばれます (図1)。

Yahoo!、Google、 Hotmail など、インターネット上のすべてのサイトは それ自身がもつ駅の上に構築されています。 とうぜん、いまインターネットに接続しているあなたの家も駅を持っています。

あなたがインターネット上のサイトにアクセスするとき、 データはこれらの駅のいくつかを経由して目的地に到達します (図2)。 実際には、それぞれの駅は「駅名 (IPアドレス)」をもっていて、 インターネット上の駅はその駅名によって区別されています。

ところが、この方法には問題があります。現在のこの鉄道会社のやり方では、 「駅」につけられる駅名はある一定の文字数までに制限されているのです。 そのため、このまま駅を増やしていけばいずれは限界に到達し、 駅につける名前がなくなってしまう → 駅をこれ以上増やせなくなってしまう、 という問題が発生します (IPアドレスの枯渇)。

インターネットに接続されるコンピュータの数は増えつづけているため、 これは望ましくありません。このままでいくと、いずれは インターネットに新しいコンピュータが接続できない状態になっていまいます。 なんとかしなければいけません。

増えつづける駅の要求に対処するため、人々は新しい鉄道会社をつくり、 別の鉄道路線を建設することにしました。それが「インターネット公共地下鉄会社 (IPv6)」です。

この新しい地下鉄会社では、まったく別の鉄道の規格をつくり、 駅名に使える文字数を大幅に増やしました。 そのため従来の鉄道にくらべて、ケタ違いにたくさんの駅が建設できることになります。 ただし、この地下鉄会社の車両はまったく異なる新しいつくりのため、 地上の鉄道線路に乗り入れることはできません。 そのため地下鉄の駅は、地上の駅とは別に新たに作られることになりました (図 3)。

ところが、この方法には問題があります。 地下鉄の駅は地下にあるので、地下鉄 (IPv6) をつかって アクセスしたいサイトには、地下鉄用の通路を作らなければなりません (それ以外の場所を通ることはできません)。 つまりこのようなサイト (IPv6 対応サイト) は 地上駅用の通路 (従来の通路) と、 地下鉄用の通路を 2種類作る必要があることになります。 こうすれば、新しく地下鉄駅をもった家 (IPv6 に対応したコンピュータ) からこの通路をとおって地下鉄対応サイトに到達できます (図 4)。

しかし現在の地上路線 (IPv4) はあまりにも巨大化してしまっており、 それと同じ規模の地下鉄 (IPv6) をゼロから建設するのは莫大な費用がかかります。 (現在までに構築されている IPv4 と IPv6 対応サイトの数を比べると、 その差は全国の JR全線と、都営地下鉄の1路線の差ぐらいあります。 もっと大きいかもしれません。)

そのため、なんとか既存の路線をつかってデータを運べないものか、ということになります。

この問題を解決するために、人々は 「地上駅と地下鉄駅が同じ位置にあるときは、途中でその駅を通って地上会社の路線を使ってもよい」 というふうに決めました (トンネリング)。 これは次のようにして実現します。まず、地下鉄駅を利用するすべての人 (データ) に 「地下鉄パス」を持たせます (カプセル化)。 そしてこの地下鉄パスをもっていれば、途中で地上駅を通ってもよいことにしたのです。 これによって、すべての地域に地下鉄をはりめぐらす必要はなく、 互いにつながっていない地下鉄どうしでも、地上の鉄道会社を経由することで 人々 (データ) が移動できるようになりました (図 5)。

ところが最大の問題は以下のようなものです。これまでうやむやにしてきましたが、 じつは地下鉄駅しか持っていない家 (IPv6 のみに対応したコンピュータ) から直接、地上の駅に到達するすべはありません。 地下鉄パスがあるじゃないか、とお思いでしょうが、じつはなんと 「 いったん地下鉄の改札から乗ったら、 地下鉄の改札からしか出てはいけない 」 というとりきめがなされているのです。 今のところ、Yahoo! や Google や Hotmail などといったサイトは地上の駅しか持っておらず、 地下鉄用の通路はありません。 そのため、地下鉄駅しか持っていない家 (IPv6 のみに対応したコンピュータ) から出発しても これらのサイト (IPv4) で降りることはできず、 したがってアクセスする方法は今のところありません (図 6)。 同様に、地上の駅 (IPv4) から出発しても地上の駅でしか降りることはできず、 IPv4 サイトから IPv6 サイトにアクセスすることもやはり不可能です。

では「地上と地下のどちらにも駅をもった (IPv4・IPv6 の両方に対応した) 家を建てればいいじゃないか」 と思うかもしれません。それはそのとおりです。でもちょっと待ってください -- もともとこの地下鉄プロジェクトは「地上にはもうこれ以上、駅を建てられないから始めた」んですよ。 最初から地上に駅が建てられるなら、わざわざ地下に駅を建てる必要なんかなかったはずです。

実際には、地下鉄駅からも地上の駅にアクセスする方法はあります。 ある業者は、途中の駅構内で地下鉄会社の定期券を地上会社の定期券と (一時的に) 交換する、 というサービスをやっています (NAT、注: 厳密には IPv6 では NAT と呼ばないらしいのですが、 やっていることは同じです)。つまり、地下鉄駅しか持っていない人でも、

では、これらの私鉄沿線の住人はどのようにして公共鉄道を利用しているのでしょうか? じつは、すべての私鉄路線はある特定の場所で公共地上鉄道会社の駅に接続されています。 そこには例の業者 (NAT) がいて、定期券の交換サービスをしているのです。したがって、 「公共」鉄道にこだわらず、このような私鉄沿線に住めば (やや不便を感じつつも) 地下鉄を使う必要はないのです。逆にいえば、現在の地下鉄会社はいくら 「公共」と名がついているとはいえ、便利さでは私鉄とほとんど変わりありません。 すると地下鉄を建設するメリットはどこにあるのでしょうか?

「とにかく将来的に駅は不足するんだから、 一時的に多少不便なのは我慢して、無理にでも地下鉄を使っていくようにするしかない」 と思われるかもしれません。たぶんそれがいちばんいい選択でしょう… 将来ほんとうにそれで利益が約束されるならば -- でも、それはいつでしょうか? いったいいつになったら、すべての駅が地下鉄 (IPv6) に置きかわるようになるのでしょうか?

上でみたように、個人にとっては地下鉄を使うのも私鉄を使うのも あまり大差はありません。現時点ではどちらも同じように定期券の交換業者 (NAT) が必要です。 しかし企業にとってはどうでしょうか。 もし Yahoo! や Google や Hotmail が地下鉄 (IPv6) をサポートするとしたら、 すべての地下鉄利用者のために専用の通路を建設しなければなりません。 Yahoo! などの大規模なサイトでは、これはとんでもなくコストがかかるでしょう。 それでもそのコストに見合うだけの利益が見込めればいいのですが、 問題は「たとえ彼らがいま地下鉄用通路をつくっても、利用客はほとんどいない」 ことにあります。地下鉄駅を持っている家 (IPv6 に対応しているコンピュータ) が まだ少ないうえに、どのみちかれらは業者 (NAT) を使って地上駅 (IPv4) にもアクセスできるのですから! ここに悪循環があることにお気づきでしょうか? つまり、

比喩はここまでにしますが、いいたいのはこういうことです。 いまの状況だと、どのみち IPv6 のみ対応のコンピュータを使っていも、 人は IPv4 サイトにアクセスする手段を持つ必要があるのです。なぜなら Yahoo! や Google や Hotmail が使えなければ、多くの人にとって インターネットはまったく役に立たないからです。 したがって、当面は IPv6 にも IPv4 にもアクセスできるコンピュータが 増えることになるでしょう。しかし、だとすると Yahoo! や Google や Hotmail などのサイト側にとってわざわざ IPv6 をサポートするメリットはいったいなんなのでしょうか?

たとえば Google には、(おそらく) 何千台ものサーバが存在しています。 これほどの規模のサイトで IPv6 を使えるようにするのは非常にコストがかかるでしょう。 これは、ただ単にソフトウエアをアップデートすればいいというものではありません、 彼らはふたつのアドレス (地上駅の通路と地下鉄駅の通路) をずっと 維持・管理しつづけなければならないのです! おまけにこれらの IPv6 対応ソフトウエアはまだ開発途上にあり、 ノウハウの蓄積も十分ではありません。 しかも、それによる利益はいまのところ不明で、たとえ利益があったとしても、 それは何年先にペイするのか誰も予測できないというしろものです。それまで彼らはずっと無駄な (と思われる) 管理コストを払いつづける必要があるのです。これを企業に期待するのはかなりむずかしいといえるでしょう。 (実際、これらのサイトは現時点では IPv6 に対応していません)

djb は「そこに IPv6 があるから登るのだ」と発言した人に対して、 "that's a dumb answer" (それは頭の悪い回答ですね) と一蹴したあと、 以下のように書いています。

問題は「IPv6 が IPv4 の上位互換ではない」ことにあります。 さきほどの比喩でいえば、赤字で書いた部分 「 いったん地下鉄の改札から乗ったら、地下鉄の改札からしか出てはいけない 」 というルール、このとりきめによって地下鉄 (IPv6) は現状ではまったく役に立たないものとなってしまいました。 その結果として普及が進まないという状況になっています。コンピュータの用語でいえば、 これは「IPv6 のみ対応のコンピュータと IPv4 のみ対応のコンピュータでは (たとえ線がつながっていても) 通信できない」ということになります。

下の図を見てください (図 8)。横軸は時間を、縦軸はインターネットに接続されているコンピュータが IPv4 ホストあるいは IPv6 ホストに到達できる割合をあらわしています (注意: IPv4 対応コンピュータとIPv6 対応コンピュータの割合ではありません -- IPv6 にしか対応していなくても先程の NAT を使って IPv4 ホストに到達することはできます)。 緑の線はしだいに増えていって、いつしか「100%」になる瞬間 (Magic moment、魔法の瞬間) が やってきます。が、いつの時点でも赤か緑のどちらかの線が必ず「100%」であることに注意してください。 これは偶然ではありません。なぜなら、すべてのコンピュータが IPv6 到達可能にならない限り、 IPv4 到達可能のコンピュータが減ることはないからです (でも思い出してください、 そもそも IPv6 は「IPv4 アドレスが足りないから」始めたんですよ)。しかもその瞬間が訪れる時点までは 必ず IPv4 到達可能率のほうが IPv6 到達可能率よりも高いのです。 このことは、新たにネットワークを利用する新規ユーザや企業にとって何を意味しているでしょうか。 つまり新しくネットワークに接続するコンピュータは、必ず IPv4 に到達できるように しなければならず、結果としてそれでつねに用は足りてしまい、 IPv6 はいつもいつもあと回しにされてしまうのです! 逆に新たにネットワークを使ってビジネスに参入しようとする企業が 「IPv6 のみしかサポートしない」などということは考えられません。 なぜなら IPv6 のほうが確実に不利であることがわかっているのですから。 これでは「Magic Moment」はいったいいつになったらやってくるのか、見当もつきません。 かりにこれが今後 10年で達成できたとしても、そのころには最初に IPv6 に対応しはじめた コンピュータはとっくにお役御免になっているはずで、そのコンピュータにとって IPv6 への対応はまったく無駄な投資だったことになります。 そうこうしている間にも IPv4 への需要は増えつづけ、 ネットワークはますます硬直したものになるでしょう。

もし IPv6 が IPv4 の上位互換になっていれば、こうはならなかったはずです。 つまり IPv6 対応によって、(NAT を使わずとも) IPv4 サイトと IPv6 サイトの両方に アクセスできるようになっていれば (地下鉄から乗っても地上駅で降りられるようになっていれば)、 大は小を兼ねるわけですから、新しいコンピュータを IPv6 のみに対応させることも やぶさかではありません。つまり使う側にとってはつねに「今と同じか、それよりよい」ものが 手に入ります。そうやって IPv6 対応サイトを増やしていけば、いずれは全世界のサイトが IPv6 対応になると期待することができます。しかし実際にはそうなっていないのです。 IPv4 と IPv6 のあいだに互換性がないということは 「今までのネットワークを全部捨てて、新しくやり直せ」ということであり、これにはかなり思いきった決断が必要です。 かといって IPv4 への“乗り入れ (NAT)” に頼っていては、いつまでたっても IPv6 の意義が生かされません。 このジレンマはいったいどうすれば解決できるのでしょうか。

なぜ IPv6 はこんな設計 (=地下鉄から乗ったら地下鉄でしか降りられない) になったのでしょう? これは先の地下鉄の比喩からはわかりにくいことですが、 そうしたほうが圧倒的に「簡潔で、効率がよい」からです。 つまり純粋に技術的な観点からみれば、IPv4 と IPv6 は分けて扱ったほうが絶対によいことになります。 しかし上でみたように実際の移行過程を考えると、この技術的な優位性は意味がありません。 たとえどんなに技術的に美しかろうと運用コストが低かろうと、 普及しなければ意味がないのです。 おまけに現状では IPv6 のみしか使わない場合は結局 NAT が必要になります。 山本和彦・加藤朗氏による「No more NAT!」 によれば、 「いったん IPv6 が広まったあとは NAT は必要ない」と簡単に書かれていますが、広まるまではやはり必要なわけです。 しかし、そもそも IPv6 の根本にあった目的というのは「NAT を使わずに公共のアドレス空間 (駅名に許される文字数) を拡張しよう」ということであり、 効率のアップは付加的な要素にすぎません。

この文章のもとになった Daniel J. Bernstein の主張は 「NAT なしで IPv4 と IPv6 のコンピュータ間の通信をできるようにせよ (= 地下鉄から乗っても、地上駅で降りられるようにせよ)」 というものでした。実はこれは技術的にかなりむずかしい提案です。 これに対する反論は「たとえそのようなものが可能になったとしても、 それはひどくぶかっこうな、効率の悪いネットワークになる」というものです。 また、どのみち IPv6 に対してはすでに多くの人が研究開発をしており、 いまさらそのメカニズムを (かなり根本的な部分で) 変えるのは ほとんど不可能でしょう。

これはじつに暗い見通しです。 現在考えられている対策は、IPv6 の機能面における圧倒的な利点を見せつけて 人々を呼びこもう、というものです。つまり IPv6 でしか使えないような「キラー・アプリケーション」をつくって 普及させ、IPv6 を使うことによって得られる「ごほうび」を用意すればいい、 というわけです。しかしこれは IPv6 の普及を促進はしますが、IPv4 の需要を減少させはしません。 IPv4 のアドレスは不足しつづけます。 なぜならいくら IPv6 のキラー・アプリケーションが便利であっても、それがすべて IPv4 に置きかわるまでは、人は依然として IPv4 のサイトにもアクセスしたいからです。 むしろこれは問題の本質を見失わせかねません。 繰り返しますが、私たちが本当に解決しなければならない問題は「IPv6 が普及しないこと」ではないのです。 「IPv4 の需要が増えつづけていること」が問題なのです。たとえ IPv6 が普及しても、 (その普及率が 100% にならない限り) IPv4 の需要を減らせないというのでは、 IP アドレス枯渇問題へのとり組みとしてはひどく効率の悪いやり方と言わざるをえません。

さらに強硬な考え方では、「もうすべての IPv4 サイトにアクセスできなくてもいいから、 途中で無理矢理にでも IPv6 のみに移行してしまえばよい」というのがあります。 2002年 8月 14日、Randy Bush は 「ngtrans プロジェクトの勝利を宣言する時がきた ... IPv4/IPv6 の混合ネットワークはもはや未来像ではない、それはもう現実にある」として ngtrans ワーキンググループを解散させました (日本語訳より)。 しかしこれは非常に危険です。この考え方に従うと、インターネット上には お互いに通信できない 2つのコンピュータ (IPv6 にしか対応していないコンピュータと IPv4 にしか対応していないコンピュータ) が存在することになります。 こうなると、これはもはや「世界にただひとつのインターネット」ではありません。 インターネットは 2つに分断されてしまいます (図 9)。

インターネットはもともとさまざまなネットワークが合体してできたものです。 その成立の過程で、人々はこれらに接続されているすべてのコンピュータが 統一したやり方で通信できるように多大な努力を費やしてきました。 それをまたここで莫大なコストをかけて 2つに分断しようとするのは、 よほど説得力のある理由がない限り受け入れられません。

djb の問いかけに対して、Keith Moore は ngtrans メーリングリスト上で 以下のように反論しています。

For the forseeable future, everyone will need some way to get access to the major services that are IPv4-based: email, web, etc. Many sites are already doing this with IPv4 NATs and/or application-level proxies so it's not difficult to conclude that this will continue to happen. I expect that for a very long time most sites will get at least one IPv4 address which can be used for such NATs or proxies to support legacy applications. However, there will also be large numbers of hosts that can only be directly accessed via IPv6, precisely because the availability of large numbers of IPv6 addresses will make it possible to network those hosts in a standard way, when due to the address shortage it is not possible to do this with IPv4. And there will be applications that require use of IPv6 because they cannot work with NATted IPv4.

It's misleading to speak of IPv6 addresses as "second-class". IPv6 has a different domain of applicability than IPv4. IPv6 makes it possible to network a great many more devices than IPv4, and it also makes it possible to run new kinds of applications. I think it likely that we will see large numbers of IPv6-capable "appliances" - cameras, power meters, game hardware, security systems, cell phones - anything that would benefit by remote control, monitoring, or access.

IPv6 is a failure only if you expect it to replace IPv4 in a short time. It's quite clear to all of us that this isn't going to happen. But due to the address shortage and the presence of NATs, IPv4 is getting less and less flexible and more and more difficult to use for new applications. IPv6 will be successful because it lets us do things that cannot be done with IPv4.