ルーターはどのようにしてパケットを端末にルーティングするのかを知っていますか?


10

2台のコンピューターのネットワークがあり、それぞれに192.168.1.101と192.106.1.102のプライベートネットワークアドレスがあるとします。

私のパブリックIPアドレスの場合、10.2.10.172です。

google.comにhttpリクエストを送信すると、コンピューターは送信元IPアドレスが192.168.1.101のパケットをルーターに送信し、NATはそれを10.2.10.172に変更します。

私の質問は、google.comがリクエストを取得して10.2.10.172に返信を送信すると、ルーターはどのコンピューターにルーティングするかをどのようにして知るのですか?(192.168.1.101または192.168.1.102)。

最初はポート番号について考えていましたが、同じウェブサイトを同時に閲覧している可能性もあるので、どういうふうに機能するのかわかりません。



1
10ネットワークも「内部ルーティング不可」です-今夜はキューを高速で処理しているので、たぶん困っています... NATの別のレイヤーがあり、その10ネット番号をpublickルーティング可能に変換する必要があります。とにかく...マッケビン、Net Engへようこそ!これはここでのソフトボールQですが、十分に話題になっています...
クレイグコンスタンティン

@CraigConstantine私は単なるCCNAの学生です。ソフトボールについて説明していると思いますQ :)
Mc Kevin

回答:


7

NAT
静的(1対1)NATを使用している場合、ルーターはgoogle.comに到達しようとする11.2.10.172最初のPC(たとえば192.168.1.101)にパブリックIPを割り当てます。この場合、使用可能な唯一のパブリックIPがすでに配布されているため、2台のPCは一度にgoogle.comと通信できません。
ルータのNATテーブル:
11.2.10.172 -> 192.168.1.101

PAT
あなたの場合、PAT(NATオーバーロード)が解決策です。
PATを使用すると、複数のアドレスを1つのプライベートIPにマッピングできます。デバイスがTCP / IPセッションを開始すると、セッションを一意に識別するためのTCPまたはUDPソースポート番号が生成されます。ルータはこのパケットを受信すると、その送信元ポート番号を使用して、変換を一意に識別します。


PC1(192.168.1.101)は、64.233.161.1ランダムなソースポート番号(1444)を使用してgoogle.com()にHTTPリクエストを送信します。PC1はでパケットを送信しDA: 64.233.161.1:80 | SA: 192.168.1.101:1444ます。ルーターはこのパケットを受信する11.2.10.172:1444 -> 192.168.1.101:1444と、NATテーブルに挿入してから、パケットのL3アドレッシングをに変更し、DA: 64.233.161.1:80 | SA: 11.2.10.172:1444google.comに転送します。
Googleはで応答しDA: 11.2.10.172:1444 | SA: 64.233.161.1:80ます。ルータはこのパケットを受信し、それを変換DA: 192.168.1.101:1444 | SA: 64.233.161.1:80してPC1に転送します。

PC2(192.168.1.102)がPC1と同じ送信元ポート番号を持つパケットを送信する場合、ルーターはポート番号を1だけ増やすだけです。その場合、NATテーブルは次のようになります。

11.2.10.172:1444 -> 192.168.1.101:1444
11.2.10.172:1445 -> 192.168.1.102:1444

少しお役に立てば幸いです。

更新
@CraigConstantineが気づいたように、10.2.10.172まだプライベートアドレス空間にあるので、に変更しました11.2.10.172


つまり、パケットに2つのポート番号が含まれるということですか。1つはNAT用、もう1つは端末用(httpポート80)ですか?
Mc Kevin

1
はい。PCは<dest:64.233.161.1:80、source 192.168.1.101>のパケットを送信します。ルーターはそれを<dest:64.233.161.1:80、source:10.2.10.172:1317>に変換し、Googleに送信します。Googleは<dest:10.2.10.172:1317、source:64.233.161.1:80>で応答します。ルータはパケットを受信し、NATテーブルで10.2.10.172:1317マッピングを検索します。<dest:192.168.1.101、source:64.233.161.1:80>
Adam Hornyak

1
パケット内の1つのみ。ルーターは、変換時に宛先アドレスとポート番号を書き換えます。
ロントランク

1
すべての技術を取得したい場合(そして誰がそうしないのでしょうか?)、PCは送信元ポートを割り当て、それがNATデバイスによって変換されます。したがって、Adamのコメントでは、最初のソースは実際には192.168.1.101:33123のようになり、同様に、コメントの最後にある対応する最終的な宛先は192.168.1.101:33123になります。
Todd Wilcox、

1
@ToddWilcoxそうですね。忘れました。回答を更新します。
Adam Hornyak 2015年

4

ルーターは、送信元IPアドレス:ポートと宛先IPアドレス:ポートの関係であるステートフル接続のテーブルを保持しているため、トラフィックのルーティング先を認識しています。これらは、ファイアウォールルール、NATポリシー、およびその他のいくつかの設定(TCPやUDPタイムアウトなど)に基づいて確立されます。NEW、RELATED、ESTABLISHED、INVALIDの4つの状態があります。ファイアウォールルールに基づいて、ファイアウォールは接続の状態を決定します。したがって、通常、デフォルトで新しい接続を送信できますが、NATまたはPATルールと一致するファイアウォールポリシーを作成した場合、RELATEDまたはESTABLISHED接続のみが受信を許可されますこれを許可します。

次に、構成したルール(新しい接続の場合)または既存の接続テーブル(ESTABLISHED接続の場合)に基づいて、パケットの通過を許可または拒否します。

さらに、ファイアウォールがIPアドレスが対応する物理MACアドレスを知るのに役立つ[ARP]テーブルが維持されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.