kotaの雑記帳

日々気になったことの忘備録として記していきます。



新技術がIPv4を有効にし、IPv6を時代遅れにする

 まったく流行らないIPv6であります。IPv6の議論がIETFで始まったのが1992年ですから20年近く前のことです。つまり、IPv4アドレスが枯渇するっと20年近く心配していたということです。 IPv6は、IPv4が使えなくなったら使う代替プロトコルですが、この20年間なぜIPv4を使い続けてこれたかというと、新技術がIPv4を使えるようにしてきたからなのです。

新技術登場の歴史

 この新技術の一つ目は、1993年に出てきたCIDR(RFC1518,RFC1519)です。CIDRによりIPv4アドレスブロックを柔軟に分割し、使用者に割り当てることができるようになりました。その結果、IPv4アドレスを効率的に使用することができて、IPv4アドレスの消費量の増加ペースが低下しました。
 新技術の二つ目は、1994年に出てきたNAT(RFC1631)です。NATにより、複数の端末が一つのIPアドエスを共用することができるようになり、IPv4アドレスをさらに効率的に使えるようになりました。
 そして新技術の三つ目は、LSN(Large Scale NAT:以前はCGNと呼ばれていた)です。LSNとは、ISPに設置されるでっかいNATです。通常のNATは家庭内での端末間でしかIPアドレスを共有できませんが、LSNは複数家庭の端末間でIPアドレスを共用できるため、一層効率的にIPv4アドレスを使用することができます。

新技術の欠点

 これらの新技術にはいくつか欠点がありました。それをどう克服してきたかを紹介します。
 CIDRの欠点は、ルート情報のアグリゲーションが難しくなるため、ルータには大きなルーティングテーブルが必要となりました*1。この問題は、ムーアの法則通り半導体技術が進歩して、克服されました。
 NATの欠点は、NATの外側からセッションが開けないことです。これにより、インターネットのエンド・エンドポリシーが脅かされるため、ずいぶんNATは嫌われました。この問題に対しては、skypがやっているように中間ノードを経由してセッションを張る方法が開発されて、問題が克服されました。ここでポイントは、NATが開発された1994年から17年たっている現在は、CPUパワーがログスケールで測れる程に格段に速くなっていることです。中間ノードを介して通信するなんて非効率と大昔は思われていましたが、今ではその程度の負荷はへっちゃらです。また、NATを使わなくてもFireWallは設置するでしょうから、昔みんなが心配していたエンドエンドポリシーへの脅威は、的外れな心配となりました。
LSNの欠点は、1アドレスあたり送受信ポート番号のビット空間以上のセッション数を設定できないことです(つまり、セッション数に理論限界がある)。このため、例えばGoogle mapを表示しているとき、ブラウザは非常にたくさんのTCPセッションを張るため、LSNを使ってもサポートできる端末数は案外少ないと言われていました。これに対して、GoogleがSPDYという技術を提案しています。

SPDYとは何か?

 SPDYとは一本のTCPコネクションに複数HTTPセッションを多重する方法です。グーグルはSPDYをWebの高速化技術として提案しています。ところが、SPDYは高速化だけではなくLSNの問題克服に役に立つのです(LSNが扱うセッション数がグッと少なくなるため)。

まとめ

IPv6の検討が始まってから既にに20年近くが経っている。IPv4アドレス不足を20年近く心配してきたわけであるが、新技術が次々に登場してIPv4アドレスは不足せずに済んでいる。新技術には問題もあるが半導体の進歩が目覚ましいこともあり、インターネット生態系は順調に成長している。
 私の今の心配は、IPv6仕様が時代遅れなものになっている or なってしまうのではないかということ。20年前と比べ、ルータや端末の性能は格段の進化を遂げており、また社会環境も変化しているため、IPv6検討をしていた当時とは問題がずれている可能性がある。

*1:昔のルータはルーティングサイズが小さくててよくクラッシュしました