我使用直接路由模式。 如何使用虚拟服务ip(VIP)使Director(DIR)可用的负载均衡服务?
当我尝试从DIR连接到VIP时,Linux(3.2.0)发现VIP绑定到本地接口,并使用VIP本身作为源地址。
TCPDUMP:
08:47:51.573100 IP VIP.34762 > VIP.ssh: Flags [S]
根据tcpdump,数据包不会被转发。 Ipvsadm确实看到一个额外的非活动连接。 即使它被转发,也没有关系,因为realserver(RS)将不能发送回复,因为它不知道要发送到哪里(RS具有绑定到lo接口的VIP)。
恕我直言,解决办法是强制DIR从不创build与VIP作为源地址的数据包。 连接到VIP时,应使用DIR IP作为源地址。
但是,另一个问题可能是,IPVS不在回送接口上进行侦听。
# ip route get VIP local VIP dev lo src VIP
我可以使用iptables来重写数据包,但是这感觉很不好。
TIA。