关于ldirectord作dns负载均衡的问题

我配置了了一个dns的负载均衡,由两台pc组成,这两台pc同时承担director和real server的功能。两台服务器上分别运行named,ldirectord在两台pc之间互备。正常情况下,集群已经能正常工作。

但是有个问题:
1.初始状态为pc2上运行ldirectord,pc1,pc2分别运行named,用客户端脚本(是个死循环脚本)测试dns查询,正常;
2.停止pc1上的named服务,到pc2上查看ipvsadm -Ln,发现已经没有到pc1的项;
3.测试脚本间断地出现不能解析的现象,在pc1上运行tcpdump udp port 53 ,未发现从客户端发送的dns请求,说明请求没有被转发到pc1;
4.大概3分钟后,恢复正常
5.启动pc1上的named,到pc2上查看ipvsadm -Ln,发现到pc1的项已经恢复;
6.测试脚本未出现不能解析的现象,通过tcpdump udp port 53 发现在pc1上有从客户端发送的dns请求,说明请求被正常转发;

第二点的不能解析为什么要持续那么长的时间?

Forums:

感觉和ipvs的timeout有关

# ipvsadm -L --timeout
Timeout (tcp tcpfin udp): 900 120 300

我修改为:
# ipvsadm --set 900 120 30

这样,不能解析的时间大概在1分钟以内
但是,也不对,因为我从pc1上跟踪tcpdump udp port 53,没有发现ip包

randomness