ネットワーク デバイスが 2 つある場合、要求された接続にどちらが使用されているかを知るにはどうすればよいですか。
これとともに :
ip r
default via 10.0.0.1 dev wlp3s0 proto static
default via 10.0.0.1 dev wlx00e04c221395 proto dhcp src 10.0.0.143 metric 600
10.0.0.0/24 dev wlp3s0 proto kernel scope link src 10.0.0.120
10.0.0.0/24 dev wlx00e04c221395 proto kernel scope link src 10.0.0.143
10.0.0.1 dev wlx00e04c221395 proto dhcp scope link src 10.0.0.143 metric 600
ルートが 2 つありますdefault
。システムは常にコマンドでリストされた最初のルートを使用しますかip r
?
答え1
以下のコマンドでルートテーブルを確認してください。メトリック列は通常ルーティングの優先順位を決定します。
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.42.0.2 0.0.0.0 UG 50 0 0 eth1
0.0.0.0 10.42.0.1 0.0.0.0 UG 100 0 0 eth0
この優先順位は再起動/起動後に起動するインターフェースの順序に依存しますが、以下のコマンドで優先順位を変更することもできます。
sudo ifmetric <interface> <priority>
答え2
他の回答に対するコメントでの議論には、独自の回答が必要だと思います。
ip route
まず、またはを使用してルーティング テーブルを一覧表示しroute -n
、何が起こるかを自分で判断することもできますが、 を使用してカーネルにip route get a.b.c.d
ルーティング テーブルを調べて (はい、最近の Linux システムにはさらに多くのテーブルがあり、route -n
メイン テーブルのみが表示されます)、結果を通知するように依頼する方が簡単です。
第二に、ネットワークを設計する際の原則は、「各ホストはシングルネットワーク インターフェイスを、接続されている各サブネットに追加します」。ここでは、VM、ネットワーク名前空間などは、同じハードウェア上で実行されている場合でも、追加の「ホスト」としてカウントされます。
当然の帰結として、「いいえ、同じネットワーク インターフェイスに複数の IPv4 アドレスを割り当てることはできません」となります (自分が何をしているのかわかっている場合は別ですが、その場合は自己責任で行ってください)。
その理由は、異なるネットワーク インターフェイスを介してサブネットにアクセスできるようにしても、何のメリットもないからです。いずれにしても、同じサブネットに入ることになります。
上記のように、これらのルールに違反し、明らかに 2 つの WLAN が同じサブネットに接続されている場合、次のようになります。
10.0.0.0/24 dev wlp3s0 proto kernel scope link src 10.0.0.120
10.0.0.0/24 dev wlx00e04c221395 proto kernel scope link src 10.0.0.143
その後何が起こるかは定義されていません。ご覧のとおり、Linux カーネルは、宛先としてネットワーク インターフェイスの 1 つをランダムに選択します10.0.0.*
。
つまり、これらは実際には 2 つの異なる WLAN に接続していることになります。その場合、いずれかの WLAN の IP 範囲を、たとえば 10.0.1.0/24 に変更します。または、これらは同じ WLAN であり、その場合、2 つの WLAN アダプターを持つことは意味がありません。
デフォルト ルールも同様です。デフォルト ルールは 1 つだけにしてください。複数のルールがあると、動作が未定義になり、ルールがランダムに選択されます。つまり、1 つの接続のパケットはさまざまなパラメータ (ソース アドレスなど) でランダムに送信され、一方でホストは 1 セットのパラメータ (接続を開始したパラメータ) のみを認識し、他のパケットをドロップし、失われたパケットを紛失パケットと見なします。これは、標準のインターネット プロトコルが「シングル ホーム」であるためです。マルチ ホーム プロトコル (SCTP やマルチ ホーム TCP 拡張など) もありますが、現在はあまり広く使用されていないため、役に立ちません。
したがって、2 つの ISP を使用してインターネットに接続し、「インターネットを高速化」することはできません (宛先アドレスなどによって、どの接続を使用するかを決定する難しい方法がない限り)。これは、毎週のように尋ねられる FAQ です。
これで、元の質問では尋ねなかったすべての(または少なくともほとんどの)質問に答えられたと思います。