仅使用一个接口的多路径路由

仅使用一个接口的多路径路由

我的办公室网络中有两条连接到互联网的链路。其中一个路由器的 IP 地址为172.16.0.1另一个有172.16.0.3。他们使用 ppoe 连接到互联网,因此每次连接时都会获取一个 ip。

我配置了传入流量,所有来自外部 IP 的流量都将被路由到172.16.0.120。172.16.0.120 中有一个 Web 服务器,因此我有负载平衡和链路故障转移。

问题是我似乎无法分辨172.16.0.120从数据包来源网关路由数据包。而且似乎如果我尝试一个链接或另一个链接,只有一个处于活动状态(实际上不是活动的,数据包总是通过同一个路由器发送)。这取决于我最后添加的路由。

我做的事情是这样的:

ip rule add from 172.16.0.1 table 1
ip rule add from 172.16.0.3 table 2
ip route add 172.16.0.0/24 dev eth1 scope link table 1
ip route add 172.16.0.0/24 dev eth1 scope link table 2
ip route add default via 172.16.0.1 dev eth1 table 1
ip route add default via 172.16.0.3 dev eth1 table 2
ip route add default scope global nexthop via 172.16.0.1 dev eth1 weight 1 nexthop via 172.16.0.3 dev eth1 weight 1

用这个应该可以将数据包发送到它们来自的地方。但是它不起作用。

也许这里需要一些 iptables 魔法。

相关内容