両方が同じネットワークに接続されている場合、Linuxはどのネットワークインターフェイスを使用するかをどのように決定しますか?
これはルーティングに関する問題ではないことに注意してください。それがどのように機能するかはよく知っています。たとえば、イーサネットカードとワイヤレスカードの両方を介してラップトップをワイヤレスルーターに接続している場合、または同じルーターに両方のイーサネットカードを接続している場合です。
私の場合、私のラップトップは、ワイヤレスよりもイーサネットカード(eth0)を優先しているようです(eth1--これはワイヤレスインターフェイスの一般的な名前ではないことを知っていますが、それは私が持っているものです)。疑問に思って、どうやってそれを決めるのですか?番号が最も小さいインターフェイスから選択するだけの場合、2つの選択肢がたとえばeth0とwlan0の場合はどうなりますか?
編集:@Nilsは、これは依然としてルーティングの問題であり、ルーティングテーブルが答えを提供することを指摘しました(彼の答えを参照してください)。これでも元の質問は残っていますが、形式が異なります。 Linuxのルーティングテーブルのエントリの順序は何によって決まりますか?たとえば、両方のインターフェースに接続しているときのルーティングテーブルは次のとおりです。
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.4.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
ローカルネットワークの宛先の場合、表ではeth0がeth1よりも優先度が高いのは明らかですが、Linuxではリンクレイテンシ、リンクスループット、さらにはインターフェイス名などによって決定されますか(同じ質問が、eth0がデフォルトルートのインターフェイスである理由にも当てはまります。)
まあ-これはISルーティングの質問です。
答えは簡単です。最適なルーティングエントリを与える最初のエントリは「勝者」です。したがって、netstat -rn
を見て、どのインターフェースが最初かを確認してください。
pdate: network-inferface-routing-settingsは通常、システムの起動時に設定されます。したがって、ネットワークデバイスの起動順序は、この表の順序になります。 PCIデバイスでは、これらは通常、最初に最小のスロット番号で処理されます。外付けデバイス(USBなど)は通常後で使用します。
しかし、正確な順序は、Linuxフレーバーのnetwork-startup-scriptに依存します(これは、非常に異なるものです)。
ところで:2つのリンクを利用したい場合は、bondingを使用する必要があります。そこで、リンクの使用順序を設定できます。