请教:关于Heartbeat配置的问题

现在在研究热机双备,有这样一种情况,不知道大家遇到没:
1,备份的服务器为网关,服务器上有进程ProcessA,在服务器启动时进程ProcessA就加载了,且绑定IP地址为外网IP202.114.18.20,进程ProcessA的启动无法控制,不能由Heartbeat由脚本来控制
2,现在假设使用Heartbeat来做双机热备,Active端为A,Standby端为B,因为无法使用脚本来控制ProcessA的start和stop,所以不能在一
启动时就使用公共IP地址202.114.18.20,不然Active端就会和Standby端IP冲突。
不知道大家有没有好的想法可以解决这个问题。

有一个思想不知道可以解决这个问题,大家可帮忙参考一下,也许不可行
首先在启动时Active端ProcessA绑定在ip10.1.1.1,standby端ProcessA绑定在ip10.1.1.2,这样就在两个都启动时不会ip地址冲突,
然后可以写脚本完成下面的操作,
当Active端启动时:
Active端可以在数据链路层做如下转换,在流入网卡的数据包中如果检测到dest IP地址为202.114.18.20的,则将dest ip改为10.1.1.1,然后从应用层成发出去的数据包,如果src ip为10.1.1.1,则将src ip改为202.114.18.20,
当Active端down掉后,standby端则执行如下操作,
在Standby端可以在数据链路层做如下转换,在流入网卡的数据包中如果检测到dest IP地址为202.114.18.20的,则将dest ip改为10.1.1.2,然后从应用层成发出去的数据包,如果src ip为10.1.1.2,则将src ip改为202.114.18.20。

Active端恢复时可以将这个转换消除。

不知道这个方法可以由iptables实现吗?
或者大家有更好的方法解决我上面遇到的这个问题。

谢谢大家了!!!^_^

Forums:

我也遇到了同样的问题,不知道怎么解决,没有人知道吗?

randomness