Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.24 0.0.0.0 255.255.255.252 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.25.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
0.0.0.0 192.168.1.25 0.0.0.0 UG 0 0 0 eth0
Linuxルーティングがどのように機能するかを知りたいです。
パケットはデバイス/インターフェイスに入って来ます。この場合にはeth0
、eth1
。eth2
したがって、IPパケットは、これらのデバイスや他のデバイスtun
(たとえば、
IPパケットが到着したとしましょうeth1
。 IPソース:192.168.1.1、IPターゲット:199.178.167.431。アドレスはGenmaskの外部にあるため、eth1
Linuxはデフォルトゲートウェイを介してアドレスを送信しようとします。
IPパケットが到着したとしましょうeth1
。 IPソース:192.168.1.1、IPターゲット:192.168.1.2。このアドレスはgenmaskにあるので、eth1
Linuxはこのパケットをどこに送りますか?どのデバイスで?
IPパケットが到着したとしましょうeth0
。 2つのエントリがありますが、eth0
Linuxはこのパケットをルーティングするためにどのエントリを使用しますか?また、このパケットの送信元と宛先が何であるかはわかりません。誰でも例をあげることができますか?
ベストアンサー1
まず、TCP / IPとルーティングテーブルの基本的な内容を読むことをお勧めします。
IP パケットが eth1 に到着したとします。 IPソース:192.168.1.1、IPターゲット:199.178.167.431。アドレスはeth1のGenmaskの外側にあるため、Linuxはデフォルトゲートウェイを介してアドレスを送信しようとします。
宛先 IP がインターフェイス定義と一致しないため、パケットは破棄されます。
IP パケットが eth1 に到着したとします。 IPソース:192.168.1.1、IPターゲット:192.168.1.2。このアドレスはeth1のジェンマスクにあるので、Linuxはこのパケットをどこに送りますか?どのデバイスで?
宛先 IP がインターフェイス定義と一致しないため、パケットは破棄されます。
IP パケットが eth0 に到着したとします。 eth0エントリが2つありますが、Linuxはこのパケットをルーティングするためにどのエントリを使用しますか?また、このパケットの送信元と宛先が何であるかはわかりません。誰でも例をあげることができますか?
たった 1 つの項目だけがインターフェイスのレイヤ 3 構成を定義するため、192.168.1.24 0.0.0.0 255.255.255.252 U 0 0 0 eth0
あいまいさはありません。さらに、デフォルトゲートウェイはインターフェイスのローカルIPアドレスにマッピングされていますが、eth0
これは他のすべてのルートが失敗したときに使用されるルートであるため、問題と完全に一致しません。
ルーティングプロセス中、カーネルは常により具体的なパス定義からあまり具体的でないパス定義まで一致します。したがって、パケットが転送される予定で、 と に10.1.2.3
2 つのルートが定義されている場合、パケットは宛先に一致する最も具体的なルートであるため、それを離れます。10.1.0.0/16
eth3
10.1.2.0/24
eth4
eth4