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なのかわからない場合この答えはそれを非常によく説明します。