CentOS 双 WAN - 负载平衡和故障转移

CentOS 双 WAN - 负载平衡和故障转移

我正在设置一个 Linux 服务器 (CentOS),用作具有负载平衡和故障转移功能的路由器(当一条互联网线路中断时,另一条线路将接管)。连接到 eth1 ( LAN ) 的客户端应该能够访问互联网。

我的参考(http://fatalsite.net/?p=90

接口:

eth1 = LAN

eth2 = WAN1 - 192.168.1.100 / 网关 192.168.1.1 - ISP1

eth3 = WAN2 - 192.168.10.5 / 网关 192.168.10.1 - ISP2

我怎么做?

谢谢你!


好的。所以我确实设置了 nat 并启用了转发,但仍然可以通过 LAN 接口访问互联网。

我也这样做过,但没有成功:

iptables -A INPUT -i eth2 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i eth3 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables --table nat --append POSTROUTING --out-interface eth2 -j MASQUERADE

iptables --table nat --append POSTROUTING --out-interface eth3 -j MASQUERADE

iptables --append FORWARD --in-interface eth1 -j ACCEPT

答案1

实际上,您提供的参考资料描述了网关路由器的解决方案。缺少的是本地局域网设置。如下所示:

  • 在两个接口上设置 NAT

iptables -t nat -A POSTROUTING -o eth2 -s -j MASQUERADE

iptables -t nat -A POSTROUTING -o eth3 -s -j MASQUERADE

  • 确保您已启用转发 ( sysctl -w net.ipv4.ip_forward=1)

  • 通过 ping 或尝试 http 请求检查 facebook.com 是否处于活动状态 - 如果处于活动状态,则不执行任何操作 ;-) 您可以假设如果 facebook.com 处于活动状态,则您的 WAN 链接工作正常。如果它已关闭 - 人们无论如何都会打电话给您大喊互联网已关闭,因为 facebook 不再工作。您可以编写一个脚本来执行此操作。

  • 如果连接中断,您只需执行一项任务:添加 IP 规则并通过故障转移 WAN 链接引导您的流量。如果主 WAN 再次打开,请删除规则并刷新缓存。像这样:

ip rule add from 1.2.3.0/24 table WAN2

ip route flush cache

或恢复流量:

ip rule delete from 1.2.3.0/24 table WAN2

ip route flush cache

  • 使更改永久生效。我不熟悉 CentOS,但 sysctl.conf 和 rc.local 应该对你有用。

  • 为什么您不必在您的盒子上切换默认网关?根据您的参考,您已经向不同的路由表添加了默认路由。这意味着,您的盒子仍然可以通过辅助路由表访问。是的,即使主网关死机,您也可以通过具有其自己的默认路由的辅助表访问它。

  • 我还会避免通过不同的提供商来平衡流量,因为负载平衡是基于路由缓存的,因此可能会导致许多无法识别的连接问题。我宁愿坚持使用故障转移。

  • 最后还有一件事——如果您的 WAN 链接是专用网络,您将无法通过其他方式从网络外部访问您的设备,除非重定向端口或设置 VPN 链接。在这种情况下,可能需要切换网关。

  • 供参考点击此处

相关内容