IPパケットはどのゲートウェイを取るかをどのように知るのですか?


11

同じネットワーク上に2つのゲートウェイが存在するとします。正しく理解できれば、送信者のコンピューターのIPルーティングテーブルが、どのパケットがどのゲートウェイを経由してルーティングされるかを決定します。

IPルーティングテーブルには、ゲートウェイのIPアドレスが含まれています。

IPパケットを送信するときに、ゲートウェイのこのIPアドレスはどのように使用されますか?


1
パケットは「認識」せず、ルーターは、選択したゲートウェイとルーターの間に存在するリンクを介して、送信先のゲートウェイを決定します。(答えが指摘しているように、イーサネットはIPトラフィック用のよく知られた共通のレイヤー2です。)
Peter Cordes

回答:


13

TL; DR:そのTCP / IPパケットを保持するイーサネットフレーム内

server-> switch-> routerトラフィック、およびserver-> switch-> serverトラフィックは、IPアドレス指定が実際に重要な役割を果たさない場所です。それは基本的なプロトコルの世界であり、おそらくイーサネットです。したがって、MACアドレス指定で実行される世界です。

したがって、デフォルトゲートウェイがIPアドレスであるという混乱を解決するだけで済みます。それは、ある種の...起動時...しかし、そのゲートウェイIPパラメーターは、たった 1つのことを行うために必要です。答えは、ゲートウェイがMAC 88:99:aa:bb:cc:dd:ee:ffであるということです。(これは、ARPクエリ/応答、2つの世界の間のトランスレータです。)パケットは、IPレベルで異なる宛先を保持する可能性があるという事実にもかかわらず、イーサネットレベルでそのMACに送信されます。

そのため、パケットは、イーサネットフレームの「宛先MAC」フィールドにエンコードすることにより、選択したゲートウェイに向かうようにマークされます。複数のゲートウェイがある場合、フィールドはそのネットワーク上のどのゲートウェイがそれを取得するかを決定します。(「フレーム」は、パケットまたはパケットの一部を保持する基本的なカプセルです。)


2
さらに進んで、実際に質問に答えるのはここでの唯一の答えだと言います。
ピーターグリーン

3
また、これはこれが適用されるデフォルトゲートウェイだけでなく、ルーティングテーブルのすべてのエントリの「ネクストホップ」アドレスに適用されます。
ピーターグリーン

2
もちろん、使用されているイーサネット以外のレイヤー1/2プロトコルがあります。IEEE LANプロトコルにはMACアドレスがありますが、他のプロトコルは何かを使用します。
ロンMaupinの

6

IPデータグラムヘッダーには、送信元と宛先のアドレス情報のみが含まれます。宛先に基づいて、ルーターは次にパケットを転送する場所を知る必要があり、この情報はルーティングテーブルに格納されます。

あるかもしれませんスタティックルートのアドレスまたはそのサブネットの情報とデフォルトゲートウェイは残りのために使用されます。これは通常、ローカルネットワークの場合です。他のローカルネットワークへの静的ルーティングと、残りのインターネット(つまりインターネット)のデフォルトゲートウェイが存在する場合があります。複数のデフォルトゲートウェイ、つまり、0.0.0.0またはへのルートの場合::、アクティブなゲートウェイはその優先度またはメトリック値によって選択されます。

インターネットレベルではISP間にあるため、宛先間に複数のルートがある場合、事態はさらに複雑になります。ルーター間で情報を共有するには、ルーティング情報プロトコル(RIP)、Open Shortest Path First(OSPF)、およびボーダーゲートウェイプロトコル(BGP)のいくつかの方法があります。この情報の共有方法に関係なく、ルーティングテーブルはネクストホップを認識し、IPパケットは最終宛先のみを認識します。


1
また、ソースIPやファイアウォールマークなどのさまざまな基準に基づいて異なるルーティングテーブルを選択できるポリシーベースのルーティングについても言及する価値があります。
ブラッチリー

一致する可能性のあるものが2つある場合、最も長いプレフィックスの一致が他のすべてよりも優先されることを説明することを忘れないでください。
ロンMaupinの

問題は、ルーターがパケットを転送する方法ではなく、送信者が最初に正しいルーターにパケットを送信する方法です。
バーマー

@Barmar:この質問の元のバージョンは2つの方法で解釈された可能性があり、これは他の方法に答えました。ルーティングテーブルに基づいてルーターを選択するプロセスは、元のマシンと同じです。したがって、他の人が1つのレイヤーを取得している間も、この回答は有用です。それらは互いに補完し合っています。
エサヨキネン

編集履歴を確認しました。元のバージョンに関連する違いは見当たりません。問題は、パケットがルーティングテーブルから決定されたルーターにどのように到達するかです。
バーマー

2

1つの可能性は、ネットワークがVRRPやHSRPなどのファーストホップ冗長プロトコル(FRHP)で構成されていることです。FHRPには、ホストが使用する仮想ゲートウェイアドレスがあり、仮想アドレスに送信されたトラフィックは、物理ルーターの1つによってピックアップされ、トラフィックを転送します。プライマリルーターに障害が発生した場合、セカンダリルーターがそれを判断し、パケットの転送を引き継ぎます。


いずれの場合でも、パケットは通過するパスを決定しません。各パケットは、ルーターのルーティングテーブルの情報に基づいて、他のパケットとは無関係に個別に転送されます。ルーティングテーブルが変更された場合、同じソースから同じ宛先へのパケットは異なるパスを取ることができます。

ルーターは、3つの方法でルートを学習します。

  1. 直接接続されたネットワーク
  2. 静的に構成されたルート
  3. 動的ルーティングプロトコルを使用

2

簡潔で簡単な答え:パケット内でエンコードされないか、見方によってはイーサネットターゲットアドレスです。IP / Ethernetスタックは、どのゲートウェイが宛先IPアドレスを処理するかを調べ、ゲートウェイIPアドレスのARP要求を送信してMACアドレスを取得し、次にゲートウェイのMACアドレスにパケットを送信します。その後、ゲートウェイはパケットを転送し、同じことを再度行います。これは、イーサネットネットワークを想定しています。

あなたの質問に答えたと思います。私はかつて同じことを疑問に思いました。質問は、特定のルーティングテーブルを指定されたホストが、どのゲートウェイに送信パケットを送信するかを決定する方法として解釈することもできます。


0

もちろん、見られる詳細の1つは、ルートが一致するかどうかです。192.0.2.55/24に送信していて、10.55.0.0 / 16へのトラフィックに使用可能なルートがある場合、そのルートは適用されないため無視されます。

通常見られる次の基準は、より一般的なルートよりも特定のルートを優先させることです。「特定の」ルートとは、より小さなサブネットを意味します。言い換えると、/ CIDR表記を使用する場合はより大きな数値、「サブネットマスク」表記を使用する場合はより大きなサブネットマスクです。つまり、可能なアドレスが少ない宛先ネットワーク。

したがって、「デフォルトゲートウェイ」(「最終手段のゲートウェイ」とも呼ばれる)は、通常、0.0.0.0 / 0ネットワークへのすべてのトラフィックの宛先を指定します。小規模なネットワークへのルートはそれよりも「具体的」であり、優先されます。したがって、192.0.2.0 / 24がより優先されます。

第三に、ルートには通常、「メトリック」と呼ばれる別のフィールド、または「優先度」のような別の名前があります。同じサイズのネットワークが複数ある場合、これが影響する可能性があります。

これらの「メトリック」値は、自動生成されるもの(たとえば、より多くのトラフィックに高速ネットワークが使用される方法)である場合がありますが、手動で調整できます。

ゲートウェイに関する情報は、送信されるIPパケット内でどこにエンコードされますか?

IPパケットには、宛先IPアドレスを指定する場合を除き、ルーティングに関する情報は含まれません。ルーティングの詳細は、途中でルーティングを処理する機器によって決定され、そのような詳細は通常IPパケットに配置されません。(したがって、機器はそこにないため、そのような詳細を探しません。機器はそのような情報を探しませんので、そのような情報を含めようとしても意味がありません。)

RFC 791ページ11には、IPパケットに含まれる情報の「ASCII ART」スタイルのテーブルが示されています。その表の後、そのドキュメントには詳細が表示されます(たとえば、「オプション」セクションについては、15ページで説明しています)。

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