![多个服务器可以响应单个 IP 吗?](https://linux22.com/image/576920/%E5%A4%9A%E4%B8%AA%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%8F%AF%E4%BB%A5%E5%93%8D%E5%BA%94%E5%8D%95%E4%B8%AA%20IP%20%E5%90%97%EF%BC%9F.png)
想象一个面向互联网的负载均衡器,将请求发送到本地网络中的多个工作服务器。
有没有办法让工作服务器直接在原始套接字/连接/IP 上做出响应,或者他们有响应负载均衡器,以便它转发响应(使其成为单次功率因数校正)?
答案1
通常,对负载平衡请求的响应将直接发送到网关,而不是返回到负载平衡器。
因此,负载均衡器是入站请求,但由于出站请求直接到达网关,它可以绕过该 SPOF - 尽管由于 ACK 需要通过负载均衡器返回,但它仍然是毫无意义的。
一般来说你会二负载均衡器。在任何给定时间,只有一个负载均衡器拥有公共 IP 地址,并且它们之间运行心跳。一旦活动负载均衡器失去心跳(即崩溃、离线等),第二个负载均衡器就会接管 IP 地址。
答案2
有些负载均衡器会使用目标 NAT 透明地进行负载均衡,但负载均衡器仍需要查看返回流量,以便将其 NAT 回客户端打开连接的原始 IP。如果我打开与 10.10.10.10 的负载均衡器的连接,并且池中的服务器从其 IP 192.168.100.100 发回回复,我将丢弃该数据包,因为我不知道 192.168.100.100 是谁。我正在尝试与 10.10.10.10 对话。
您可以通过设置具有 VRRP 的双栈来避免负载平衡器中的单点故障,这样如果单个负载平衡器发生故障,另一个负载平衡器将接管其所有流量。VRRP 使用共享 MAC 地址和 IP 地址来实现无缝故障转移。
答案3
IP 网络无法直接实现这一点,您需要一些软件来帮助您,以便一个工作服务器充当负载均衡器,如果它发生故障,另一个工作服务器会自动接管负载均衡责任并开始处理到达负载均衡器 IP 地址的请求。因此,它们都必须运行负载均衡软件。您应该能够使用名为 HAProxy 的软件来做到这一点。您可以谷歌搜索“共享 IP”以继续您的研究。此解决方案自然会减少一个工作服务器的服务容量,因为它必须充当整个集群的负载均衡器。
顺便说一句,您可能会在服务器故障。
答案4
您可以将多个服务器的环回地址设置为相同(这称为别名)。此 IP 为外界所知。请求以此 IP 作为目标 IP 地址。负载平衡器可以根据负载平衡标准引导请求,并将请求引导到这些服务器之一。
是的,您可能会遇到多个服务器可以响应单个 IP 的情况。