我发现的一切都是为了 WAN 负载平衡。我们的客户希望有一个设置,其中两个服务器连接到同一个路由器。对于连接到路由器的外部网络设备,它们认为它们正在直接与服务器通信。这个想法是,如果一台服务器出现故障,那么它会故障转移到另一台服务器。服务器还需要通过同一个路由器访问互联网,因此路由器是网关。来自路由器外部网络设备的流量需要转发到服务器上的某个端口。当然,每台服务器都有不同的 IP 地址,但两者都通过端口 1024 与网络设备通信。
是否存在可以做到这一点的 LAN 负载平衡路由器?
答案1
好吧,负载平衡和“故障转移功能”是两码事。Windows Server 操作系统具有故障转移群集功能,您应该使用它。以下内容摘自这里:
A failover cluster is a group of independent computers that work together to increase the
availability and scalability of clustered roles (formerly called clustered applications and
services). The clustered servers (called nodes) are connected by physical cables and by software.
If one or more of the cluster nodes fail, other nodes begin to provide service (a process known as failover).
In addition, the clustered roles are proactively monitored to verify that they are working properly. If they are not working,
they are restarted or moved to another node.
更新
对于定制软件,我建议在故障转移群集中使用至少两个 HyperV 节点。每个节点都可以将虚拟机绑定到安装了软件的群集。无需重新编码应用程序,如果主虚拟机发生故障,并且其他虚拟机无法访问,则另一个节点将接管。请参阅这个例子。
答案2
从您的措辞中无法清楚看出您使用了什么软件或什么方法来解决这个问题,但是当您说“我发现的一切都是为了 WAN 负载平衡”时,这就是问题的一部分。
不存在特定于 WAN 或特定于 LAN 的负载平衡。这完全取决于配置和选项。我建议使用软件负载平衡器,例如在mod_proxy
Ubuntu 等 Linux 上运行的 Apache。因此,如果我要推荐一种处理此问题的方法,我会建议以下方法。
- 您的客户在路由器后面有两台服务器,对吗?假设它们的 IP 地址为 10.10.10.1 和 10.10.10.2。好的,现在您需要添加第三台服务器,该服务器将用作负载平衡器,我们为该机器指定 IP 地址 10.10.10.0。按要求配置它,将 10.10.10.0 负载平衡到 10.10.10.1 和 10.10.10.2。
- 确保负载均衡器在路由器上有一个外部 IP 地址,该地址会将外部流量引导至 10.10.10.0。假设外部 IP 地址为 99.12.34.0。
- 现在,当有人连接到该外部 IP 地址时,路由器将知道将所有流量从 99.12.34.0 路由到 10.10.10.0。然后 10.10.10.0 将根据需要路由到 10.10.10.1 和 10.10.10.2。
这应该可以解决问题。
但是,如果您正在寻找硬件解决方案,它可能是相同的基本架构,但硬件路由器将取代运行的 Apache 服务器mod_proxy
。在我看来,这是六比一,半打一比二。您自己选择。
但一般来说,WAN 与 LAN 的网络架构不应该成为一个因素。
答案3
您的客户要求服务器负载平衡,并且有许多硬件和软件解决方案来实现该行为,如果您在搜索中使用这些词,则会有很多选项。
答案4
您可以将流量从路由器转发到负载均衡器虚拟 IP(VIP),然后 LB 将平衡内部服务器上的负载。
[Router]
192.168.1.10
|
[Load Balancer] (Kemp, F5, cisco, or zen load balancer)
| |
[Srv1] [Srv2]