我有多条 ISP 线路,通过这些线路,我在具有多个接口 (eth0、eth1、eth2、eth3) 的 Linux 机器上对网络流量进行负载平衡。我通过创建路由表和适用于它们的规则来实现这一点。
根据这些规则,连接会进行分配,从而实现网络流量的平衡。我现在关心的是故障转移。如果其中一条链路发生故障,则该链路上所有已建立的连接都会丢失,需要重新建立。这不是我所希望的。我希望这些连接在发生链路故障(状态故障转移)时移动到其他活动链路上,而无需重新建立。
我该如何实现这一点?conntrack 工具能帮到我吗?
答案1
除非您所有的内部网络计算机都具有公共 IP 地址,否则这是不可能的。
这是因为您的路由器正在执行从私有地址到公共地址的 NAT。每个传出链接都有一个单独的公共 IP 地址,并且连接的另一端只能看到该 IP 地址。
因此,当链接断开时,该公共 IP 地址将无法再使用。因此,必须使用另一个传出连接的 IP 地址重新建立连接。
在不太可能的情况下,如果您的所有计算机都具有公共 IP 地址,则路由协议会确保流量通过新链接进行路由。