「ラクス Advent Calendar 2020」
12/22(火)担当の某インフラエンジニアです。今回はIPアドレスの枯渇関連の話題について触れてみたいと思います。よろしくお願いいたします。
はじめに
近い将来IPアドレスが枯渇して新しいIPアドレスを取得できなくなるかもしれない。
恐らくIT業界の人間ならこの事実を知らない人はいないでしょう。
そしてそれは、ここ数年でヤバいヤバい言い出したわけじゃないんです。実は30年というレベルで昔から「将来IPが枯渇する日が来るからみんな気を付けろ」という研究結果が出ていました。
だけど多くの人が見て見ぬふりをしてきました。だって、20年も30年も先の話ならまだ先だし(ワンチャン自分引退したらカンケーないし)、すごい画期的な技術ができてスパッと解決するかもしれないし、IPv6とか言われても長いし覚えるの面倒だし、ネットワーク関連だからインパクトでかそうだし、うちの会社そもそも今そんな大規模な構成変更(しかもろくに売り上げに貢献しない投資)する余裕ないし、、、、etc.
色んな事情のもと対策が進んでこなかった問題、いわばIT業界の黒歴史、そっ閉じ案件、それがIPアドレス枯渇問題。今回はその闇に迫りたいと思います。ちなみにあえて題名は「IPアドレス枯渇問題」としましたが、ここでいうIPアドレス=IPv4のことを指しています。
もくじ
- IPv4について少し解説
- IPv4の大元の管理者って誰?「枯渇」と「在庫」の違いとは?
- IPv4枯渇の歴史を追ってみる
- 解決案
IPv4について少し解説
ということで早速本題に入りたいところですが、基本中の基本については知らないと話自体できませんので軽く解説しておきます。IPアドレス枯渇というのは即ち、IPv4の数が足りていないという話になるわけですが、数の話するんだったらまず総数はいくつよ?ってことになりますからね。復習しましょう。
上記のようにIPv4は0か1の2進数であらわすフィールド32個で形成されるので総数は2の32乗個になります。言い換えると0~255までの数字が入るフィールドが4個あるので256の4乗といっても同義ですね。電卓に入れて計算すると__42億9496万7296個__ということが分かります。
これ、30年以上昔の感覚で言うとパソコンなんて置いてある家って超レアなオタク一家だけだし、携帯電話なんぞなかったし、43億もあれば余裕じゃね?って思えても仕方ない気がしますが、今の感覚で言うと大量のデバイスがインターネットに通信出来るのが当たり前の状況で人口より少ない43億?そりゃ足らんでしょ、ってなりますね。(もちろんプライベートIPとかいろんな要素あるんで別にすべてのデバイスがグローバルなIPを持つわけではありませんけどね。)
このあまりにも少ない約43億という数に対して、人類はどう向き合ってきたのでしょうか?
IPv4の大元の管理者って誰?「枯渇」と「在庫」の違いとは?
さて、本題に入りましょう。IPv4が世界規模で枯渇しているのがなぜ解るのかといえば、IPv4を管理している人がいるからです。誰も管理してない無法地帯ならば当然把握できませんよね。まずはそこの解説をします。
絵にするとこんな感じの管理形態をしています。というかJPNICのサイトの絵とほとんど一緒ですが
まず大元の組織にIANA(ICANN)というものがあります。「Internet Assigned Numbers Authority」といってまんまIPアサインの権限あるよって組織です。実はとっくの昔に割り振りできるIPは無くなってます。はい。知ってました?
言うて焦るのはまだ早いです。その配下の組織にすべて割り振ったというだけで、配下の組織に「在庫」があります。その組織を地域インターネットレジストリ(RIR)と言い、それぞれに管轄地域があります。
- ARIN アメリカ・カリブ海地域29ヵ国
- RIPENCC ヨーロッパおよび中東地域76ヵ国
- APNIC アジア太平洋地域56の国 (日本はここ)
- LACNIC 南米地域33ヵ国
- AfriNIC アフリカ地域55ヵ国
そして各RIRの在庫状況ですが、ARINは2015年に「枯渇」、RIPENCCは2019年に「在庫なし」、APNICは2011年に「枯渇」、LACNICは2014年に「枯渇」、AfriNICは多分まだ枯渇してない(?)という感じです。はい。実はもうなんも無いっすw
といいつつ、、ですが、ここであえて「枯渇」と「在庫」という書き方をしましたが、実は枯渇というのは完全に0であることを指しているわけではありません。各RIRで「枯渇」の定義が違い、たとえばARINは残り/10(約420万個)になったら枯渇、APNICは/8(約1678万個)になったら枯渇、という表現を使うことになっています。なので、「枯渇」といっても厳密には「在庫」がありほんのちょっとずつなら割り振りも可能です。ただ、RIPENCCは既に0のようです。
日本が属しているAPNICについてもう少し詳細を見ていきましょう。APNICの配下にJPNICという組織があり、そこが日本を統括していますがJPNIC自体は独自の在庫を持たない方針のため、APNICの枯渇=JPNICの枯渇になります。APNICは2011年に枯渇状態に突入していますので日本も2011年に枯渇状態に突入していることになりますが、そこから限定的な割り振り方をすることで何とか現状を生き永らえています。その限定条件の詳細の説明はここでは避けますが、
こういった文章
がいわゆるガイダンスになるのかと思いますので興味のある方は熟読してみてください。。まあ要は2011年の段階でそこまで貧窮した状況になっていたのです。
ここで、おいおい、ちょっと待てよと。そんなに困ってるのか。管理者は今まで何をやってたんだ。と感じた方ももしかしたらいるかもしれません。ですが、1995年あの全家庭にPCという概念を浸透させた怪物Windows95の登場、携帯電話によるインターネット利用、ITバブル、これを何十年も前に予測できたでしょうか?さらには、冒頭に書きましたが実は30年も前からIP枯渇の予想はされていたにも関わらず、放置してきたのは誰でしょうか?IP枯渇問題については特定の管理団体がどうのこうのではなく、IT業界そのものの問題と言ってもいいでしょう。
では、その歴史をもう少しひも解いて見ていきます。
IPv4枯渇の歴史を追ってみる
IPv4の枯渇問題の歴史を見ていきます。(wikipedia先生感謝)
IPv4の登場
まずIPv4自体の歴史は古く、1981年にRFCが公開されます。もう40年も前です。すごいですね。その10年後、IPv4が枯渇する可能性についての研究発表がされ1992年にRFCにまとめられます。
WANとLAN
枯渇についての発表を契機に色んな技術が生まれます。特筆すべきはやはりLANとWANの使い方でしょう。例えばWANで使うグローバルアドレスは1つ。それをNAPT(いわゆるIPマスカレード)してLAN内のたくさんの端末にはプライベートアドレスを使う。表向き1個のIPしか使ってないように見えます。考えた人は神かな?しかしそれでも根本的な解決になったわけではありません。
IPv6の登場
そしてついに根本解決の方法が現れます。IPv6の登場です。時期的な話をすると実はIPv6は1995年の時点で最初のRFCが出てます。この時から世界中が国を挙げて取り組んでいたらもしかしたら運命は変わっていたかもしれません。ただこの時点では対応している機器もなければまだ先のこと過ぎて現実味を帯びないため、みんなが足踏みをしていたことでしょう(多分)。
IPv6の数について一応触れておくと、よくある例えとしてIPv4がバケツならIPv6は海、なんてのがありますが、総数はなんと約340澗(かん)=340兆の1兆倍の1兆倍です。正直もうよくわからんけど滅茶クソに増やせば良くね?レベル。IPv4を現存するすべての人に与えても到達しません。まあ将来人間が電子化した時に脳のニューロンのマッピングを全世界の人口分つくるのにIPv6だと足りません~みたいなことがあったりなんかしたら知らんけどw
なかなか進まない対策
時代は進み、Windows95の登場、インターネットの爆発的な普及、携帯バブル、ゲームや動画配信などの隆盛、IPはどんどん必要になっていきます。2000年代になるとさすがにIPアドレスほんとにヤバいぞ、どうにかしないと、として本格的にIPv6の研究をしだす企業も出てくる傍ら、しかしほとんどの企業は足踏み状態です。このITバブル期について個人的な主観ですが、今ほどリテラシもないままシステム化した企業の増加、洗練された集約化技術もない中で超大規模の基幹システムのIT化、山ほどの海外の謎ベンダーの製品の参入によるトラブル、まさにサグラダファミリアが大量に建立された時期でもあり、そんなIPv6なんぞ手を出そうものならサグラダファミリアのどこにどんな影響が出るのか。。。無理ゲー。。。みたいな感じだったのかもしれません。
(※参考:サグラダファミリアとは)
いよいよ本格的枯渇
2011年にIANAでIPが枯渇します。それに続いてAPNIC、その他RIRもどんどん枯渇を表明していきます。いや、これマジヤバくない?それが今です。ということで、IPv4枯渇問題に対しての対策をしていかなくてはいけません。
最後に解決案とIPv6がなかなか進まない理由を考えて終わりにします。
解決案
直近考えられる枯渇対策案について書こうと思いますが、実は後述する案以外にももっと色んな手段が考えられます。。が、すべてを書くのはボリュームが長大になってしまうし、よくわからなくて書けないのもあるし、結構コアなノウハウであったりする面もあるし、、ということで、本気でこの問題と向き合ってみたい方はご自分でググってみてください。色んなアイデアを発見することができます。
その中から今回は3つをピックアップしてみます。
解決案1 IPv6
はい、ということでまずは根本解決、理想の解決方法から。そう、IPv6対応をすればええやん、ということです。しかし、これは簡単にできることでは無く結構ハードルが高いです。純粋に技術的なハードルもあるのですがそれ以外にも多種多様な要因が考えられます。
- ITバブル期に大量にIPv4が普及してしまった。構成を変える影響範囲が大きすぎる。
- IPv4に慣れすぎたエンジニアにはIPv6の再勉強がキツイ。っていうか似てる部分と似てない部分がややこしい。
- IPv4とIPv6直接的な互換性がない。(直接通信は出来ないがデュアルスタックや変換は可能)
- ISPは別として一般企業がIPv6に対応しても売り上げが上がるわけではない。
- ネットワークだけの対応も考えられるが、根本的にはサーバの対応、アプリケーションの対応が必要。
- 社会全体を考えると根本的にはユーザの機器(端末)も対応が必要。
なんか雑多に並べただけでも色々あります。気が重くなりますね。当然二の足を踏んでもおかしくはありません。
一応補足ですが、ネットーワークの表面部分だけでIPv6を吸収するケースとして、デュアルスタックや、IPv4枯渇時代初期の救世主にしてベテラン老兵NAT(NAPT)をもっとこき使う作戦が考えられます。NATはもちろん単純にグローバルIPとプライベートIPだけにあらず、いわゆるNAT64とかDNS64と言われる技術でipv6とipv4の変換をしたりします。そういったところから緩やかに進めていくことはできるので、ここいらで気合を入れてIPv6に挑むのが本当は良い事だとは思ったりします。
解決案2 SNI(Server Name Indication)
少々説明がしにくいのですが、1サーバで複数のドメイン/SSL証明書に対応する、というWEB系の技術です。もともと、1つのサーバ1つのIPに対して複数のドメインを紐づける技術は昔からありました。バーチャルホストってやつですね。ただ、その構成に対してSSL証明書を全ドメインに紐づけるという行為ができませんでした。これは純粋にSSLの仕組みに起因するもので、SSLハンドシェイクが基本サーバ(IP)に紐づいていたので無理でした、というような塩梅。
フルHTTPSが当たり前のこの時代、これではいけません。
SNIはこれを解決すべく、SSLハンドシェイクで接続ドメイン名も通知すれば1IPで複数ドメインのSSLに対応できるようになるんじゃね?という話です。この技術がよく聞かれるのはレンタルwebサーバ的なものを独自ドメインで運用したい場合なんかですかね。ですが、1サーバに複数ドメイン突っ込んで共存させることでIPを節約できるかも・・?と考えるとIPv4の枯渇対策につながってきます。
解決案3 IPv4の売買
あと考えられるのがIPv4自体の売買です。例えばAPNICが完全にIPがなくなった場合、それってもう終わりなの?といったらそうではありません。IPを使わなくなった別の事業者から買い付けるという選択肢があります。1例で言うと、2011年にマイクロソフトがNortel Networksから66万個のIPv4アドレスを750万ドルで購入した、という事例があります。米国のサイトなどいろいろ探せばお買い得なんてのも有るかもしれないが、今後恐らくIPv6に移行が遅れた界隈からの需要は高まっていくので相場は上がっていくのではないか?という予測もできなくはないですね。
最近あったこれ界隈のニュースと言えば
Amazonが保有しているIPアドレスだけで2500億円以上の資産価値がある - GIGAZINE
こんな話がありました。もしかしたら株や仮想通貨よりもIPの方が投資として面白いんじゃないか・・なんて
あとは米騒動よろしく大型企業の買い占めなんてことがあるかもしれません。みなさんコロナで散々味わったことでしょう、他人のことなど気にせず買い占めるヤカラどもというのは、不幸を甘い蜜とします。気を付けてくださいね。
おわりに
ということで何となくIPv4枯渇について書いてみました。危機感を少しでも感じてもらえれば幸いです。
いや、もしかしたら逆にこう思ったかもしれない。
AWS使えばいいじゃん、あとはamazonが何とかしてくれるっしょ(終了)ってね。