IPv4アドレスが枯渇。IPv4, IPv6, IPアドレスとは?
IPとは
「パケット」という言葉を聞いたことがある方も多いかと思います。
ネットワークでデータをやりとりする時、大きなデータを一度に送ると損失する可能性が高く、効率がよくありません。 そこで、ある程度の大きさに分割して送ることになります。
そして分割されたデータは、「どこ宛に送るのか」といった情報を付属して送信します。 分割されたパケット(小包)を受け取った中継者は、この情報を元にパケットを伝送します。
データに付与される伝送情報はもともとTCPと呼ばれていたものが、IPとTCPに分離されたものです。 そのため一般的にはIPとTCPはセットで使用されますが、IP単独で使用したり、TCPではなくUDPと組み合わせて使用することもあります。
IPv4パケットは次のような構造になっています。
[IP][TCP/UDP][データ]
IPが担っているのは、発信者、宛先の情報です。
TCPは、パケットの順序や、到達をチェックする機能などを持っています。 UDPはもっとシンプルで小さく、リアルタイム伝送に適しています。
ここでは「データ」とひとまとめにしていますが、この「データ」も構造化されているのが一般的です。
IPアドレス
IPが担っているのは「発信者」と「宛先」ですから、それが「誰であるか」ということを明らかにしなくてはなりません。 IPにおける「発信者」「宛先」は「どこから来て、どこへ行くのか」ということであり、つまり住所(アドレス)です。
これを表すのがIPアドレスです。
IPv4アドレスでは、0から255までの値を4つに.
で区切った値が使用されます。例えば192.168.0.1
です。
IPv4アドレスは32ビットで、全部で4,294,967,296個のアドレスがあります。 しかし、実際には特別な意味を持つアドレス、予約されているアドレスが存在するため、実際にインターネット上で使えるアドレスはこれよりずっと少ない数です。
IPv4アドレスの枯渇とNAT
約40億という数は地球の人口よりも少なく、人類が必要とする数よりずっと少なく、必然的に枯渇することになります。
そこで、様々な節約とやりくりによってなんとか枯渇を避けようとしてきました。
もっとも有力なのがNATです。 ひとつひとつの端末にはプライベートアドレスというローカルな環境で自由に使える(インターネット上で流通させることのできない)アドレスを与え、ゲートウェイ(一箇所でとりまとめて扱う「門」)でインターネット上のアドレスに変換するという方法です。
この方法は非常に有力であり、IPv4アドレスの総数よりもはるかに多くの端末がインターネットに加わることができました。 しかし、それでもいよいよアドレスが足りなくなってしまったのです。
なお、これは「交換可能なネットワーク上でのアドレス」であり、インターネット上のアドレスが枯渇しているという意味です。 インターネットと一切交換をしないネットワーク上でIPv4アドレスを使用する場合1は全く問題ありません。
IPv6
そこで登場したのがIPv6です。
「IPv4アドレスが不足する」という話しは1991年に登場しており、IPv6の原型は1995年に登場。IPv6の正式デビューは1998年です。
IPv6パケットは次のようになっています。
[IPv6基本ヘッダ][IPv6拡張ヘッダ][TCP/UDP][データ]
IPv6拡張ヘッダはひとつとは限りません。
これを見ると複雑になったように見えますが、IPv4で採用されたものの実際には使用されていないものを削除しているため、むしろシンプルになっています。潜在的にはIPv4よりも軽く、高速に処理することができます。
IPv6のアドレスの数は128ビットであり、アドレスの総数は340,282,366,920,938,463,374,607,431,768,211,456個(約340潤)に増加します。 これは、地球上の空間で考えると、面積的には地表1mm2あたり約6,670兆個のアドレスを割り当てることができるということを意味します。 これだけ豊富であれば、人口増加どころか、ひとりあたり何台端末を持ったとしても、アドレスが枯渇する前に地球が埋もれてしまうことでしょう。
普及しないIPv6
1998年に正式化されたIPv6は、研究者たちは「2000年までにはIPv6は一般化する」と考えていましたし、2004年にはIPv4よりもIPv6のほうが使われるようになると考えていました。例えそこまででないにしても、IPv4からは速やかに移行されると思われていました。
ところが、2003年以降、「IPv6ってどうなったの?」と言われるような有様。話題にも上らなくなり、「IPv4でうまくいっているからいいじゃない」といった風潮にさえなりました。 しかし、現実には枯渇してしまったのです。
普及しない理由はいくつもあります。 もちろん、第一には 現にIPv4アドレスを割り当てられている人にとって、IPv4アドレスに不満がない という問題があります。 これは環境資源問題と同じで、化石資源が枯渇すると言われても、今問題なく化石資源が利用できている以上深刻には考えないというのと同じことです。
しかも、IPv6アドレスを導入することによるメリットが非常に乏しいというのも問題です。 IPv6アドレスを使うことで、何か便利になったり、速くなったりするわけではありません。 にも関わらず、事業者も利用者も新たな負担が生じることになります。事業者は利用者にメリットがない以上、価格に転嫁することは難しく、なおかつ利用者としてもメリットがないので反応は鈍いでしょう。
しかもIPv6利用のハードルは低くありません。IPv6を利用するためには
- 端末のOS
- ルーター
- 接続事業者
- 使用するアプリ
- サーバー
で対応が必要になります。
古いものでなければOSは既に対応しており、この問題は解消していると考えていいでしょう。つまり、手元環境としてはIPv6は既に使える状態にあるわけです。
次にルーターです。ここでは「ルーター」と一言でまとめていますが、インターネットに接続するための一連の機器が全てIPv6に対応している必要があり、自分で購入するルーター以上に、「事業者から貸与されるモデムやONUといった機器が対応していない」という問題に悩まされるケースが多くあります。 なお、ならルーターは適当に買っても対応しているかというと、そんなことはありません。だいぶ神経質に探すことになります。
そして接続事業者(ISP)です。
IPv6ネットワーク上でIPv4パケットを伝送するIPv4 over IPv6という技術を組み合わせることで、ISPはIPv6接続サービスによってIPv4/IPv6の両方でやりとりできるようにします。 サービス名は「transix」や「v6プラス」という名称が一般的で、Biglobeは「IPv6オプション」と呼んでいます。
こうしたIPv6接続オプションの利用者負担は少ないものの、現状選択できる事業者が少数です。
アプリは古いものでなければ「おおよそ」大丈夫ではないかと考えられますが、実際にはそこまでちゃんと作っていないアプリが少なくなく、意外なところで問題になります。 もっとも、IPv6に対応していないアプリはIPv4 over IPv6が使えるのであればIPv4を使えばよく、そこまで深刻な問題ではないとも考えられます。 とはいえ、そもそもIPv4アドレスの枯渇に対応するにはIPv4 over IPv6という過渡技術では意味がなく、IPv4アドレスなしにIPv6アドレスでインターネットを利用する必要があるのですが。
そしてサーバー側も、OS、ルーターなどの経路、ゲートウェイ事業者、そしてソフトウェアという段階で対応が必要であるという事情は同じであり、手元側だけで解決できるものではありません。 これは世界的に皆が協調して行わなければならないのです。
ここまで見てきてわかるように、問題は複雑で多岐に渡ります。 専門家にとってはそれほどややこしい問題ではありませんが、一般の人にとっては「IPv6を使うことで今まで問題なかったのに問題が起きる」ように見えるわけで、原因を特定するのも困難です。
さらにいえば、アドレスがわかりにくいという事情もあります。
IPv4アドレスは.
区切りで4つでしたが、IPv6アドレスは:
区切りで、16進数4桁が8つです。
例えば2001:0db8:0020:0003:1000:0100:0020:0003
です。さらに、複雑な略記法を持ちます。この場合、2001:db8:20:3:1000:100:20:3
と書けます。
これは、専門家でなければかなり手強く見えます。実際のところ、IPv6アドレスの表記は専門家でも結構面倒だと感じています。
アドレス設定に関してはIPv6は柔軟に扱えて便利な側面もあります。
ちなみに、実は「IPv6を使うとIPv4では得られなかった固定IPアドレスのまとまった割り当てができる」というメリットがあり、インターネット上で一意なグローバルアドレスを端末で直接使うことかできます。
IPアドレスから住所がバレますか?
よくある質問です。これは、yesともnoとも言えます。
個々のIPアドレスはゲートウェイのものであり、「そのアドレスがどこのゲートウェイのものであるか」ということが分かります。 ゲートウェイは物理的に遠い場合もありますが、割と地域ローカルに設置されているため、近所のゲートウェイに接続されるのが普通です。そうすると、IPアドレスから「このゲートウェイから割り当てられる場所で接続している」という推測が可能になります。
場合によってはアドレスの割り当て方の法則からもう少し絞りこめることもあります。 そこは効率的な配送を行うチューニングのために有効な方法なのですが、現実的にはIPv4アドレスはそんな割り当て方ができるほど余っていないので、
ちょっと専門的に IPv6の実用的メリットとデメリット
インターネット上ではIPv6を使うのはハードルが高く、トラブルのもとなのであまり積極的に使っていこうとはいい難い(もちろん、立場的なことも考えて積極的に使おうとはしている)のですが、実はローカルな意味ではIPv6を使うメリットがいくらかあります。
最大のメリットはIPv6アドレスは余計なことをしなくてもネットワークインターフェイスに複数のアドレスを割り当てられるということです。これは、論理的にネットワークを多重化したい場合に有用です。また、「論理的なホスト名を割り当てるための論理的アドレス」という設定も可能になります。
また、リンクローカルアドレスは特に設定を必要とせず設定することが可能であるため、GbEを用いてマシン間でのデータ交換を行う場合、互いにIPv6リンクローカルアドレスのみが有効なインターフェイス設定としてケーブルで接続することで簡単にやりとりすることができます。 これは、IPv6アドレスを持つホストからなるネットワークであれば、ゲストとしてDHCPによる割り当てを行わないネットワークにjoinする場合でも有効な方法です。
一方、IPv6のみとすると、IPv6のリンクローカルアドレスが::1
しかないため、「ループバックアドレスを使い分ける」という方法が難しくなりました。
実のところ、「ネットワークn,
ホストm」という構成の場合、192.168.0.0/16
のほうが、明瞭にサブネットワーク部とホスト部を設定できるため、IPv6化によってアドレスからマシンが直感的にわかりにくくなるという問題もあります。
もっとも、現実的に現代においてそのようなケースは非常に考えにくいでしょう。↩︎