何年もの間、マスコミは利用可能なIPv4アドレスが非常に少ないという問題について書いてきました。しかし一方で、私はサーバーホスティング会社を使用しています。この会社は、少額のお金で喜んでパブリックIPv4アドレスを提供しています。私のプライベートインターネット接続には、パブリックIPv4アドレスが付属しています。
そんなことがあるものか?報道機関が私たちに信じさせたいほど問題は深刻ですか?
何年もの間、マスコミは利用可能なIPv4アドレスが非常に少ないという問題について書いてきました。しかし一方で、私はサーバーホスティング会社を使用しています。この会社は、少額のお金で喜んでパブリックIPv4アドレスを提供しています。私のプライベートインターネット接続には、パブリックIPv4アドレスが付属しています。
そんなことがあるものか?報道機関が私たちに信じさせたいほど問題は深刻ですか?
回答:
非常に悪いです。以下は、IPv4アドレスの不足に対処するために消費者ISPで実際に経験したことの例のリストです。
これらはすべて、ISPが顧客に販売している製品の品質を低下させています。顧客にこれを行う理由についての唯一の賢明な説明は、IPv4アドレスの不足です。
IPv4アドレスの不足は、複数の欠点があるアドレス空間の断片化をもたらしました。
NATがなければ、3億7千万のルーティング可能なIPv4アドレスで今日までに到達する方法はありません。ただし、NATは脆弱なソリューションであり、信頼性の低い接続とデバッグが困難な問題をもたらします。NATの層が多ければ多いほど悪化します。20年にわたるハードワークにより、NATの単一層はほとんど機能しましたが、IPv4アドレスの不足を回避するにはNATの単一層で十分であるという点をすでに超えています。
IPv4アドレスが使い果たされる前に、(広く)NATを使用しませんでした。インターネットに接続されたすべてのコンピューターには、独自のグローバルに一意のアドレスがあります。NATが最初に導入されたとき、ISPの顧客が使用/所有したデバイスごとに1つの実際のアドレスを与えることから、1つの顧客に1つの実際のアドレスを与えることに移行しました。これでしばらく(数年)問題が解決しましたが、IPv6への切り替えが想定されていました。IPv6に切り替える代わりに、(ほとんど)すべての人が他のすべての人が切り替わるのを待っていたため、(ほとんど)IPv6をロールアウトした人はいませんでした。再び同じ問題に直面していますが、今回は、ISPが複数の顧客間で1つの実際のアドレスを共有できるように、NATの2番目の層が展開されています(CGN)。
IPアドレスの枯渇は、エンドユーザーがそれを制御できない場合(キャリアグレードNATまたはCGN)を含め、NATがひどくなければ大した問題ではありません。
しかし、特にエンドユーザーがそれを制御できない場合、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のせいで実用的ではないので使用しませんでした。
これは大きなものです。実際、私の意見では最大です。どちらも最初に接続しようとしても、どちらも独自のNATの背後にある2人のエンドユーザーがいる場合、他のユーザーのNATはパケットをドロップし、接続は成功しません。
これは、ゲーム、ボイス/ビデオチャット(Skypeなど)、独自のサーバーのホストなどに影響します。
回避策があります。問題は、これらの回避策が開発者の時間、エンドユーザーの時間と不便さ、またはサービスインフラストラクチャのコストのいずれかになることです。そして、彼らは絶対確実ではなく、時には壊れます。(Skypeが停止したことに関する他のユーザーのコメントを参照してください。)
回避策の1つは、NATデバイスをプログラムして、特定の着信ポートをNATデバイスの背後の特定のコンピューターに転送するポート転送です。そこにあるさまざまなNATデバイスすべてに対してこれを行う方法に専念しているWebサイト全体があります。https://portforward.com/を参照してください。通常、これにはエンドユーザーの時間とフラストレーションがかかります。
別の回避策は、アプリケーションにホールパンチなどのサポートを追加し、NATの背後にないサーバーインフラストラクチャを維持して、2つのNATクライアントを導入することです。通常、これには開発時間がかかり、開発者は以前は必要なかったサーバーインフラストラクチャを潜在的に維持できる立場になります。
(IPv6の代わりにNATを展開することについて述べたことを思い出してください。ネットワーク管理者からエンドユーザーおよびアプリケーション開発者に問題の重みをシフトしますか?)
NATの内部と外部で異なるアドレススペースが使用されるため、NAT内部のデバイスが提供するサービスには複数のアドレスがあり、使用する正しいアドレスはクライアントがアクセスする場所によって異なります。(これは、ポート転送が機能するようになった後でも問題です。)
たとえば、ポート192.168.0.23のポート80にNAT内にWebサーバーがあり、NATデバイス(ルーター/ゲートウェイ)の外部アドレスが35.72.216.228であり、TCPポート80のポート転送を設定している場合、 Webサーバーは、192.168.0.23ポート80または35.72.216.228ポート80のいずれかを使用してアクセスできます。使用する必要があるのは、NATの内部か外部かによって異なります。NATの外にいて、192.168.0.23アドレスを使用している場合、期待した場所に到達できません。NATの内部にいて、外部アドレス35.72.216.228を使用している場合、NAT実装がヘアピンをサポートする高度な実装であれば、目的の場所に到達する可能性があります、ただし、リクエストを処理するWebサーバーは、NATデバイスから送信されたリクエストを認識します。これは、NATの背後のネットワークに短いパスがある場合でも、すべてのトラフィックがNATデバイスを通過する必要があることを意味します。また、Webサーバーのログは、NATデバイスを接続。NATの実装がヘアピンをサポートしていない場合、目的の場所に到達できません。
そして、この問題はDNSを使用するとすぐに悪化します。突然、NATの背後でホストされているものに対してすべてが適切に機能するようにしたい場合、NAT内でホストされているサービスのアドレスについて、尋ねている人(スプリットホライズンDNS、IIRC)に基づいて異なる回答を与える必要があります。うん
そして、それはすべて、ポート転送とヘアピンNATおよびスプリットホライズンDNSについて知識のある人がいることを前提としています。エンドユーザーはどうですか?消費者向けルーターとIPセキュリティカメラを購入し、「正常に動作する」ようにしたいときに、これらすべてが正しく設定される可能性はどのくらいでしょうか。
そして、それは私につながります:
これまで見てきたように、高度なヘアピンNATトラフィックを使用しても、最適なパスを常に流れるとは限りません。知識のある管理者がサーバーをセットアップし、ヘアピンNATを使用している場合でもです。(許可されたスプリットホライズンDNSは、ネットワーク管理者の手による内部トラフィックの最適なルーティングにつながる可能性があります。)
アプリケーション開発者がDropboxなどのプログラムを作成し、ネットワーク機器の構成に特化していないエンドユーザーに配布するとどうなりますか?具体的には、共有ファイルに4GBファイルを入れてから、次のコンピューターにアクセスしようとするとどうなりますか?マシン間で直接転送されますか、それとも低速WAN接続を介してクラウドサーバーにアップロードするのを待ってから、同じ低速WAN接続を介してダウンロードするのを2回待つ必要がありますか?
単純な実装の場合、NATの仲介者ではないDropboxのサーバーインフラストラクチャを使用して、アップロードしてからダウンロードします。ただし、2つのマシンが同じネットワーク上にあることしか認識できない場合は、ファイルをはるかに高速で直接転送できます。したがって、最初のそれほど単純ではない実装の試行では、マシンにどのIP(v4)アドレスが割り当てられているかをOSに問い合わせてから、同じDropboxアカウントに登録されている他のマシンと照合します。私たちと同じ範囲内にある場合は、ファイルを直接転送するだけです。それは多くの場合うまくいくかもしれません。しかし、それでも問題があります。NATが機能するのは、アドレスを再利用できるからです。192.168.0.23アドレスと192.168.0の場合はどうでしょう。42同じDropboxアカウントに登録されているアドレスは、実際には異なるネットワーク(自宅のネットワークと職場のネットワークなど)にありますか?次に、Dropboxサーバーインフラストラクチャを使用して仲介することにフェールバックする必要があります。(最終的に、Dropboxは、他のクライアントを見つけることを期待して、各Dropboxクライアントがローカルネットワークでブロードキャストすることで問題を解決しようとしました。しかし、これらのブロードキャストは、NATの背後にあるルーターを通過しないため、完全なソリューションではありません、特にCGNの場合)
さらに、最初の不足(およびNATの波)は、多くのコンシューマ接続が常に接続(ダイヤルアップなど)にない場合に発生したため、ISPは、実際に接続したときにパブリック/外部IPアドレスのみを割り当てることにより、アドレスをより有効に活用できます。つまり、接続すると、常に同じアドレスを取得するのではなく、使用可能なアドレスを取得できます。これにより、独自のサーバーを実行するのがはるかに難しくなります。また、固定アドレスではなくピアの動きに対処する必要があるため、ピアツーピアアプリケーションの開発が難しくなります。
NATは発信接続を、NATデバイス自体から発信されているかのように書き換えるため、すべての動作(良いか悪いか)が1つの外部IPアドレスにロールされます。デフォルトで各発信接続を記録するNATデバイスを見たことはありません。つまり、デフォルトでは、過去の悪意のあるトラフィックのソースは、通過したNATデバイスにのみトレースできます。より多くのエンタープライズまたはキャリアクラスの機器は、各発信接続をログに記録するように構成できますが、それを行うコンシューマルーターを見たことはありません。ISPがCGNを介して行われたすべてのTCPおよびUDP接続のログを展開するときにログを保持するかどうか(およびその期間)を確認することは興味深いと思います。このような記録は、虐待の苦情やDMCAの苦情に対処するために必要です。
一部の人々は、NATがセキュリティを高めると考えています。もしそうなら、それは不明瞭さを通してそうします。NATが必須にする着信トラフィックのデフォルトのドロップは、ステートフルファイアウォールを使用する場合と同じです。NATに必要な接続追跡を実行できるハードウェアは、ステートフルファイアウォールを実行できるはずであるため、NATが実際にそこに値するものではないことを理解しています。
FTPやSIP(VoIP)などのプロトコルは、制御と実際のデータコンテンツに別々の接続を使用する傾向があります。これを行う各プロトコルには、通過する各NATデバイスにALG(アプリケーションレイヤーゲートウェイ)と呼ばれるヘルパーソフトウェアが必要です。または、何らかの種類のメディエーターまたはホールパンチの問題を回避する必要があります。私の経験では、ALGが更新されることはめったになく、SIPに関連して対処した少なくとも2つの問題の原因となっています。音声が一方向にしか機能しなかったためにVoIPが機能しなかったという報告を誰かが聞いたときはいつでも、どこかでNATゲートウェイがUDPパケットをドロップしているのではないかと思います。
要約すると、NATは壊れる傾向があります。
コアでは、ネットワークスタックが採用する階層化アプローチは比較的単純でエレガントです。ネットワーキングの初心者に説明してみてください。彼らは、ホームネットワークがおそらく、理解しようとするのに適したシンプルなネットワークであると必然的に想定しています。これは、いくつかのケースで、外部アドレスと内部アドレスの混乱のためにルーティングがどのように機能するかについての非常に興味深い(過度に複雑な)アイデアにつながることを見てきました。
NATがなければ、VoIPはユビキタスでPSTNに統合され、携帯電話やコンピューターからの通話は無料になります(既に支払い済みのインターネットを除く)。結局のところ、あなたと私が64K VoIPストリームを開くことができ、PSTNと同じように機能するのに、なぜ電話代を払うのでしょうか?今日のように、VoIPを展開する際の最大の問題はNATデバイスを通過しているようです。
NATが壊したエンドツーエンドの接続があった場合、多くのことがどれほど単純になるかを通常は認識していないと思います。2人のクライアントがNATの背後にある場合にメディエーターを必要とするという中核的な問題がある場合、人々はファイル自体を電子メール(またはDropbox)のままにします。
2000::/3
4,000回以上その運動を繰り返す必要があります!または、全員に/ 34を渡します。しかし、/ 48は事実上すべての人にとって十分であり、さらに必要な人は簡単に入手できます。それだけでは不十分な場合でも4000::/3
、まだ6000::/3
利用可能な、などがあります。たくさんの部屋があります。それを使用する時間です。RFC 6177も参照してください。
他の回答では言及していなかったIPv4の枯渇の大きな症状の1つは、数年前に一部のモバイルサービスプロバイダーがIPv6のみに移行し始めたことです。IPv6を何年も使用していて、知らなかった可能性もあります。モバイルプロバイダーはインターネットゲームの新機能であり、必ずしも既存の膨大なIPv4割り当てを引き出す必要はありません。また、電話は家庭内の他のメンバーとパブリックIPアドレスを共有できないため、ケーブル/ DSL /ファイバーよりも多くのアドレスが必要です。
IaaSおよびPaaSプロバイダーは、顧客の物理アドレスとは関係なく成長するため、次に来ると思います。IaaSプロバイダーがすぐにIPv6のみを割引価格で提供しているのを見て驚かないでしょう。
少し前に、主要なRIRが通常の割り当てのためのスペースを使い果たしました。したがって、ほとんどのプロバイダーにとって、IPv4アドレスの唯一のソースは自社の備蓄と市場です。
専用のパブリックIPv4 IPを持つことが望ましいシナリオがありますが、絶対に必須ではありません。割り当てられているが、パブリックインターネットで現在使用されていないパブリックIPv4アドレスもあります(プライベートネットワークで使用されている場合もあれば、まったく使用されていない場合もあります)。最後に、アドレスが必要以上に緩やかに割り当てられた古いネットワークがあります。
3つの最大のRIRでは、アドレスをメンバー間およびメンバー間で販売できるようになりました。そのため、使用していないアドレスを持っている組織や、一方の側でコストをかけずに解放できるアドレスを持っている組織と、他方で本当に多くのIPアドレスを必要とする組織との間に市場があります。
予測するのが難しいのは、各価格帯での需要と供給の量であり、したがって市場価格が将来どのようになるかです。これまでのところ、IPあたりの価格は驚くほど低いままだったようです。
理想的には、インターネット上のすべてのホストがグローバルスコープのIPアドレスを取得できるはずですが、IPv4アドレスの枯渇は現実的であり、実際にはARINは無料プールのアドレスを使い果たしました。
誰でもインターネットサービスに問題なくアクセスできる理由は、複数のホストがパブリックIPアドレスを共有できるネットワークアドレス変換(NAT)技術のおかげです。ただし、これには問題がありません。
ISPは、企業に256個のIPアドレスのブロックを提供するために使用されていました。さて、ISPはケチで、5(会社)のようになります。当時(2003年)、家のすべてのPCと接続デバイスには独自のインターネットIPアドレスがありました。これで、ケーブル/ DSN / Fiosルーターには1つのIPアドレスがあり、自宅のすべてのPCに10.0.0.x IPアドレスが割り当てられます。要約:ISPはIPアドレスを浪費していましたが、現在はISPが無駄にしなくなっています。
すでに多くの優れた回答が得られていますが、まだ言及されていないものを追加したいと思います。
はい。IPv4アドレスの枯渇は、測定方法によって異なります。一部の企業はまだIPv4アドレスを大量に提供していますが、キャリアグレードのNATなどの回避策を見始めています。
しかし、答えの多くは、IPv6に移行するときに間違っています。
IPv4アドレスの不足に対処するのに役立つテクノロジーのリストを以下に示します。それぞれに長所と短所があります。
IPv6
別の考慮事項:IPv6が今日完全に普及したとしても、人々が非常に長い間使用しているレガシー機器のために、IPv4を段階的に廃止するにはさらに20年ほどかかります(Windows 2003サーバーとWindows XPワークステーションがまだ見られます)たまに!IPv6をサポートしないすべてのプリンターとカメラ、およびIoTガジェットは言うまでもありません)。
最終的には、CGNatでは十分ではなくなります。IPv6が普及するかもしれませんが、国レベルのNATなどが登場する可能性も十分にあります。
現在、コンサルタントとして、多くの場合、顧客にIPv6で公開されていることを指摘する必要があります(多くの場合、Teredoのおかげです)。次の質問は常に「それを修正するにはどれくらいの費用がかかりますか?」そして「それをブロックするのにどれくらいの費用がかかりますか?それをオフにすると何が失われますか?」毎回決定がどうなるかを推測してください。
結論:質問に答えるには、はい、IPv4の枯渇は現実です。そして、それに対処するための非常に多くのメカニズムがあります。IPv6が方程式になる場合とそうでない場合があります。
明確にするために:私はこの状況が好きだと言っているのではありません。IPv6が成功するようにしたいと思います(そしてIPv6の多くの改善を見たいです)。私はただ、現在地上にいる状況を見ているだけです。
NATは、IPv6が現実になる前のアイデアであり、IPアドレスの割り当てが現実の問題になりつつあり(クラスCを基本的に尋ねるときに覚えている人がいたのか?)、その間に現実のソリューションが必要だったときに起こったこと。
NATはIoTには不十分です。IoTが発生する場合、IPv6でも発生します。IoTの性質は、ダイアルアップの世界がどのように機能したかにより密接に連携していますが、同時に接続されるデバイスの数桁が増えることを除きます。
IPv4アドレス全体の問題はかなり複雑です。あなたはそれが使い果たされていることを報告する特定の記事を見つけるかもしれませんが、さらに別の人が1つのパーティーから別のパーティーに販売されている多数の余剰(使用されていない)アドレスについて話します。問題は、これらの人々(先進国の新興地域や農村部)がこれらの人々に不足しているのはなぜですか?
以下は、私たちが偶然に出会った調査の結果です。元のIPv4プロトコルRFC791と、長く予約されているがほとんど使用されていない240/4アドレスブロックを利用して、IPv4プールを256M倍に拡張します。EzIP(Easy IPv4のフォネティック)と呼ばれる提案案をIETFに提出しました。
https://tools.ietf.org/html/draft-chen-ati-adaptive-ipv4-address-space-03
基本的に、EzIPアプローチはIPv4アドレス不足の問題を解決するだけでなく、サイバーセキュリティの脆弱性の根本原因を大幅に軽減するだけでなく、すべてIPv4ドメインの範囲内でインターネットの新しい可能性を切り開きます。実際、このスキームは、必要に応じて隔離された地域に「密かに」展開できます。これらは、かなりの期間IPv6を展開する緊急性を緩和し、IPv4アドレスの取引市場を無効にする必要があります。
どんな考えやコメントも大歓迎です。
安倍(2018-07-15 17:29)
正直なところ、人々が考えるほど悪くはないと思います。ええ、多分いくつかの場所ではありますが、十分なアドレスがないのでそれほどではありません。それらはすべて所有されているからです。たぶんそれは私の場所か何かかもしれませんが、私は過去7年かそこらで多くの中小企業でITの仕事をしてきました。安っぽいデバイスをお持ちでない場合や、そもそもネットワークの整理が必要な場合を除き、かなり簡単です。
個人的には、NATは大丈夫です。一般的に言えば、追加の保護層です。少なくとも、彼らは余分なデバイスを通過するか、間接的に私の接続をハイジャックする方法を見つけなければなりません。サーバーを実行している限り、支払いをしない限り、通常はISPとの契約違反と見なされます。確かにあなたはそれをすることができ、彼らはおそらくそれについてあなたを悩ませることはありませんが、彼らはすることができます。
ポートフォワーディングなど、すべてが厳密には複雑ではありません。現在、いくつかのデバイスは設定が簡単ではないかもしれませんが、それはIPv4のせいではありません。ユビキタスであるという理由だけで、依然として最も互換性があります。
実際に誰も自分自身に電子メールを送る必要はありません。Drop-boxやGoogle Drive、または他の数百万の同様のサービスに何かを送信することは、最近の科学ではなく、遅くもありません。すべてが同期するということです。フォルダーにドロップします。あなたが私のようにオタクでない限り、あなたはすべてをssh / sftpでやります(すべてではありません)。そして、何らかの理由で自分のサーバーを本当に実行したい場合、クラウドホスティングは安価です。SSD上でLinuxを実行する専用の仮想サーバーがあります。帯域幅は非常に高速です。上矢印を入力してEnterキーを押すよりも速く起動します。スケーラブルです。セットアップ全体の費用は月に5〜10ドルで、バックアップは無料で、電気代はかかりません。
ピアネットワークソリューションは本当に必要ありません。最近のほとんどのマルチユーザーゲームでさえ、介在サーバーを介して相互作用するようにセットアップされており、すべてセットアップおよび事前構成されています。一方で、この投稿で読んでいることがすべて真実である場合、IPv6が普及すれば、ITは過密で安価になります。携帯電話でさえ、ファイバーのような速度に近づいています。または少なくともケーブル。
社内サーバーを実行していて、ネットワークの内部または外部で同じドメイン名でヒットする必要がある場合、Linuxベースのルーターとdnsmasqまたはホストの任意のカスタムエントリを使用して、そのアドレスをいつでも偽装できます。内部にいる場合は、ローカルアドレスにリダイレクトするファイル。
本当に、すべてのデバイスが自分のアドレスを「ネット上で直接開いている」ようにすることは実際には望ましくないと思います。誰かがあなたを攻撃している間に自分自身を覆い隠したいなら、それは関係なく起こります。しかし、あなたがただそこに座っているのであれば、あなたは座っているアヒルです。いや、いつでもIPv4とNATを使います。しかし、そこにあるのは良いことです。
とにかく、今眠りに落ちている...おそらくもっと言いたいことですが、何かを見逃した場合に備えて明日チェックインします。もっとあると思います。