IPパケットフローを理解しようとする

IPパケットフローを理解しようとする

パケットが 1 台のマシンから別のマシンにどのように移動するのか理解できません。以下に、コンピュータ 1 がコンピュータ 2 に接続しようとする例を示します。

Computer 1  
IP: 192.168.1.11  
Subnet: 255.255.255.0  
Default Gateway: 192.168.1.1  
MAC: 00:00:00:00:00:aa

Router 1  
IP: 192.168.1.1  
Subnet: 255.255.255.0  
MAC: 00:00:00:00:00:bb  

Router 2  
IP: 192.168.2.1  
Subnet: 255.255.255.0  
MAC: 00:00:00:00:00:cc  

Computer 2   
IP: 192.168.2.1  
Subnet: 255.255.255.0  
Default Gateway: 192.168.2.12  
MAC: 00:00:00:00:00:dd

コンピュータ 1 からコンピュータ 2 に接続し、パケットの流れをたどると、ルータ 2 から送信される情報の送信元アドレスは 192.168.1.2 になり、送信元 MAC アドレスは 00:00:00:00:00:cc になると思います。私の理解では、送信先は同じままですが、送信元はパスを通過するにつれて更新されます。これは正しいですか、それとも私が見落としている何かがありますか?

答え1

ふう。あなたのシナリオを考えると、これは少し難しいですね。

まず、ルータ 2 は、クライアント側インターフェイスにあるインターフェイスをルータ 1 と共有してはなりません。

この例では、4 つのデバイスすべてが同じ LAN セグメントを共有していますが、これは余談ですが、192.168.xy ファミリのルーティング不可能な (編集: 「インターネット」全体にわたる) IP アドレス範囲内にあります。

より良い方法は、次のように考えることです。

Computer 1
IP: 192.168.1.100
Subnet: 255.255.255.0
Default Gateway: 192.168.1.1
MAC: 03:00:00:00:00:11

Router 1
IP: 192.168.1.1
Subnet: 255.255.255.0
MAC: 03:00:00:00:00:22
IP: 192.168.12.1
Subnet: 255.255.255.0
MAC: 03:00:00:00:00:33

Router 2
IP: 192.168.12.2
Subnet: 255.255.255.0
MAC: 03:00:00:00:00:44
IP: 192.168.2.1
Subnet: 255.255.255.0
MAC: 03:00:00:00:00:55

Computer 2
IP: 192.168.2.200
Subnet: 255.255.255.0
Default Gateway: 192.168.2.1
MAC: 03:00:00:00:00:66

MAC の先頭に 03 の 16 進文字が付いているという事実は無視してください。これは、ネットワークに詳しい人のために正確さを期すためのものです。[編集] ローカルに割り当てられ、かつグローバルに一意になるように、0x03 に修正する必要がありました。

ここで何が起こっているかというと、コンピュータ 1 からのケーブルがルータ 1 に接続されています。これら 2 つは 192.168.1.x ネットワークを共有しています。ルータ 1 からルータ 2 へのケーブルがあります。これらは 192.168.12.x ネットワークを共有しています。ルータ 2 からコンピュータ 2 へのケーブルがあります。これらは 192.168.2.x ネットワークを共有しています。

元の記述では、4 つのデバイスすべてを同じスイッチに接続しないと動作しないはずでした...そして、そのような場合、コンピュータ 1 はコンピュータ 2 と直接通信することになります。注: ネットワーク ウィザードの皆さん、静的ルーティングを実行して元のネットワーク構成を強制的に動作させることができることは知っていますが、このユーザーが尋ねているのはそれではありません...

さて、具体的な質問に移りましょう。

半分正解です。コンピュータ 2 が認識する MAC アドレスは、ルータ 2 の MAC アドレスです。私の例では、MAC 03:00:00:00:00:55 になります。ただし、コンピュータ 2 が認識する IP アドレスは、コンピュータ 1 のものです。これが、コンピュータ 2 がコンピュータ 1 に応答できる方法です。IP アドレスは、理論上は「普遍的に一意」です。

ネットワークの仕組みは、あなたの知識レベルから判断すると、レイヤー 2 (データリンク / MAC レイヤー - すべての Ethernet/IPv4 環境) のアドレスがホップごとに変更されるというものです。ホップごとには、「レイヤー 3 処理デバイスを通過する」と定義されます。ルーターとコンピューターは、ほぼ常にレイヤー 3 を処理します。スイッチはレイヤー 3 を処理できますが、そのままにしておく傾向があります。

したがって、メッセージがコンピュータ 1 からコンピュータ 2 に送信されるときのフローは次のようになります。

ホップ 1 - コンピュータ 1 とルータ 1 の間

SourceIP: 192.168.1.100 (Computer 1)
SourceMAC: 03:00:00:00:00:11 (Computer 1)
DestIP: 192.168.2.200 (Computer 2)
DestMAC: 03:00:00:00:00:22 (Router 1 - Interface facing Computer 1)

ホップ2 - ルータ間

SourceIP: 192.168.1.100 (Computer 1)
SourceMAC: 03:00:00:00:00:33 (Router 1 - Interface facing Router 2)
DestIP: 192.168.2.200 (Computer 2)
DestMAC: 03:00:00:00:00:44 (Router 2 - Interface facing Router 1)

ホップ 3 - ルーター 2 とコンピュータ 2 の間

SourceIP: 192.168.1.100 (Computer 1)
SourceMAC: 03:00:00:00:00:55 (Router 2 - Interface facing Computer 2)
DestIP: 192.168.2.200 (Computer 2)
DestMAC: 03:00:00:00:00:66 (Computer 2)

つまり、IP アドレス層 (レイヤー 3) アドレスは通信全体にわたって同じままですが、データリンク層 (レイヤー 2) アドレスは、レイヤー 3 アドレスを処理する別のデバイスが関与するたびに変更されます。

これがお役に立てば幸いです。それでもまだわかりにくい場合は、お気軽にメッセージをお寄せください。難しいと感じている特定のサブセットについて説明させていただきます。

答え2

あなたの例には欠陥があります。(編集したのを見ましたが、まだ欠陥があります。)

この例では、ルータ 1 と 2 は同じサブネット上にあります (つまり、同じサブネット マスクを持っています)。したがって、コンピュータ 1 はデフォルト ゲートウェイから何も送信せず、単に NIC からパケットをスローし、スイッチまたはメディアがそれをコンピュータ 2 に届けることを期待します。

ここで、ルーター 2 とコンピュータ 2 を次のように変更します。

Router 2
IP: 192.168.2.2

そして

Computer 2
IP: 192.168.2.12

[ニックによる編集、太字で表示] ルータ2とコンピュータ2がオンになります(独自のサブネット、 ない:)別々のサブネットすると、例の意味がより明確になります。

ただし、図が提供されていないので、ここではトラフィックを次のように移動させたいと考えています。

コンピュータ 1 <-> ルーター 1 <-> ルーター 2 <-> コンピュータ 2

これを機能させるには、ルータ 1 とルータ 2 が同じサブネット上に存在することはできません。実際には、ルータ 1 とルータ 2 の間にはトラフィックを交換する 3 番目のネットワークが存在します。(デフォルト ルートがプライベート ネットワークを参照するのは少し奇妙です。通常は「インターネット」を意味しますが、確かに可能です。)

あなたがやろうとしていることは次のようなことだと思います。写真が粗雑で申し訳ありません。 ここに画像の説明を入力してください

MAC アドレスはルーターを越えて伝播しません。コンピュータ 1 はコンピュータ 2 にパケットを送信しようとします。コンピュータ 2 は同じサブネット上にないため、コンピュータ 1 はパケットをデフォルト ゲートウェイに送信します。

これは、コンピュータ 1 の MAC からルータ 1 の MAC に送信されるフレームになります。

ルータはパケットを転送します。転送とは、別のインターフェイスからコピーすることを意味します。したがって、ルータ 1 は、コンピュータ 1 から受信したパケットの宛先がコンピュータ 2 宛であることを認識します (このような状況でそれを認識するには、静的ルートでプログラムするか、RIP/OSPF などのプロトコルを使用する必要があります)。

したがって、IP パケットの送信元 MAC はルータ 1 の 2 番目の NIC で、宛先 MAC はルータ 2 の最初の NIC になります。これがコンピュータ 2 に到達するまで続きます。

答え3

MAC アドレスはホップごとに変わりますが、NAT/PAT テクノロジがインラインで使用されているか、アプリケーション プロキシが使用されていない限り、接続の IP アドレスは変更されないという点では半分正しいです。

注意: コンピュータ 2 のアドレスは 1.12 ではなく 192.168.2.12 のようなものであるはずです。これは、パケットがルータ 2 をまったく通過しないことを意味します。次のようなものを探していると思います:

Computer 1  
IP: 192.168.1.11  
Subnet: 255.255.255.0  
Default Gateway: 192.168.1.1  
MAC: 00:00:00:00:00:aa

Router 1  
LAN IP: 192.168.1.1  
Subnet: 255.255.255.0  
MAC: 00:00:00:00:00:bb  

WAN IP: 192.168.3.1  
Subnet: 255.255.255.0  
MAC: 00:00:00:00:00:b1  

Router 2  
LAN IP: 192.168.2.2  
Subnet: 255.255.255.0  
MAC: 00:00:00:00:00:cc  

WAN IP: 192.168.3.2  
Subnet: 255.255.255.0  
MAC: 00:00:00:00:00:c1 

Computer 2   
IP: 192.168.2.12  
Subnet: 255.255.255.0  
Default Gateway: 192.168.2.2  
MAC: 00:00:00:00:00:dd

つまり、コンピュータ 1 が属する LAN (.1.X)、2 つのルーター間のネットワーク (.3.X)、およびコンピュータ 2 が属する LAN (.2.X) の 3 つのネットワークが存在します。

MAC アドレスはフレームのアドレス指定用なので、各 LAN の実装に関連付けられています。MAC アドレス ::aa を使用して、Computer1 と Router1 が接続されているネットワークにフレームを送信できますが、この LAN 上の ::dd にフレームを送信しようとしても、フレームは宛先に到達しません。したがって、MAC アドレスは、その MAC を持つデバイスが存在するネットワークでのみ有効です。

ただし、IP アドレスはネットワーク間を通過できるように作られているため、一定のままです。パケットはルーターを通過するたびに新しいフレームに再カプセル化されますが、IP パケット自体は変更されません。これは重要なことです。なぜなら、シナリオ内の Computer2 が MAC ::cc で 192.168.1.1 からパケットを受信した場合、それがルーターから送信されたものではないと判断する方法がなく、computer2 が応答したときに、ルーター 2 は誰に応答しているのかがわからないからです。

したがって、コンピュータ 2 が受信するパケットの送信元 IP は 192.168.1.11 ですが、MAC アドレスは ::cc です。

NAT/PAT では、送信元/送信先の決定にさらに多くの情報が必要になるため、状況が少し複雑になります。そのため、実際の家庭用ルーターのシナリオの方が少し複雑であることを覚えておいてください。

答え4

痛い。ルーターは 1 つの IP だけを持つわけではありません。Wendell Odom の「Networking First Step」をお勧めします。

「私の理解では、宛先は同じままですが、ソースはパスを通過するときに更新されます。」と書かれています。

あなたが何について話しているのかは明確ではありません。あまり多くは書いていませんし、少し書いた内容も曖昧です。明確に書けなければ、明確に理解されることはありません。

「送信元」「送信先」とだけ言わないでください。送信元 IP アドレス、送信元 MAC アドレス、送信先 IP アドレス、送信先 MAC アドレスのいずれを意味するのかを具体的に述べてください。

送信元と送信先の IP は同じままです。(NAT または非常に珍しいものがあった場合を除き、そのようなものはありません)

MAC アドレス (送信元と送信先) は変更される可能性があります。ルーターは MAC アドレスを書き換えます。ただし、ルーターは実際には正しく設定されていません。ルーターが独自のサブネット上に独自の IP を持つ複数の NIC を持つ方法については、ultra の写真を参照してください。

関連情報