答案1
你所做的并不是 IP_VS 的预期用途。我认为你最好完全忘掉 IP_VS,使用不同的方法。
您在图表中提到了 VRRP。这是解决您问题的更明智的方法。但是请注意,VRRP 本身是为了冗余而不是负载平衡。如果只使用 VRRP 而不使用任何其他负载平衡方法,您的所有客户端将使用单个路由器,直到该路由器发生故障并且所有客户端都转移到另一个路由器。
您可以在路由器之间对客户端进行负载平衡,而无需使用 VRRP。您只需向客户端分配两个不同的网关 IP 地址即可。
这种最基本的负载平衡方法不允许您轻松地重新平衡流量,也不提供故障转移。通过 DHCP,您可以告诉客户端计算机使用两个路由器中的哪一个,但它将继续使用该路由器,即使该路由器变得过载。您只能在客户端断开连接并重新连接到网络时在路由器之间转移流量。
您不必将分配给物理接口的两个 IP 地址作为网关地址,而是可以将虚拟 IP 地址池分配给客户端。您使用的网关地址越多,路由器之间传输流量的粒度就越细。
例如,您可以分配 10 个不同的网关地址,并让每个路由器成为 5 个网关地址的主路由器。通过 DHCP,您可以在 10 个网关地址之间平衡客户端,并且 VRRP 可以允许每个地址在两个路由器之间独立进行故障转移。
如果涉及任何 NAT,则还有另一个警告。如果两个网关都在进行 NAT,则在网关之间对网关 IP 进行故障转移将导致所有使用该网关 IP 的客户端的已建立连接中断。解决这个问题是设置过程中最具挑战性的部分。好消息是,只要您很少在网关之间对网关 IP 进行故障转移,就不会给用户带来大问题。
如果每个路由器都能意识到从 LAN 收到的数据包属于另一个路由器进行 NAT 的连接,并通过两个路由器之间的链路转发该数据包,那么您可以做得更好。只有少量流量会通过该链路转发,而发送到您刚刚故障转移到另一个路由器的网关 IP 的大部分流量确实会通过客户端将其发送到的同一路由器上的 WAN 连接。