IPマスカレードとNATについて

戸根先生 よろしくおねがいします。

今回は、IPマスカレードとNATについて質問です。

前回の質問では、同じOSを使っていれば、例えば、サーバーと通信する場合、クライアント側で使用するポート番号は任意で、同じになることがあるということなので、サーバーと通信するクライアントが一人ではない場合には不都合がでてくるというものでした。以上のようなNATは、ポート番号は変換しないでIP アドレスを変換し、IPマスカレードはその両方を変換するという部分に違いがあるかと思います。

そこで質問です。NATやIPマスカレードした後は、IPアドレスは指定したものに変換されますが、NATが一対一で使用でき、一対多で使用できない理由という部分で納得できていないません。確かに、IPマスカレードでは、サーバ側からしてみれば、同じIPアドレスでポート番号の違うクライアントが多数接続してきていると認識するでしょうが、 NATでもし一対多で使用した場合、サーバ側は、同じIPアドレスでポート番号が同じものもあるといった状況になると思います。要するに、同じIPアドレスで且つポート番号も同じクライアントが多数存在することになるので、NATでは一対多での接続が不可能になるという考えでよいのでしょうか?

お忙しいところ恐れ入りますがよろしくお願いします。

ナイペータ

名前: 
ナイペータ
日時: 
04/06/15 23:43

コメント

ナイペータさん,こんにちわ。

>IPマスカレードでは、サーバ側からしてみれば、
>同じIPアドレスでポート番号の違うクライアントが
>多数接続してきていると認識するでしょうが、

えーと,そうじゃなくて,
IPアドレスが一つだと,クライアントは1台に見えます。
アドレス変換装置がクライアントに見えるっていうことです。
それで,その1台のクライアントの中に
異なるポート番号を用いて通信する多数のプログラムがある,
っていう風に見えるんですね。

>NATでもし一対多で使用した場合、

NATは1対多にはならないので,こちらは何と答えればよいものか...

>同じIPアドレスで且つポート番号も同じクライアントが多数存在することになるので、

IPアドレスとポート番号が両方同じで,一つのサーバにアクセスしたら,
サーバ側からは,1台のマシンの中の一つのプログラムだという風に見えます。
でもって,その実体が複数のプログラムだったら,
多重人格プログラムっていうのかな(こんな言葉ありませんよ 笑),
複数のプログラムのパケットが交じり合って流れてくることになりますね。
その場合,当然プロトコルのルールに違反しますから,
通信動作は成り立ちません。

戸根先生 回答ありがとうございました。

NATとIPマスカレードの部分でNATからIPマスカレードに遷移した流れの部分での質問でした。

要するに、IPマスカレードではIPアドレスとポート番号の両方を変換装置(ルータ)で変換するので多重人格プログラム(つかっちゃいます!)とし
て扱われることなく一対多での通信が可能になる。逆に、NATだと先生の回答にもあったように、多重人格プログラムになる恐れがあり、通信上、不適だということだと理解しました。

お忙しい中、ありがとうございました。

ナイペータ