Linux HA心跳虚拟IP交换与链接到它的域名

我在两台服务器上设置了心跳,如下所示:

主人 :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表项。