複数のデフォルトルートがある場合のルーティング動作は何ですか?

複数のデフォルトルートがある場合のルーティング動作は何ですか?

当時、2つのISPが同じシステムに接続されていました。どちらもデフォルトでルーティングテーブルに追加されました。ただし、接続は1つだけ使用されます。

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    303    0        0 eth0
0.0.0.0         192.168.0.1     0.0.0.0         UG    303    0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     303    0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     303    0        0 eth1

2 つの ISP 間のトラフィック負荷のバランスをとるには?

答え1

これLinux高度なルーティングとトラフィック制御方法トラブルシューティング方法を説明するセクションがあります。

2 つのルート間のトラフィックのバランスをとる主なステップは、重みを与えることです。

ip route add default scope global \
    nexthop via 192.168.0.1 dev eth1 weight 1 \
    nexthop via 192.168.1.1 dev eth0 weight 1

答え2

Linux 3.6以降、パスはキャッシュされなくなり、すべてのキャッシュコードはIPv4用に削除されました。したがって、このマルチホーミングソリューションはもはやそのまま機能しません。

これが正しいストレッチです。

~$ uname -a
Linux 4.9.0-12-amd64 #1 SMP Debian 4.9.210-1 (2020-01-20) x86_64 GNU/Linux

しかし、提示は働きます

~$ uname -a
Linux 3.16.0-10-amd64 #1 SMP Debian 3.16.81-1 (2020-01-17) x86_64 GNU/Linux

関連情報