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

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

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

只需使用 iproute 进行简单配置,无需 NAT 伪装,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

这一做法长期以来一直很有效。

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

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

已尝试使用第二个 14.04 虚拟机进行此操作,并得到相同的效果。

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

有什么建议么?

答案1

我知道原始发帖人不再需要解决方案,但这是我对这个问题的最佳解决方案的看法。我也知道发帖人更喜欢使用 Ubuntu,但像这样手动配置路由规则对于将所有权转让给他人甚至多年后引用自己来说并不好。

我个人建议使用 PFSense VM 来平衡连接负载,从而实现更强大的设置。我可能还建议在 PFSense 盒本身而不是调制解调器上执行 NAT。我在 VM 中配置了类似的东西,效果很好。

对于调制解调器和 PFSense VM 之间的连接,我使用支持 VLAN 的交换机将 3 个单独的 VLAN 连接到 VM,并将它们分流到交换机上的 3 个单独端口。这实际上提供了从每个调制解调器到 pfsense 盒的直接(虚拟)电缆和另一条电缆到局域网。然后,您可以配置调制解调器以进行直通,这因提供商而异。

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

相关内容