我已经在运行Keepalived和HAproxy的DMZ中有一对思科ASA [0]和一对Linux机箱,作为另一对Windows服务器(也在DMZ中)的负载平衡故障转移对。 我确信Keepalived工作正常。 我可以成功从DMZ中的另一台主机ping虚拟地址(10.0.1.8); 当我在主站(10.0.1.6)上停止Keepalived时,在备份(10.0.1.7)接pipe虚拟地址之前,几个ping失败。 当我在主设备上重新启动Keepalived时,发生类似的一些故障。 当主服务器或辅助服务器处于活动状态时,此其他主机可以通过HAProxy查看两台Windows服务器上托pipe的网页。
虚拟IP地址有一个到外部地址的静态NAT映射(比如1.2.3.8)。 当我尝试从防火墙外部进行类似的testing时,ping到1.2.3.8只在主服务器处于活动状态时才起作用 – 当我停止主服务器上的Keepalived服务时,防火墙外的ping失败,而DMZ内的Ping成功。
我可以看到,当停止并重新启动Keepalived主虚拟IP地址时,虚拟IP地址的MAC地址条目发生了变化,所以ASA似乎知道主虚拟主机和备用主机何时处于活动状态。 但是,当辅助操作系统处于活动状态时,似乎拒绝入站stream量的NAT。 我最好的猜测是,ASA试图阻止这个地址被欺骗,但在这种情况下,我真的很喜欢ASA来允许它。 我不知道如何做到这一点(或从哪里开始,真的)。 有什么build议么?
[0] – 它实际上是一对故障转移configuration,但我认为这不是相关的。