ネットワークインターフェイスの設定


8

両方が同じネットワークに接続されている場合、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がデフォルトルートのインターフェースであるかについても言えます。)

回答:


6

さて-これはルーティングの質問です。

答えは簡単です。最適なルーティングエントリを与える最初のエントリは「勝者」です。したがって、netstat -rn最初にどのインターフェースであるかを確認してください。

更新: network-inferface-routing-settingsは通常、システムの起動時に設定されます。したがって、ネットワークデバイスの起動順序は、この表の順序になります。PCIデバイスでは、これらは通常、最初に最小のスロット番号で処理されます。外付けデバイス(USBなど)は、通常後で使用します。

しかし、正確な順序は、Linuxフレーバーのnetwork-startup-scriptに依存します(これは、非常に異なるものです)。

ところで:あなたが2つのリンクを利用したい場合は、結合に行く必要があります。そこで、リンクの使用順序を設定できます。


1
それは理にかなっている。ルーティングと言ったとき、どちらのインターフェイスが直接または間接に宛先ネットワークに接続されているかを単に選択するだけの問題ではないことを意味しました。専門用語にもっと注意するべきだった。役立つヒントをありがとう(特に結合について)。ただし、これでも元の質問は少し異なります。Linuxでルーティングエントリの順序はどのように決定されますか(元の質問を編集しました)?
Dominick Pastore

@Dominick私はそれに応じて私の答えを更新しました。どのディストリビューションとどのメジャーバージョンを使用していますか?
Nils

ああ。ディストリビューション間で大きく異なる可能性があることに気付きませんでした。私はこれについての情報を探しましたが、見つかったのはルーティングエントリの設定方法に関する記事であり、元のエントリの決定方法ではありませんでした。Xubuntu 12.04を使用しています。これはもう1つの質問を引き起こします(小さいですが、私はあなたの答えから非常に悟りを感じます:-))。ワイヤレス(eth1)で接続し、後でイーサネット(eth0)で接続した場合、デフォルトのルートとルーティングテーブルのトップエントリはeth0に戻ります。これはあなたの答えに反するようです。私は誤解していますか、それともNetworkManagerの特異性ですか、それとも何ですか?
Dominick Pastore

@Dominick Ubuntuは非常に特別です。ネットワークデバイスを接続/取り外しするときに、バックグラウンドでいくつかの魔法のことを行います。ネットワークスタック全体が再起動すると思います。(私は通常SLES / RHを使用しており、Ubuntuの奥深くにありません)
Nils

-3

気分を害することはありませんが、任意のLinuxマシンのTCP / IP通信スタックのルーティング部分に精通している場合は、2つのネットワークインターフェースを同じネットワークに接続した場合の結果は、よくても予測できないことを知っておく必要があります。もし私があなただったら、ラップトップでワイヤレスを無効にするか、ifconfig eth0 downコマンドを実行して(eth0が有線イーサネット接続であると仮定して)、それをシャットダウンします。Linuxには、すべてのパケットに対して同じ選択を行うためのインテリジェンスがあるかもしれませんが、ある時点でネットワークに障害が発生した場合、予期しない結果が生じる可能性があります。私の2セント。


1
予測不可能ではありません。@Nilsで説明されているように、ルーティングテーブルの最初のヒットが使用されます。
gertvdijk
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.