毎年楽しみにしているエープリルフール RFC の季節になった。 今年の分はまだ明らかになっていないようだが、 今回は過去に発行されたもののうち、筆者が最近関心のある IPv6 に関係のあるものを取り上げてみよう。
IPv6アドレスの簡潔な表現
1996年に発行された RFC 1924 「IPv6アドレスの簡潔な表現」は、IPv6 のアドレス表記は長すぎるから、もっと短くしようというのがその要旨である。
IPv4 アドレスは「10.1.0.23」のように10進数で表すので、最短7バイト/最長15バイトで表記される。一方、IPv6 アドレスは「FEDC:BA98:7654:3210:FEDC:BA98:7654:3210」のように16進数で表現する。途中にゼロが並んでいる「1080:0:0:0:8:800:200C:417A」 のような場合には、「1080::8:800:200C:417A」 と 「::」(コロン)2つで短縮表示できるが、それでも最長で39 バイトにもなる。しかし、16進数の代わりに85進数(base85)を使えば、短く(20バイト)表現できる。例えば、「1080:0:0:0:8:800:200C:417A」 ならば、「4)+k&C#VzJ4br>0wv%Yp」 となる。
この85進数表記の是非はともかく、確かに IPv6 アドレスは長くて覚えにくいし、相手に伝えにくい。私も電話で IP アドレスを伝える際に、IPv4はすらすら伝わったのに対して、IPv6 アドレスは相手に一度復唱してもらう必要があった。
IPバージョン9の利用の歴史的概観
1994年に発行された RFC 1606 「IPバージョン9の利用の歴史的概観」は、広大なアドレス空間を持つ IPv9 (IPv6ではない)にもアドレス枯渇問題が起きるという未来のお話である。
その未来世界では IPv9 が広く利用されるようになったが、銀河系間ルーティングや並行宇宙 (パラレルワールドの宇宙版) といった、それまで予想しなかった原因によりアドレス枯渇が発生している。また、ナノテクノロジーが進んで、それらの部品のすべてにアドレスを振ると、各部品でIPv9プロトコルスタックを動かすコストが莫大なものになるとも指摘している。
アドレスの枯渇に関して言うと、「IPv6 は莫大なアドレス空間を持っているから大丈夫」という話を私もよくするが、この RFC を読むとすこし慎重にならざるを得ない。IPv4 にしても、その仕様が定められたときには枯渇するとは誰も予想しなかった。各家庭に /48 のアドレス (64ビットのサブネットを216個) を標準で割り当てるという話を聞くと、「そんなに配ってしまって大丈夫かな」とすこし心配になってしまう。
歴史を学ばない者はそれを繰り返す運命にある。
RFC 1606 では「歴史を学ばない者はそれを繰り返す運命にある。」と総括している。確かに、上にあげた RFC を見るまでもなく、IPv6 には IPv4 という学ぶべき「歴史」がある。IPv4 と比べて IPv6 がどれほど良いかということを主張することよりも、IPv4 が発展してきた過程を再検討するべきではないだろうか。
IPv4 が広く一般の人に受け入れられるのに一役かった WWW というキラーアプリケーションの存在や、ISP をはじめとする技術者がノウハウを身につけていった過程、さらには一般家庭のユーザが自分のホームページを作るようになった動機付けなど。ネットワークプロトコルの機能とは別に、IPv6 がめざす道を探る上で IPv4 の歴史から学ぶべきところは数多くある。