通过 VM iproute 多个 ADSL 负载均衡器

Dre*_*son 10 ubuntu load-balancing upload iproute2

很长一段时间(2 年?)我一直在运行具有非常基本的出站负载平衡功能的虚拟机(Ubuntu 12.04 服务器),从不同的 ADSL 路由器发送不同的出站连接。

通过使用没有 NAT 伪装的 iproute 进行简单配置,NAT 由出站 ADSL 路由器本身管理,允许连接绕过负载平衡路由器 VM 直接路由回发送方。路由器 VM 上也没有防火墙规则 (iptables)。

echo 1 > /proc/sys/net/ipv4/ip_forward

# flush initially
ip route flush cache

# remove whatever is there for the default to begin with
ip route delete default

# default load balancing rule
ip route add default scope global \
    nexthop via ${ROUTER2} dev ${INTERFACE} weight 6 \
    nexthop via ${ROUTER1} dev ${INTERFACE} weight 4
Run Code Online (Sandbox Code Playgroud)

这在很长一段时间内一直运作良好。

我最近将负载均衡器(Ubuntu 12.04 服务器虚拟机)升级 (do-release-upgrade -d) 到 Ubuntu 14.04。

由于使用上述“ip route add default”命令升级互联网连接会导致偶发性连接问题并造成无法使用的体验。几乎就像是通过两个路由器而不是完全连接发送单个数据包一样。

已在第二个 14.04 虚拟机上尝试过,效果相同。

我希望在 Ubuntu 14.04(当前内核:3.13.0-24)上拥有相同的功能。我不明白发生了什么变化。

有什么建议?

sto*_*her 2

我意识到原来的海报不再需要解决方案,但这是我对此问题的最佳解决方案的看法。我还意识到发帖者更喜欢使用 Ubuntu,但是像这样手动配置路由规则对于将所有权转让给其他人甚至几年后引用自己来说并不是很好。

我个人建议使用 PFSense VM 进行更强大的设置来平衡连接的负载。我可能还建议在 PFSense 盒子本身而不是调制解调器上执行 NAT。我在虚拟机中配置了与此类似的东西,并且运行良好。

对于调制解调器和 PFSense VM 之间的连接,我使用支持 VLAN 的交换机将 3 个独立的 VLans 连接到 VM,并将它们分成交换机上的 3 个独立端口。这实际上提供了从每个调制解调器到 pfsense 盒的直接(虚拟)电缆以及到 LAN 的另一根电缆。然后,您可以将调制解调器配置为直通,具体设置因提供商而异。

确实,这回避了问题而不是直接解决问题,但在我看来,将 NAT 放在调制解调器本身上就像是自找麻烦。此外,PFSense 是专门设计为预封装路由器解决方案的,因此它支持并将继续使用此类配置进行测试,通过升级确保更好的可靠性。