web-dev-qa-db-ja.com

IPv4アドレスの枯渇は本当にどれほど悪いのですか?

何年もの間、マスコミは現在利用できるIPv4アドレスがほとんどないという問題について書いています。しかし、その一方で、私は小額のお金で喜んでパブリックIPv4アドレスを提供するサーバーホスティング会社を使用しています。そして、私のプライベートインターネット接続にはパブリックIPv4アドレスが付属しています。

そんなことがあるものか?マスコミが私たちに信じてほしいほど問題は深刻ですか?

162
oz1cz

すごく悪いですね。以下は、IPv4アドレスの不足に対処するために消費者ISPと直接経験した例のリストです。

  • 都市間でIPv4ブロックを繰り返しシャッフルすることで、短時間の停止と接続リセットが発生します。
  • [〜#〜] dhcp [〜#〜] リース時間を数日から数分に短縮します。
  • ユーザーが顧客宅内機器(CPE)で ネットワークアドレス変換(NAT) を必要とするかどうかを選択できるようにしてから、とにかく全員に対して遡及的に有効にします。
  • NATをオプトアウトする機会をすでに使用しているお客様のCPEでNATを有効にする。
  • CPEによって強制される、同時にアクティブな メディアアクセス制御(MAC)アドレス の数の上限を減らす。
  • carrier-grade NAT(CGN) を展開して、サービスにサインアップしたときに実際のIPアドレスを持っていた場合。

これらはすべて、ISPが顧客に販売している製品の品質を低下させています。彼らが顧客に対してこれを行う理由についての唯一の賢明な説明は、IPv4アドレスの不足です。

IPv4アドレスの不足は、複数の欠点を持つアドレス空間の断片化につながりました。

NATなしでは、3700万のルーティング可能なIPv4アドレスを使用して今日まで到達する方法はありません。しかしNATは、信頼性の低い接続を提供する脆弱なソリューションですとデバッグが困難な問題です。NATの層が多いほど、状況は悪化します。20年間のハードワークにより、NAT動作しますが、NATの単一層でIPv4アドレスの不足を回避するには十分であるという点をすでに超えています。

175
kasperd

IPv4アドレスが不足し始める前は、NATを(広く)使用していませんでした。インターネットに接続されているすべてのコンピューターには、独自のグローバルに一意のアドレスがあります。 NATが初めて導入されたとき、それは、ISPの顧客に、顧客が使用/所有するデバイスごとに1つの実アドレスを与えることから、1人の顧客に1つの実アドレスを与えることへと移行することでした。これにより、IPv6への切り替えが想定されていたしばらくの間(数年)問題が解決しました。 IPv6に切り替える代わりに、(ほとんど)全員が他の全員が切り替えるのを待っていたため、(ほとんど)誰もIPv6を公開していませんでした。これで同じ問題が再び発生しますが、今回はNATの2番目のレイヤー(CGN)が展開されているため、ISPは複数の顧客間で1つの実際のアドレスを共有できます。

エンドユーザーが制御できない場合(キャリアグレードNATまたはCGN)を含め、NATがひどくない場合、IPアドレスの枯渇は大きな問題ではありません。

しかし、NATはひどいものだと主張します特にエンドユーザーがそれを制御できない場合。 (ネットワークエンジニアリング/管理を担当しているが、ソフトウェアエンジニアリングの学位を持っている人として)IPv6の代わりにNATを導入することで、ネットワーク管理者はアドレスの枯渇を解決するという重荷をフィールドとエンドユーザーおよびアプリケーション開発者に。

だから(私の意見では)、なぜNATは避けなければならないひどい、邪悪なものなのでしょうか?

何が壊れているのか(そして、私たちが慣れすぎて、それがより良いかもしれないことにさえ気づいていない原因となる問題)を説明することで、私がそれを正義にできるかどうかを見てみましょう:

  • ネットワーク層の独立性
  • ピアツーピア接続
  • リソースの一貫した命名と場所
  • トラフィックの最適なルーティング、実際のアドレスを知っているホスト
  • 悪意のあるトラフィックのソースの追跡
  • データと制御を別々の接続に分離するネットワークプロトコル

これらの各項目について説明できるかどうか見てみましょう。

ネットワーク層の独立性

ISPはレイヤ3パケットを通過させるだけで、その上のレイヤに何があるかは気にしません。あなたがTCP、UDP、またはより良い/よりエキゾチックなものを通過させているかどうか(SCTP多分?またはTCP/UDPより優れているが、NATサポートの欠如のために不明瞭である他のプロトコルさえ)、あなたのISPは気にしないはずです。それらはすべてデータのように見えるはずです。

しかし、そうではありません。NATの「第2波」である「キャリアグレード」NATを実装しているときではありません。次に、使用するレイヤー4プロトコルを確認してサポートする必要があります。現在のところ、これは実質的にTCPとUDPのみを使用できることを意味します。他のプロトコルは単にブロック/ドロップされるか(私の経験ではほとんどの場合)、またはそのプロトコルを使用したNATの「内部」の最後のホストに転送されます(私は1つの実装を確認しました)この)。そのプロトコルを使用した最後のホストに転送することさえ、実際の修正ではありません-2つのホストがそれを使用するとすぐに、それは壊れます。

TCPとUDPに代わるプロトコルがいくつかあり、この問題のために現在テストされておらず、使用されていません。誤解しないでください。TCPとUDPは非常によく設計されており、今日のインターネットの使用方法に合わせて両方とも拡張できることは驚くべきことです。しかし、私たちが見逃したことを誰が知っているのでしょうか。私はSCTPについて読みましたが、それは良さそうに聞こえますが、NATのために実用的ではなかったので、決して使用しませんでした。

ピアツーピア接続

これは大きな問題です。実際、私の意見では最大です。エンドユーザーが2人いて、どちらも自分のNATの背後にいる場合、どちらが最初に接続しようとしても、他のユーザーのNATはパケットをドロップし、接続は成功しません。

これは、ゲーム、ボイス/ビデオチャット(Skypeなど)、独自のサーバーのホスティングなどに影響します。

回避策があります。問題は、これらの回避策には、開発者の時間、エンドユーザーの時間と不便さ、またはサービスインフラストラクチャのコストがかかることです。そして、それらは絶対確実ではなく、時々壊れます。 (Skypeが受けた機能停止に関する他のユーザーのコメントを参照してください。)

1つの回避策はポート転送です。この場合、NATデバイスをプログラムして、NATデバイスの背後にある特定のコンピューターに特定の着信ポートを転送します。そこにあるすべてのさまざまなNATデバイスに対してこれを行う方法に特化したWebサイト全体があります。 https://portforward.com/ を参照してください。これは通常、エンドユーザーの時間とフラストレーションを要します。

別の回避策は、アプリケーションにホールパンチングなどのサポートを追加し、NATの背後にないサーバーインフラストラクチャを維持して、2つのNATクライアントを導入することです。これは通常、開発時間を要し、以前は必要でなかった場所にサーバーインフラストラクチャを維持できる可能性があります。

(IPv6の代わりにNATを導入することについて私が言ったことを覚えておいて、問題の重要度をネットワーク管理者からエンドユーザーおよびアプリケーション開発者に移しましたか?)

ネットワークリソースの一貫した命名/場所

NATの内側と外側で異なるアドレス空間が使用されるため、NAT内のデバイスによって提供されるサービスには、到達するための複数のアドレスがあり、正しいどちらを使用するかは、クライアントがどこからアクセスするかによって異なります。 (これは、ポート転送が機能するようになった後でも、まだ問題です。)

NAT内にWebサーバーがあり、ポート192.168.0.23、ポート80などであり、NATデバイス(ルーター/ゲートウェイ)の外部アドレスが35.72.216.228で、ポート転送を設定している場合TCPポート80、192.168.0.23ポート80 OR 35.72.216.228ポート80のいずれかを使用してWebサーバーにアクセスできるようになりました。使用するポートは、内部か外部かによって異なりますNATの。 NATの外にいて、192.168.0.23アドレスを使用している場合、期待した場所に到達できません。 NAT内にいて、外部アドレス35.72.216.228を使用する場合、might必要な場所を取得するNAT実装がヘアピンをサポートする高度な実装である場合、リクエストを処理するWebサーバーは、NATデバイス。つまり、NATの背後にあるネットワークのパスが短くても、すべてのトラフィックはNATデバイスを通過する必要があり、WebサーバーのログはすべてNAT接続のソースとしてのデバイス。 NAT実装がヘアピンをサポートしていない場合、期待どおりの結果が得られません。

そして、この問題はDNSを使用するとすぐに悪化します。突然、NATの背後でホストされているものに対してすべてが適切に機能するようにしたい場合は、NAT内部でホストされているサービスのアドレスに対して、誰が要求しているか(AKA split horizo​​n DNS、IIRC)に基づいて異なる答えを出す必要があります。ああ。

そして、ポートフォワーディングとヘアピンNATとスプリットホライズンDNSに精通している人がいることを前提としています。エンドユーザーはどうですか?コンシューマールーターといくつかのIPセキュリティカメラを購入し、それを「そのまま」機能させたいときに、これらすべてを正しくセットアップする可能性はどのようなものですか。

そしてそれは私につながる:

トラフィックの最適なルーティング、実際のアドレスを知っているホスト

これまで見てきたように、高度なヘアピンNATを使用しても、トラフィックは常に最適なパスを通過するとは限りません。これは、知識の豊富な管理者がサーバーをセットアップし、ヘアピンNATを使用している場合にも当てはまります。 (許可されたスプリットホライズンDNSは、ネットワーク管理者の手に渡って内部トラフィックの最適なルーティングにつながる可能性があります。)

アプリケーション開発者がDropboxのようなプログラムを作成し、ネットワーク機器の構成に特化していないエンドユーザーに配布するとどうなりますか?具体的には、4GBのファイルを共有ファイルに入れ、次のコンピューターからアクセスしようとするとどうなりますか?マシン間で直接転送されますか、それとも低速WAN接続を介してクラウドサーバーにアップロードされるのを待ってから、同じ低速WANを介してダウンロードされるのをもう一度待つ必要がありますか? = WAN =>]接続?

素朴な実装の場合、NATの背後にないDropboxのサーバーインフラストラクチャをメディエーターとして使用して、アップロードおよびダウンロードされます。しかし、2つのマシンが同じネットワーク上にあることだけを認識できれば、ファイルを直接転送する速度がはるかに速くなります。したがって、最初のそれほど単純ではない実装の試みとして、マシンに割り当てられているIP(v4)のアドレスをOSに尋ね、同じDropboxアカウントに登録されている他のマシンと照合します。それが私たちと同じ範囲内にある場合は、ファイルを直接転送してください。それは多くの場合うまくいくかもしれません。しかし、それでも問題があります。NATが機能するのは、アドレスを再利用できるためです。では、同じDropboxアカウントに登録されている192.168.0.23アドレスと192.168.0.42アドレスが実際には異なるネットワーク(ホームネットワークと職場のネットワークなど)にある場合はどうなるでしょうか。今度は、Dropboxサーバーインフラストラクチャを使用して仲介するようにフェールバックする必要があります。 (結局、Dropboxは、他のクライアントを見つけるために、各Dropboxクライアントがローカルネットワークでブロードキャストすることで問題を解決しようとしました。しかし、これらのブロードキャストは、NATの背後にある可能性のあるルーターを通過しないため、完全なソリューションではありません。 、特にCGNの場合)

静的IP

さらに、最初の不足(およびNATの波)は、多くのコンシューマ接続が常に接続(ダイヤルアップなど)でなかったときに発生したため、ISPは、実際に接続されているときにパブリック/外部IPアドレスを割り当てるだけで、アドレスをより有効に活用できます。つまり、接続すると、常に同じアドレスを取得するのではなく、使用可能なアドレスを取得できました。そのため、独自のサーバーの実行がはるかに難しくなり、ピアツーピアアプリケーションの開発は、固定アドレスではなく移動するピアに対処する必要があるため、難しくなります。

悪意のあるトラフィックの発信元の難読化

NATは発信接続をNATデバイス自体から送信されているかのように再書き込みするため、すべての動作(良いか悪いか)が1つの外部IPアドレスにロールバックされます。デフォルトで各発信接続をログに記録するNATデバイスを見たことがありません。つまり、デフォルトでは、過去の悪意のあるトラフィックのソースは、通過したNATデバイスまでしか追跡できません。より多くのエンタープライズまたはキャリアクラスの機器が各発信接続をログに記録するように構成できますが、それを行うコンシューマールーターは見たことがありません。 ISPがCGNを介して行われたすべてのTCPおよびUDP接続のログを保持するかどうか(およびその期間)が展開されるかどうかを確認することは興味深いと思います。このような記録は、虐待の苦情やDMCAの苦情に対処するために必要です。

NATはセキュリティが向上すると考える人もいます。もしそうなら、それはあいまいさを介してそうします。 NATが必須にするデフォルトの着信トラフィックのドロップは、ステートフルファイアウォールがある場合と同じです。 NATに必要な接続追跡を実行できるハードウェアであれば、ステートフルファイアウォールを実行できるはずなので、NATは実際には価値がないと私は理解しています。

2番目の接続を使用するプロトコル

FTPやSIP(VoIP)などのプロトコルは、制御と実際のデータコンテンツに別々の接続を使用する傾向があります。これを行う各プロトコルには、通過する各NATデバイスにALG(アプリケーションレイヤーゲートウェイ)と呼ばれるヘルパーソフトウェアが必要です。または、メディエーターまたはホールパンチングのような問題を回避します。私の経験では、ALGが更新されることはめったになく、SIPに関連して私が対処した少なくともいくつかの問題の原因でした。音声が一方向にしか機能しなかったためにVoIPが機能しなかったという報告を耳にしたときはいつでも、どこかにNATゲートウェイがUDPパケットをドロップして、何をすべきか理解できないと疑いますと。

要約すると、NATは壊れる傾向があります:

  • TCPまたはUDPの代替プロトコル
  • ピアツーピアシステム
  • nATの背後でホストされているものへのアクセス
  • SIPやFTPなど。これを回避するためのALGは、特にSIPでは、今日でもランダムで奇妙な問題を引き起こします。

コアでは、ネットワークスタックが採用する階層化アプローチは、比較的シンプルで洗練されています。それをネットワーキングに不慣れな人に説明しようとすると、彼らは必然的に、ホームネットワークはおそらく理解しようとする優れた単純なネットワークであると想定します。これがいくつかのケースで、外部アドレスと内部アドレスの混乱のためにルーティングがどのように機能するかについてのかなり興味深い(過度に複雑な)アイデアにつながることを確認しました。

NATがなければ、VoIPはユビキタスでPSTNと統合され、携帯電話やコンピューターからの通話は無料になります(既に支払ったインターネットを除く)。結局のところ、あなたと私が64K VoIPストリームを開くだけでPSTNと同じように機能するのに、なぜ電話代を払うのでしょうか。今日のように、VoIPの展開に関する最大の問題は、NATデバイスを経由することです。

NATが壊れたエンドツーエンドの接続があったとしても、多くの場合これほど単純なことはありません。 2つのクライアントがNATの背後にあるときにメディエーターが必要になるという中心的な問題がある場合、人々は自分自身でファイルをメール(またはDropbox)します。

132
Azendale

他の回答で言及されていなかったIPv4枯渇の大きな兆候の1つは、一部の モバイルサービスプロバイダー が数年前にIPv6のみに移行し始めたことです。 IPv6を何年も使用していて、それを知らない可能性もあります。モバイルプロバイダーはインターネットゲームの新参者であり、必ずしも既存のIPv4割り当てを利用できるわけではありません。また、あなたの電話はあなたの家族の他のメンバーとパブリックIPアドレスを共有することができないので、それらはケーブル/ DSL /ファイバーよりも多くのアドレスを必要とします。

私の推測では、IaaSとPaaSプロバイダーは、顧客の物理アドレスに関連付けられていないため、次の成長になるでしょう。 IaaSプロバイダーがIPv6のみを割引価格で提供するのを目にしても驚かないでしょう。

20
Karl Bielefeldt

しばらく前に、主要なRIRが通常の割り当て用のスペースを使い果たしました。したがって、ほとんどのプロバイダーにとって、IPv4アドレスの唯一のソースは、独自の備蓄と市場です。

専用のパブリックIPv4 IPを使用することが望ましいシナリオがありますが、絶対に必須というわけではありません。割り当てられているものの、現在パブリックインターネットで使用されていないパブリックIPv4アドレスの束もあります(プライベートネットワークで使用されているか、まったく使用されていない可能性があります)。最後に、アドレスが必要以上に緩く割り当てられた古いネットワークがあります。

現在、3つの最大のRIRにより、メンバー間および他のメンバー間で住所を販売できます。したがって、使用していないアドレスを持っている組織、または一方のコストで解放できるアドレスを持っている組織と、他方で本当により多くのIPアドレスを必要とする組織との間の市場があります。

予測するのが難しいのは、各価格での需要と供給の量であり、したがって市場価格は将来どうなるかです。これまでのところ、IPあたりの価格は驚くほど低くなっているようです。

14
Peter Green

理想的には、インターネット上のすべてのホストがグローバルスコープのIPアドレスを取得できる必要がありますが、IPv4アドレスの枯渇は実際に影響を与えません ARINはすでに空きプールのアドレスが不足しています

誰もがインターネットサービスに問題なくアクセスできる理由は、複数のホストがパブリックIPアドレスを共有できるようにするネットワークアドレス変換(NAT)技術のおかげです。しかし、これには問題がありません。

7
Torin

あなたはすでに多くの優れた回答を得ましたが、私はまだ言及されていないものを追加したいと思います。

はい、IPv4アドレスの枯渇は、それをどのように測定するかによって異なります。一部の企業はIPv4アドレスを大量に提供していますが、キャリアグレードのNATなどの回避策が見られ始めています。

しかし、IPv6に移行するときの答えの多くは間違っています。

以下は、IPv4アドレスの不足に対処するのに役立つテクノロジーのリストです。それぞれに独自の長所と短所があります。

  • IPv6

    • 利点:標準化されており、ほとんどのオペレーティングシステムで使用できます。
    • 欠点:それとは反対の頻繁な発言にもかかわらず、深刻なセキュリティ問題。 2005年までさかのぼって、US CERT IPv6のグローバルアドレッシングによって引き起こされるセキュリティ問題について警告されました。 IPv6は適切に保護できますが、コンシューマルーターの状態によっては、発生しない場合があります。
    • 欠点:移行には時間、費用、専門知識が必要です。
    • 欠点:多くの消費者向けデバイスには深刻な欠陥があります。たとえば、多くのD-Linkルーターは、ファイアウォールを提供せずにallトラフィックを転送するだけでIPv6をサポートします。

もう1つの考慮事項:IPv6が今日完全に普及したとしても、人々が非常に長期間使用するレガシー機器が原因でIPv4が段階的に廃止されるまでには、さらに20年ほどかかります(私はまだWindows 2003サーバーとWindowsを見ていますXPワークステーションが時々!IPv6をサポートしていないすべてのプリンターとカメラとIoTガジェットは言うまでもありません)。

  • CGNat:
    • 利点:顧客の敷地内で変更なしに機能します。
    • 欠点:アウトバウンド接続のみをサポートします。
    • 欠点:一部のプロトコルをサポートしていない可能性があります。

結局、CGNatでは十分ではありません。 IPv6が普及するかもしれませんが、カントリーグレードのNATや、そうした流れに沿って何かが見られる可能性もあります。

現在、コンサルタントとして、私はしばしば顧客にIPv6で公開されていることを指摘する必要があります(多くの場合Teredoのおかげです)。次の質問は常に「それを修正するのにどれくらいの費用がかかりますか?」そして、「それをブロックするのにどれくらいの費用がかかりますか?それをオフにすると、私たちは何を失うのですか?」毎回決定がどうなるかを推測します。

結論:あなたの質問に答えるために、はい、IPv4の枯渇は本当です。そして、それに対処するためのかなりの数のメカニズムが表示されます。 IPv6が方程式になるかどうかはわかりません。

明確にするために、私はこの状況を私が好きだと言っているのではありません。 IPv6が成功することを望んでいます(IPv6への多くの改善を期待しています)。今、現場で見ているだけです。

5
Kevin Keane

ISPは、企業に256個のIPアドレスのブロックを提供するために使用されていました。現在、ISPはけちで、5のような(会社)を提供しています。当時(2003年)、家のすべてのPCと接続されたデバイスには、独自のインターネットIPアドレスがありました。これで、ケーブル/ DSN/Fiosルーターは1つのIPアドレスを持ち、自宅のすべてのPCに10.0.0.xのIPアドレスを割り当てます。概要:ISPはIPアドレスを浪費するために使用されていましたが、現在は無駄になりません。

5
Russell Hankins