パス出力を理解する方法

パス出力を理解する方法

Ubuntuシステムのネットワークを構成しているとしましょう。したがって、/etc/network/interfaces次のように編集できます。

...
address x.x.x.x
netmask x.x.x.x
gateway 192.168.1.1

その後、コマンドを実行すると、route次のような出力が得られます。

default       gateway    genmask
192.168.1.0   0.0.0.0    255.255.255.0

192.168.1.0そして、0.0.0.0どうやって理解するのかわかりません255.255.255.0

答え1

簡単な例が役に立ちます。次のパステーブルエントリを想定します(Linuxの「route -an」コマンド出力にはすべての列が表示されず、必要な列のみが表示されます。これは「勝ち」エントリであり、他のエントリは表示されません)。

Destination   Gateway  Genmask          Iface
192.168.69.0  0.0.0.0  255.255.255.0    eth7
.... other entries not shown ....

ここで、宛先IPが192.168.69.25のアウトバウンドパケットをルーティングするとします。これが起こるステップです。 (理論的には)ルーティングテーブルのすべてのエントリに表示され、「勝利」エントリのみが表示されます。

Extract destination IP:  192.168.69.25
AND it with the Genmask: 192.168.69.25 AND 255.255.255.0 ==> 192.168.69.0
Match the result against the 'Destination' field of the entry.
They match:   192.168.69.0 matches 92.168.69.0
The entry matches (and we presume it's the 'best' match, for simplicity).

一致するエントリのゲートウェイフィールドは0.0.0.0です。これは「ゲートウェイなし、不要」を意味します。これは、このエントリと一致するIPがこのホストで直接利用可能であり、指定されたインターフェイス「eth7」を使用してアクセスできることを意味します。 eth7 が接続されたネットワークに 192.168.69.25 の ARP を送信する場合は、そのホストの MAC を含む応答を受け取る必要があります。この MAC アドレスにパケットを送信します。

ゲートウェイが0.0.0.0でない場合は、eth7ネットワークで検出されたデバイスのIPでなければなりません。 eth7でゲートウェイのARPを送信し、応答を受け取ります。このARPにパケットを送信します。これは通常、パケットを受信して​​適切なネクストホップネットワークに転送するルータです。

ここに短くて興味深い例があります。検索すると、より詳細な情報が見つかります。

答え2

パスのマニュアルページはこれを非常によく説明しています。

OUTPUT
   The output of the kernel routing table is organized in the following columns

   Destination
          The destination network or destination host.

   Gateway
          The gateway address or '*' if none set.

   Genmask
          The netmask for the destination net; '255.255.255.255' for a host destination and '0.0.0.0' for the default route.

したがって、192.168.1.0はターゲットネットワーク、0.0.0.0はゲートウェイ、255.255.255.0はネットマスクです。
ゲートウェイがなぜ0.0.0.0なのかわからない場合この答えはそれを非常によく説明します

関連情報