Linux の基本 IP ルーティングについて

Linux の基本 IP ルーティングについて
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ルーティングがどのように機能するかを知りたいです。

パケットはデバイス/インターフェイスに入って来ます。この場合にはeth0eth1eth2したがって、IPパケットは、これらのデバイスや他のデバイスtun(たとえば、

IPパケットが到着したとしましょうeth1。 IPソース:192.168.1.1、IPターゲット:199.178.167.431。アドレスはGenmaskの外部にあるため、eth1Linuxはデフォルトゲートウェイを介してアドレスを送信しようとします。

IPパケットが到着したとしましょうeth1。 IPソース:192.168.1.1、IPターゲット:192.168.1.2。このアドレスはgenmaskにあるので、eth1Linuxはこのパケットをどこに送りますか?どのデバイスで?

IPパケットが到着したとしましょうeth0。 2つのエントリがありますが、eth0Linuxはこのパケットをルーティングするためにどのエントリを使用しますか?また、このパケットの送信元と宛先が何であるかはわかりません。誰でも例をあげることができますか?

ベストアンサー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.32 つのルートが定義されている場合、パケットは宛先に一致する最も具体的なルートであるため、それを離れます。10.1.0.0/16eth310.1.2.0/24eth4eth4

おすすめ記事