Linuxはどちらも同じネットワークに接続されているときに使用するネットワークインタフェースをどのように決定しますか?
これはルーティングに関する質問ではありません。私はそれがどのように機能するかをよく知っています。たとえば、私のラップトップがイーサネットカードとワイヤレスカードを介してワイヤレスルーターに接続されている場合、または両方のイーサネットカードが同じルーターに接続されているとします。
私の経験によると、私のラップトップは、ワイヤレスインターフェイス(eth1 - ワイヤレスインターフェイスの一般的な名前ではありませんが、私が持っている名前)よりもイーサネットカード(eth0)を好むようです。わかりました、どう決まりますか?最も低い番号のインターフェイスから選択した場合、2つの選択肢がeth0とwlan0の場合はどうなりますか?
編集:@Nilsはこれがまだルーティングの問題であり、ルーティングテーブルが答えを提供すると指摘しました(彼の答えを参照)。これは依然として元の問題を引き起こしますが、フォームは異なります。 Linuxルーティングテーブルのエントリの順序はどのように決定されますか?たとえば、次は、2 つのインターフェイスに接続されたときのルーティングテーブルです。
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がデフォルトのルーティングインターフェイスである理由と同じ問題がある可能性があります。)
答え1
まあ - ルーティングの問題です。
答えは簡単です。最良のルーティングエントリが提供された最初のエントリは「勝者」です。まず、netstat -rn
どのインターフェイスを見てください。
修正する:ネットワークインタフェースルーティング設定は通常、システム起動時に設定されます。したがって、ネットワークデバイスの起動順序はこの表の順序になります。 PCI デバイスの場合、通常は最も低いスロット番号から処理されます。外部デバイス(USBなど)は通常後で提供されます。
ただし、正確な順序はLinuxスタイルのネットワーク起動スクリプトによって異なります(ここでは非常に異なります)。
注: 両方のリンクを利用するには、次に進む必要があります。ボンディング。ここでリンクが使用される順序を設定できます。