web-dev-qa-db-ja.com

ルートテーブルはどの順序で分析されますか?

私のPCでは、次のルーティングテーブルを使用する必要があります。

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 wlan0

分析方法がわかりません。つまり、トップダウンから、またはボトムアップからですか?

トップダウンで分析すると、IP宛先が192.168.1.15であっても、すべてが常に私の家のルーターに送信されます。しかし、(間違って?)PCが同じローカルネットワーク内にある場合、ブロードキャストメッセージを介してMAC宛先を回復すると、PCが直接メッセージを宛先に送信できることを知っていました(間違っていますか?)。

21
zer0uno

ルーティングテーブルは、最も具体的なものから最も具体的でないものの順に使用されます。

ただし、Linuxでは、予想よりも少し複雑です。まず、複数のルーティングテーブルがあり、どのルーティングテーブルがいつ使用されるかは、いくつかのルールに依存します。

全体像を取得するには:

$ ip rule show
0:  from all lookup local 
32766:  from all lookup main 
32767:  from all lookup default

$ ip route show table local
broadcast 127.0.0.0 dev lo  proto kernel  scope link  src 127.0.0.1 
local 127.0.0.0/8 dev lo  proto kernel  scope Host  src 127.0.0.1 
local 127.0.0.1 dev lo  proto kernel  scope Host  src 127.0.0.1 
broadcast 127.255.255.255 dev lo  proto kernel  scope link  src 127.0.0.1 
broadcast 192.168.0.0 dev eth0  proto kernel  scope link  src 192.168.1.27 
local 192.168.1.27 dev eth0  proto kernel  scope Host  src 192.168.1.27 
broadcast 192.168.1.255 dev eth0  proto kernel  scope link  src 192.168.1.27 

$ ip route show table main
default via 192.168.1.254 dev eth0 
192.168.0.0/23 dev eth0  proto kernel  scope link  src 192.168.1.27 

$ ip route show table default

$

localテーブルは、ローカルアドレスとブロードキャストアドレスの優先度の高い制御ルートを含む特別なルーティングテーブルです。

mainテーブルは、すべての非ポリシールートを含む通常のルーティングテーブルです。これは、単にip route show(または略してip ro)を実行した場合に表示されるテーブルでもあります。古いrouteコマンドを使用しないことをお勧めします。これは、mainテーブルのみを表示し、その出力形式は多少古くなっているためです。

テーブルdefaultは空であり、以前のデフォルトルールでパケットが選択されなかった場合、後処理用に予約されています。

独自のテーブルを追加し、特定のケースでそれらを使用するルールを追加できます。 1つの例は、2つのインターネット接続があるが、1つのホストまたはサブネットが常に1つの特定のインターネット接続を介してルーティングされる必要がある場合です。

Linuxでのポリシールーティング の本では、これについてすべて詳細に説明しています。

20
wurtel

ルーティングテーブルは通常、「最も限定的な」から「最も限定的でない」の順に適用されます。ネットマスクが0.0.0.00.0.0.0の宛先、つまりデフォルトルートは、最も限定的ではないため、常に最後に適用されます。

ローカルネットワーク上の別のPCのMACアドレスを持っているが、それが別のサブネット上にある場合、そのPCに特定のホストルートを追加すると、おそらく通信が可能になります。

4
roaima