IPアドレス究極節約術 はたして、IPアドレスは、それを極限まで節約して使った場合、 いくつあればいいんでしょうか。 まず、極限節約状態、というのを定義します。 1、経路集約をせず、すべてのIPアドレスを使い切る。 2、PCはすべてNATの内側 3、サーバは、すべてName Basedの仮想ホスティング。 4、SRV等をつかい、すべてのTCPのポートを使い切る。 ・・・ここまでセコくつかいまくったとします。 じゃあ、IPアドレスはいくつあればいい? そのまえに、IPアドレスの構造を考えましょう。 ひとつポイントとなるのは、 あるIPアドレスからあるIPアドレスの特定ポートへは、 最大6万本しかTCPのコネクションを張れないことです。 ようは、そのあたりがNATの限界。 が、DestIPのPortも6万あるので、 あるSRC IPからあるDEST IPへは結局40億本張れる。 よって、実用的にはSRVなどをセコく使えば NATの限界はない。 (なお、この場合、あいているポートへうまく誘導するプロトコルが必要)。 勘違いしそうなポイントなんで説明すると、 SRC PORTが6万個しかないからって、同一ポートへ6万本しかコネクションが 張れないわけではない。 同じSRC IPから同一 DEST IPの同一 DEST ポートへの コネクションの最大数が6万本であって、 SRC IPが同一でも、DEST IPが違えば、 やはり6万本を別会計で張れる。 なお、TCPのコネクションは、究極的には、 DESTIP40億*SRCIP40億*DESTPORT6万*SRCPORT6万で、 計96ビット分存在することもポイントです。 ようは、いまのIPアドレスの総数のさらに64ビット倍、同時に存在しうるんですよ。 それを使い切ることができるかどうかはともかく、 理論的に存在しうるということは頭の片隅においておきましょう。 で、このような状況を前提に、 実にセコい節約術を考えます。 まず、IPアドレスを持たないレンサバ屋という わけのわからないのを想定します。 仮に、これを「空中鯖屋」と名づけます。 意味不明の名称ですが、気にしない。 とにかく、意味不明だけど空中鯖屋っつーのを想定するの。 で、空中鯖屋の実装を説明します。 どうやってやってるかというと、 自前のIPアドレスをもたず、リバースプロキシを借りている。 ユーザは、リバースプロキシに付いているグローバルIPアドレスの どっかのポートにName Basedでアクセスする。 HTTP以外のプロトコルも想定するけど、とにかく、すべてName Basedで、 さらに、途中にリバースプロキシ(またはそれと同じようなもの)が入る。 HTTPなら、SRVつかって80番以外に誘導すればより効率的だけど、 80番オンリーでもOK。 で、ここで問題なのは、じゃあ、どうやってレンサバ屋はリバースプロキシに 繋ぐの、ということ。 たんなる静的HTMLオンリーならともかく、CGIとかまで含めれば、 レンサバ屋のCGIサーバ群とリバースプロキシが 何らかの方法で接続される必要性があるでしょ。 で、これなんだけど、 どっかのNAT ISPの内側から繋ぐ。 NAT ISPの内側から一本TCPのリンクを張り、このなかに すべてのCGI関係をトンネリングさせる。 別の言い方をすれば、 この場合、そのNAT ISPのSRC PORTを一個使うわけ。 SRC PORT一個なんてどーでもいいとおもうだろうが、 そこまで検討を加えるのが、この究極節約術なんだよ。 まあ、ほとんど(というか完璧)冗談の域に達してますが、 とにかくセコく節約。 なお、細かく言うと、複数のTCPリンクを張って 経路を冗長化したほうがいいでしょう。 切れてから張りなおしてもそんなに変わりませんが、 気分程度にも複数張ったほうがいいんじゃないかな。 そうすると、複数のSRC PORTを使いますが、仕方がない。 で、ここまでセコくセコくセコく節約した場合、 必要なIPアドレスの数ですが、 アクセスされる側(リバースプロキシ側)は、 SRVを使うなら、せいぜい100個もあれば十分でしょう。 SRVを使わないとすれば、1000個ぐらいはいるかも。 アクセスする側は、せいぜい数千個でしょう。 ようは、合計で1万個以下だと思います。 「空中鯖屋」なんてわけのわからないものまで想定すれば、 そこまで節約できるんですよ、v4アドレスは。 さらに、この場合、 いまのPCの設定などは一切いじる必要性はないのです。 無改造、通常設定のWindowsXP+IE6でお気軽にお越しください。 まあ、SRVつかえばプラグインがいるけど、 それでも非常にお手軽。 一万個ということは、40億から比べれば、10万分の一以下なんですがね。 これでも、ギャグの域まで節約すればなんとかなるハズ。 IPアドレス実用節約限界: ほとんど(というか完璧)ギャクの域まで 節約した限界が1万個とすれば、 では、普通にネットできる限界はどれぐらい? たとえば、こんな感じで分配。 レンサバ(not SSL):10万社 10個(HTTP以外もName Based前提) SSL 100万サイト(ただし、中長期的逓減) 有名サイト:1万サイト(10個づつ) 実験用:1万個 リフレクタ1万個 そのほか:1万個 ISP 10万社 10個づつ(NAT前提) この合計が大体300万。 そのうちの100万はSSLなんで、中長期的にはSNIで減る。 ようは、ギャグの域まで節約しなくても、クラスAの四分の一で IPアドレスなんて十分足りる。 別の言い方をすると、全v4空間の1000分の一で足りるわけで、 これで「枯渇」とか言われてもねぇ。 うだうだ書いてきたけど、 とにかく、全IPv4アドレス空間の1000分の一とか、10万分の一とか、 そんなもんの次元のIPアドレスさえあれば 何とかすることは不可能じゃないんだよ。 よって、IPアドレスの枯渇なんてなんとでも回避できるし、 そんな程度のことのために莫大な以降コストを払ってまで 強制移住させるなんてもうわけがわからない。 強制移住絶対反対!。 強制移住絶対反対!。 強制移住絶対反対!。 強制移住絶対反対!。 強制移住絶対反対!。 |