答え1
カーネルは同じように実行可能な複数のパスを許可しません。EEXIST
エラーが発生して2番目のパスを拒否します。
% ip route add 192.0.2.0/24 dev eth0 metric 10
% echo $?
0
% ip route add 192.0.2.0/24 dev eth1 metric 10
RTNETLINK answers: File exists
% echo $?
2
マルチパスルーティング、つまり複数のネクストホップを持つ単一パスを使用できます。ここでは、カーネルは、次に基づいて利用可能なネクストホップ間でトラフィックを分散(ロード共有/ロードバランシング)します。fib_multipath_hash_policy
:
% ip route add 192.0.2.0/24 metric 10 nexthop dev eth0 nexthop dev eth1
% ip route show to exact 192.0.2.0/24
192.0.2.0/24 metric 10
nexthop dev eth0 weight 1
nexthop dev eth1 weight 1
答え2
複数のデフォルトパスを使用することは避けるべきです。静的IPアドレス指定を使用すると、これは簡単です。 「ゲートウェイ」フィールドには何も入力しないでください。 DHCP割り当てアドレスを使用している場合は、1つのプライマリパスのみを宣伝するようにDHCPサーバーを再構成するか、デフォルトパスの1つを無視するようにLinuxコンピュータを設定できます。私は通常、次の単純なNetworkManagerコマンドを使用して後者を実行します。
$ nmcli connection modify "eth1" ipv4.ignore-auto-routes yes