我在两台服务器上设置了心跳,如下所示:
主人 :10.15.1.50
备份 :10.15.1.51
(虚拟IP: 10.15.1.52 )
所以,主人总是有10.15.1.52,但是如果下降,备份将会超过10.15.1.52。 这工作完美,并在10秒内失败。 我们有一个域名链接到10.15.1.52,所以当服务器故障时它是透明的。 我们注意到,尽pipeIP在10秒内切换,但在服务器实际通过域名访问之前可能需要10-20分钟。
我们有一个路由器转发端口80,因为10.15.1.52是一个私有IP。 这没有任何意义,因为我们实际上并没有改变域名registry中的任何内容。 一旦IP故障转移,备份服务器应该可以通过域名访问。
问题可能是路由器上的NAT吗? 这似乎是某种主机validation问题。
编辑:现在我想到了,这可能是路由器上的ARP表的问题
我几乎绝对确信arp不是你的问题。
Imho的问题是与dnat连接跟踪。
从一个系统接pipe另一个系统后,请查看路由器上的/proc/net/ip_conntrack
或/proc/net/nf_conntrack
。 您应该看到DNAT conntrack条目指向失败的系统。
所以如果真的如此,你应该search一个解决scheme来清除路由器上的特定conntrack表项。