かつてクラスC(/24)を一人で持っていたオレがきましたよ。その頃は128kbpsの接続に月30万はらってたけど(爆)。

池田信夫 blog IPアドレスは枯渇していない
コメントで教えてもらったが、総務省はIPアドレスの「枯渇対策会議」を今月中に立ち上げるそうだ。アドレスの配分を検討するのはいいが、それが枯渇するという事実認識は間違いである。IPv4のアドレスは約43億個、全世界のユーザー(約11億人)ひとり当たり4個もある。これに対して、現在のホスト数は約4億3000万なので、アドレスはまだ1割しか使われていないのだ。

池田先生、ちょっとこれはひどすぎ。

ホスト数 < 必要なIPアドレス数

まず、なぜ「たった一割」しかIPアドレスが使われていないのに、ネットワーク屋さんたちがそわそわしているのか。その理由は、IPのルーティングの仕組みにある。IPでは、ネットワークの指定を2のベキ乗でまとめないと出来ないのだ。

例えば、すでにIPアドレスを(ルーター込みで)130個使っているネットワークがあるとする。このネットワークが必要とするIPアドレスは130個ではなく256個(/24)だ。「126個も余っているから返せ」と言われても、出来ないのだ。この場合、IPアドレスをなるべく節約しようとすると、まずIPアドレス8個のネットワークを別個作って、そこに新規のルーターを設置し、ホストを6個移設した後、256個のネットワークを128個にして残りを返すということになるが、それだとこれ以上ホストは増やせない。ある組織のネットワークは、増えることはあっても減る事はまずないし、これを行う手間はそのネットワークを使用している組織だけではなく、その上流にあるISPの手間も増やすことになるので、誰もやりたがらない。

なんとも非効率な仕組みに思えるが、その代わりにこのIPアドレスの仕組みはルーターの設計を格段に楽にした。あるバケットを誰かに送るのに、42億個のIPアドレス一つ一つに対して送付先を紐づけなくても、「10.0.0.0から10.255.255.255までのネットワークはまとめてこちら」という処理で間に合うからだ。IPの仕組みは、いわばアドレス効率を犠牲にして、ルーティング効率を上げている、と言い換えてもいい。

しかも、前述のとおり、ネットワークの大きさは2のベキ。ホスト単位でIPアドレスがスカスカでも、ネットワーク単位ではIPアドレスはかつかつになりうる、そして実際にそうなりつつある理由がそこにある。

v4とv6は相互接続可能

池田信夫 blog IPアドレスは枯渇していない
また、IPv6は「枯渇」の対策にはならない。v6サイトはv4サイトからは見えないので、v6は実際には携帯電話などの(v4から接続する必要のない)ローカルなアドレスとしてしか使えない。

そんなことはない。IPv6対応のOSやネットワーク機器は、IPv4にも対応している。これをデュアルスタックというが、パソコンOSはWindowsもMac OS XもLinuxもすでに対応が済んでいる。*BSDに至っては、localhostで127.0.0.1の前に::1を試そうとするぐらい。

これはホスト単位での対応だが、ネットワーク単位での対応も一応済んでいる。6to4といって、IPv6ネットワークをIPv4ネットワークを使って構築する技術はすでに確立されて久しい。各ISPが6to4 Gatewayを立てるだけで、末端のIPv6対応機器はIPv6ネットワークに参加できるのだ。

もっとも、日本で一番有名な6to4ゲートウェイ、6to4.jpは去年3月にサービス終了してしまったのは残念でならない(Mac OS Xの設定は私が書いたし、BSD Magazineの記事にも書いた)。

池田信夫 blog IPアドレスは枯渇していない
総務省の委託調査でも、v6のトラフィックはインターネット全体の0.1%以下で、最近は減少している。

の背景には、この6to4.jpのサービス終了も小さからずあるのではないか。また、

IPv6普及・高度化推進協議会の調べでも、v6を商用サービスで提供するISPは、200社中わずか1社という状態だ。

の一社はいわずと知れたIIJだが、IPv6の技術的課題がほぼクリアーされた時期に経営危機が重なってしまったのは世界的な悲劇だと思う。

NATにVirtual Host - 現場はいつもてんてこまい

それでも、現場レベルで出来るIPv4アドレス節約は、かなりのところまでやっている。まずCIDRの導入があって、ネットワークを任意の2のベキで構築できるようになった。それまではABCしかなかったのだ。次にNATとVirtual Hostの普及があった。電話に例えると、NATは発信側を「内線化」する技術、Virtual Hostは着信側を内線化する技術だ。

最近ではマンション一棟丸ごとネット接続している例も珍しくないが、この場合マンション一個を、NATをIPアドレス一つでまかなっていることも珍しくない。NATを使えば、発信側のIPアドレスは「まとめる」ことができる。しかし「着信」は出来ない、要するにサーバーはおけない。

サーバー数がIPアドレスより多く存在する場合はどうしたらよいか?それがVirtual Hostである(厳密にはNamed Virtual Host)。元々Virtual Hostというのは、一つのホストに複数のIP Addressを割り当ててサービスを切り替えることを指していたが、IPアドレスがカツカツの現在では、複数のサーバーを単一のIPアドレスで運用するという、逆の目的のものを指すことが多い。この場合、サーバーの識別はホスト名で行われるが、全てのサービスでNamed Virtual Hostが使えるわけではない。例えばHTTPが正式対応したのは、Version 1.1からである。

このように、現場は大変な苦労をしてIPアドレスをやりくりしてきたのである。IPアドレス以前に、ネットワークエンジニア枯渇問題も心配してほしいものだ。

それでも、IPv4アドレスの再分配は必要だ。が、

以上見て来たように、池田先生の発言はとてもTCP/IPの仕組みをきちんと理解した上でのものとは思われないのだが、面白いことに結論はそれほど外していない。

池田信夫 blog IPアドレスは枯渇していない
未使用のアドレスを、オークションで再配分すればいいのだ。

すでにドメイン名が利権化し、賛否両論あれど我々はそれを受け入れて久しいのに、IPアドレスに関してそうなっていないのは結構不思議なことだと私も思う。とはいえ、IPアドレスの取得が年々難しくなっているというのは事実だし、譲渡に応じるところも出て来てはいる。今時Class Cが欲しいといっても、NSP (Network Service Provider)かIDC(Internet Data Center)でもない限り笑われるか怒られるかするのがヲチである。Stanford Univ.もかつてはClass Aを持っていたが、だいぶ前に譲っている。

ただし、今見て来たように、IPアドレスというのはドメイン名ほど簡単には譲渡できないしくみになっている。譲渡するためには、ネットワークの再構築が必要なのだ。ドメイン名であればDNSというデータベースの再構築だけで済むが、ネットワークの再構築は比べ物にならないほど大変なのだ。そのことは先日のNTTの事故でも明らかである。

このあたりの問題が解決しない限り、IPアドレスをオークションにかけるのは難しい。しつこいようだがIPアドレスというのは簡単には譲渡できないのである。合州国がガメているIPアドレスを中国やインドに譲渡するのはいいが、その際にはルーティングテーブルの大幅な書き換えが、全世界規模で起こる。NTTの事故の何倍もの事故も起こるだろう。率直に言って現場の悪夢である。

しかもそこまでしても、IPv4アドレス(2**32 = 4,294,967,296)は全世界の人口がよりも少ない(66億を超えている模様)。1人1アドレスというのは無理なのだ。これでは電話に劣るではないか。

IPv6の導入促進の方が、IPv4を売買するよりも安上がりのような気がするのだが。

Dan the Network Engineer