• ベストアンサー

ラージスケールNATについての質問

「『ラージスケールNAT』が採用された際には、 ポートの残数が問題になるだろう。」 という内容の記事を某月刊誌で学ばせて頂けました。 但し、素人の私には其処の文面からでは分からなかった箇所が御座いましたので、其の情報が新鮮な内に学ばせて戴きたいものですから、下記の疑問への答えを教えて下さい。 「内部ローカルエリアでのNAPT処理の後に、 『ラージスケールNAT』経由でサーバーへのアクセスが行なわれる、 という状況の下では、2つの『送信元』エフェメラルポート番号が各パケットへ付けられるのでしょうか?」

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ラージスケールNATあるいはキャリアグレードNATが使われている環境だと、単純したらこういうネットワーク構成になっていると思います。 Internet - CGN - 家のルーターのNAT - LAN "2つの『送信元』エフェメラルポート番号が各パケットへ付けられるのでしょうか?"というのが何を聞いているのかよくわかりませんが、NATをした時にパケットのIPヘッダなどに変換前の情報が2度追記されるのか聞いているなら、そもそもNATの仕組みから勉強してくださいという答えになりますし、NATを行った2つの機器がそれぞれ『送信元』エフェメラルポート番号を自分の出せる範囲のものに書き換えるのかという質問ならYesという答えになるでしょう。 NAPTはその変換を行うルーターなどで変換テーブルを持っていて、書き換えとチェックサムの更新をするので、FTPのようなIPアドレスやポート番号の情報をIPやTCPのレイヤー以外でやりとりするプロトコルを使っている場合を除いて、通信元も通信先もNAPTを使っているのはわかりません。つまり、NATを行った機器がどの『送信元』エフェメラルポート番号をどの『送信元』エフェメラルポート番号に書き換えたかを知っていて、それ以外の機器はNAPTが行われたことすら認識することはできません。 CGNがある場合は、NAPTを家のルーターのNATとCGNとで行うだけです。家のルーターはLANから外に出るときのNAPTをしますし、その変換を覚えておきます。CGNでも同じように家のルーターがつけたIPアドレスとポート番号を外向きのIPアドレスとポート番号に書き換えます。この時、CGNは家のルーターでどういう変換が行われたかを把握する必要もありませんし、把握することも出来ません。 要はNAPTを2回やるところについてはそんなに問題がないと思います。GCNで問題なのは、CGNにやってくるプライベートIPアドレスが膨大なので、その変換を十分にできるだけのリソースをどうやって確保するかでしょう。NAPTというのは、ポート番号の空間は殆ど使われていなくてスカスカなので、不足しているIPアドレスをポート番号の空きでカバーしようという発想だと思います。しかし、変換元の機器の数が莫大になると、それをカバーできるほどのポート番号の数に余裕はなくなるでしょう。今時の様々な通信では多重化のために複数セッション同時に行うのが普通ですから、さらにポートの消費量は増大すると思います。また、不足している送信元ポート番号をどうやって平等に割り振るかも問題となるでしょう。1セッションに多重化して通信するプロトコルの方がスループット的には優遇されますが、それでいいのかという問題がありますので。(まぁ、個人的には変換テーブルという貴重なリソースを消費する方にペナルティをかけるべきだと思うので、1セッションに多重化したお行儀の良い方を優遇すべきだと思いますが...)

codotjtp
質問者

補足

有り難う御座います。 CGNの仕組みについての学習を始めてみます。

すると、全ての回答が全文表示されます。

関連するQ&A