メインコンテンツへジャンプする

JPNICはインターネットの円滑な運営を支えるための組織です

ロゴ:JPNIC

WHOIS 検索 サイト内検索 WHOISとは? JPNIC WHOIS Gateway
WHOIS検索 サイト内検索
インターネット10分講座 IPv6アドレス~技術解説~もあわせてご覧ください。
本記事は2002年当時の状況に基づいて記述されています。 一部、現状と異なる部分があります。

ニュースレターNo20/2002年3月発行

7 インターネット10分講座:IPv6

IPv6とは何か

森前首相の所信演説やe-JAPAN構想で有名になったIPv6ですが、いまのIP(IPv4)とどこが違うのでしょうか。また、IPv6になると、どんなことができるのでしょうか。

IPv4とIPv6の違い

さて、現在広く普及しているIPv4と、次世代のプロトコルと言われているIPv6とでは、どこが違うのでしょうか。大ざっぱにいえばIPv4の運用実績から判断して、なるべく構造をシンプルにし、なおかつ今後必要となる機能を追加したものです。

具体的な話としては、

  • グローバルIPアドレスの数が多い
  • セキュリティ機能を標準で装備している
  • エンドユーザーの設定が簡単

の3点が大きな違いです。ほかにも色々と違いはあるのですが、これらに比べるとあまり大きな差ではありません。IPv6にしかできないこと、というのはほとんどありませんが、IPv4ではオプション扱いだった機能が標準装備とされ、便利になりました。

ほぼ無限大のIPアドレス

IPv4では、個々のホストを区別するためのIPアドレスを32ビットで表現していました。コンピュータ的な表現なら4G個、一般的な表記にすれば42億9496万7296個になるわけです。実際には全てをホストに割り当てられるわけではないので、使えるアドレス数はもっと少なくなります。2001年の世界人口白書では、世界の人口は61億3400万人だそうなので、一人ひとつのIPアドレスを使えないことになります。今後、携帯電話やTV、冷蔵庫などがIPネットワークでつながると考えると、一人ひとつどころか10個くらいはすぐに使いそうです。

対してIPv6では、IPアドレスを128ビットで表すことにしました。こうなると一般的な表記ではもはや追いつかず、約3.4×10の38乗個になります。1兆で10の12乗ですから、さらにその1兆倍の1兆倍よりも多いということです。前出の世界人口白書では2050年に世界人口が93億に達するとしていますが、このとき一人あたり約3.7×10の28乗個のIPアドレスを使える計算になります。これでも1兆の1兆倍より多いですから、事実上無限といっていいのではないでしょうか。

通信内容を暗号化

IPSecの機能を平たく言えば、IPパケットのデータを暗号化することです。これによって、パケットの偽造、改竄、成り済ましをかなりの確度で防げます。これだけで全てのセキュリティホールを防げるわけではありませんが、パスワードが平文でネットワーク上を流れる、ということはなくなります。

実はIPSecもIPv4のオプションとして用意されています。しかしあくまでオプションですから、通信相手が使えるとは限りません。その点IPv6では標準機能ですから、必ず通信は暗号化されます。

IPv6でできること

機能的な面で言えば、IPv4とIPv6に大きな違いはありません。しかし使えるグローバルIPアドレスの数が飛躍的に増大したので、世界中の機械に割り当てられます。

IPv4では、NAT(Network Address Translater)という技術によってアドレス数の制限を回避しています。またNATには、セキュリティ上の利点もあります。一種のパケットフィルタ、ファイヤーウォールとして動作するからです。とはいえ、IPSecによってIPパケットが暗号化されると、事実上NATは使えません。また、IPアドレスをデータとして埋め込んでいるプロトコル(FTPが代表的です)をNAT経由で使うのも面倒です。さらにCode Redやnimda※1の例を見ると、パケットフィルタが万能というわけでもありません。

figure
NAT(Network Address Translater)
NATは、IPパケットのヘッダにあるIPアドレスを書き換える機能です。これにより、プライベートIPアドレスを割り当てたホストが、あたかもグローパルIPアドレスをもっているかのように通信できます。実際にはポート番号まで書き換えるNAPTのほうが一般化していますが、今回の話に直接は関係しないので割愛します。

もうひとつ、NATを採用するとInternetの特徴であるEnd to End※2モデルが崩れてしまいます。一般的に、NATの内側から外側へのアクセスは自由ですが、外側から内側へのアクセスは制限されています。当然この状態では、NATの内側にあるホストに対して通信を開始することがはなはだ困難です。Webサーバにアクセスするだけならこれで問題ないのですが、たとえばVoIP(Voice Over IP)で友人と話をしたいとなると面倒です。どちらか一方でもグローバルIPアドレスを持っていれば呼び出せますが、NATの内側にいる友人は呼び出せません。「これからVoIPでおしゃべりしよう」と、電話で伝えるハメになります。さらに双方ともにNATの内側だと、どこかにリレーサーバを作って、互いにそこにアクセスすることになります。会話する人間が増えたら、それに応じてサーバも巨大化するでしょう。大型計算機のTSS(Time Sharing System)※3や、電話のネットワークがこの典型例に思えます。もちろん、電話ネットワークには電話ネットワークの利点があります。帯域が保証されていますし、課金も正確です。

figure
NATの問題点
NATはIPパケットのヘッダを書き換えます。ところがFTPなどのプロトコルでは、ヘッダだけではなくデータ本体であるペイロードにもIPアドレスが含まれています。FTPなどのプロトコルごとに、いちいちIPペイロード内のデータを書き換えるルーチンを個別に作る必要があります。また、IPSecといった暗号化手法でも、暗号化されたIPペイロードはIPアドレスと密接に関係しています。NATによってIPヘッダのアドレスだけ書き換えても、うまくいきません。

Internetと電話ネットワークのどちらが優れているのか、にわかには結論を出しにくいものですが、少なくとも元々のInternetはPeer to Peerを前提としており、サーバ/クライアント型を指向するものではない、ということはいえるでしょう。IPv6によって無尽蔵にグローバルIPアドレスが使えるのであれば、この原点に回帰できるというわけです。またNATを回避するための技術的な工夫をしなくてすめば、それだけ別のことに注力できてビジネスチャンスも広がろうというものです。

IPv6への移行

色々な利点のあるIPv6ですが、ひとつ大きな問題があります。世の中にあるIPv4ベースのホストとは直接通信できないのです。かといって、一夜にして全てのホストをIPv6に対応させることも不可能です。IIJやOCNなど、IPv6のサービスを開始したプロバイダもありますが、まだまだ少数派です。

そこでまず、IPv4とIPv6の両方を扱えるホストとルータでネットワークを構築し、徐々にIPv6に切り替えていきます。IPv4しか扱えないホストのためには、相互変換装置を用意します。これはLAN内での話ですが、ISPがIPv6をサポートしていないこともあるでしょう。この場合は、IPv6のパケットを丸ごと、IPv4パケットのデータとしてしまいます(トンネリング)。IPv6を扱えるルータ同士の間は、IPv4で結んでしまえばいいわけです。ルータ間のネットワークはIPv4のパケットを運んでいるだけなので、いっさい手を加える必要がありません。

その後ISPがIPv6をサポートした時点でトンネリングをやめて、IPv6を直接やりとりするようにします。当然、ISP側のルータもIPv4とIPv6の両方を扱えるはずなので、しばらくはIPv4とIPv6のパケットが混ざった状態になるでしょう。最終的に移行が終了すれば、IPv6のパケットだけが流れるようになります。機能的にはすでにIPv6に対応したルータが増えているので、移行に関する技術的な問題は少ないはずです。

残るは、OSとアプリケーションです。いまのところOSとしてはSolaris、*BSD、Linux、Windows 2000(パッケージをインストールする必要があります)、Windows XPなどがIPv6に対応しています。Internetをささえるアプリケーションとしては、BIND、Apache、SendmailなどがIPv6への対応しています。これでメーラーやWebブラウザがIPv6に対応すれば、とりあえずの生活には不自由しません。気づかぬうちに、IPv6への対応は着々と進んでいるのです。


※1 Code Red、nimda
いずれも2001年に猛威をふるったウィルスソフト。特定のWebサーバーが持つ弱点を攻撃してくるため、外部にWebを公開している以上パケットフィルタでは防げない。
※2 End to End
Internetにつながるホスト全てが互いに見えているモデル。
※3 Time Sharing System
時分割システム。現在普及しているノイマン型コンピュータは、原則として一度に一つの命令しか実行できない。しかし、人間には検知できないほど短い時間間隔でたくさんのプログラムを切り替えながら実行すると、あたかも全てを同時に実行しているように見える。この応用で、ひとつのコンピュータを複数の人間が使う方法。

このページを評価してください

このWebページは役に立ちましたか?
よろしければ回答の理由をご記入ください

それ以外にも、ページの改良点等がございましたら自由にご記入ください。

回答が必要な場合は、お問い合わせ先をご利用ください。

ロゴ:JPNIC

Copyright© 1996-2024 Japan Network Information Center. All Rights Reserved.