![两个 ISP 上行链路之间的负载平衡](https://linux22.com/image/549657/%E4%B8%A4%E4%B8%AA%20ISP%20%E4%B8%8A%E8%A1%8C%E9%93%BE%E8%B7%AF%E4%B9%8B%E9%97%B4%E7%9A%84%E8%B4%9F%E8%BD%BD%E5%B9%B3%E8%A1%A1.png)
我有一个网络问题,但无法用谷歌找到答案。
我们目前在工作中有两个 ISP 盒(路由器),我想设置防火墙来保护本地主机上的内联网。问题是并不是每个人都使用同一个路由器。
这是我的问题:我怎样才能使所有流量发送到一个位置(防火墙负载均衡器),然后负载均衡器在两个路由器之间自动切换。
我不是网络专家,只具备子网 IP 寻址和防火墙(iptable)的基本知识,但我是一名高级 Linux 用户。
谢谢
答案1
我已发表评论以进一步说明,但通常当使用两个 ISP 来平衡出站流量的负载时,单个防火墙(或用于故障转移的防火墙对)具有多 WAN 功能(即具有至少三个独立接口;家庭/消费者路由器通常具有 LAN 和/或 LAN 交换机和 1 个 WAN 端口)。
该防火墙(一般来说)是网络上的默认网关,用于根据您的负载平衡和路由策略(例如循环、加权循环、源/目标 IP 等)进行 NAT 和路由 Internet 流量。
一个优秀的开源防火墙叫做普富思可以做到这一点,并且可以安装在商用 x86 硬件上(或阿利克斯嵌入式设备)。还有 Vyatta,它具有与思科 IOS 类似的命令行界面 (CLI)。
编辑
看起来您在每个 ISP 路由器/调制解调器后面都有两个物理上独立的网络。您有以下几种选择:
将两个网络合并到一个防火墙/路由器后面,该防火墙/路由器连接 ISP1 和 ISP2 并进行负载平衡。如果您不是需要隔离两个网络,并假设它们是小子网(/24s),这将更容易管理。
设置 LAN 内路由:核心路由器上至少需要有 4 个接口,两个 WAN 接口和两个 LAN 接口,并在它们之间进行路由/过滤(如果需要)。这稍微复杂一些,如果您采用开源/x86 路由,则需要更昂贵的路由器/防火墙或带有额外 NIC 的盒子,但它确实使两个网络保持隔离。
设置 VLAN 内路由:您可以使用 3 个接口,其中两个 WAN 和一个作为“单板路由器”配置中的虚拟 LAN (VLAN) 的中继端口。pfSense 可以做到这一点,但您需要一个支持 VLAN(第 2 层)的托管交换机才能做到这一点。我不建议这样做,因为这可能会变得复杂/昂贵,并且根据您的网络专业水平来衡量,这可能是过度的。
答案2
是的,首先我误读了这个问题,并写了一个通用(非精炼)指南,你可以读得稍微低一点,以防我理解错误,而这正是你想要达到的目的。重读后,我写道:
如果这是一个纯粹的内部网,并且没有来自网络外部的连接,就无法真正控制路由器的访问,除非在内联网机器和其连接之间放置另一个路由器,但我真的不推荐这样做。
路由器通常仅防火墙从一个接口到另一个接口(Internet <> Lan),并且它们不过滤内部连接(Lan <> Lan),我建议使用基本软件防火墙(例如 Windows 内置的防火墙)并将其设置为严格 - 仅允许来自选定连接的端口 80,您也可以使用 Apache/IIS 仅允许来自特定 IP 范围的连接。
.......
棘手!
这取决于您的网络拓扑,如果不知道更多信息,很难提供帮助。
通常,你需要一个支持两个连接的路由器,例如 DraytekVigor 2820(许多其他 - Google 2nd Wan/冗余 Wan 等等)。
但是,除非您有某种绑定连接(来自同一个 ISP),否则这两个连接将具有不同的 IP,并且任何连接到您的内部网的人都只能通过其中一个连接,因此您需要在那里设置规则。
(我本来想写更多,但后来我意识到我走错了路...如果我走的正确,请告诉我,我会继续)。
答案3
您当前的设置是什么(硬件等?),有多少台计算机连接到这个网络,每个人都需要访问互联网吗?
基本要点是:将两个互联网路由器连接到防火墙,禁用路由器中的桥接。使用绑定接口在两个连接之间进行负载平衡,然后将网络的其余部分连接到防火墙上的另一个以太网端口。在防火墙上设置 dhcpd 服务器,配置 iptables 以路由您的流量并作为您的防火墙。
如果希望设置完美,请在两台不同的机器上配置上述内容,并让它们以心跳方式运行。这样,当其中一台机器掉线(出于某种原因)时,另一台机器将接管。
答案4
也许你可以使用具有 MultiISP 的 Shorewall。