之前使用lvs-dr模式配置负载均衡,昨天由于项目需求转为lvs-nat模式配置,于是在实验室环境下学习配置lvs-nat模式。问题在于,nat模式应有内外网之分,我的实验环境完全在同一网段。其中
clinet 169.254.222.150
VIP 169.254.222.200
负载均衡器LB 169.254.222.157
真实服务器RS1 169.254.222.155
真实服务器RS2 169.254.222.156
各个节点在同一网段的问题在于,client发送请求,LB转发至某一个RS(假设是RS1)后,RS1发送应答包。由于各节点在同一网段,RS1的应答数据包会直接发送至client,其数据包的源IP是RS1的IP169.254.222.155,而client并未向RS1发送过请求,所以将丢弃这些应答数据包,从client上来看,现象就是超时。
要解决这个问题,就要使真实服务器发往client的数据包,先经过LB,再发送至client。因此,我们在真实服务器RS1、RS2上添加一条路由规则,route add -host 169.254.222.254 gw 169.254.222.157。其实就是通过修改路由表,使得LB和RS1、RS2在一些转发规则上类似NAT。