lvs的深刻理解
时间:2010-11-03 来源:expert1
其实LVS搞起来非常简单,网上一搜一堆。现在又有了keepalived,一个keepalived.conf搞好了,o(╯□╰)o。
1,几个关键原理
1)为什么要绑一个vip到调度器里网卡上?
因为IP层在物理层上,先IP后物理,调度器是重写了client包的MAC,没有重写IP,假如没有VIP,肯定调度器接不到这个包,至于调度器重写mac,是在接到包之后的事
)2为什么要绑vip到real server的网卡上?
客户请求的IP是VIP,如果后端不绑定VIP的话,出去的包的源IP地址是不对的,客户端接收到这个包会丢掉
3)为什么要打开ip_forward(LVS/NAT)?
不让转发包,肯定被掉了,还做什么NAT啊?
4)LVS/DR的调度器能否只要一个VIP?不要自身的IP?
不行,假设一下场景
VIP=192.168.1.1
Director Server为A,DIP=192.168.1.2
Realserver为B,RIP=192.168.1.3
那么当有一个请求过来后,首先由director得到,然后lvs根据设置,需要将该请求修改后,广播给B。这时,他就需要B的MAC地址,当本地arp缓冲区中不存在时,A首先会广播arp消息,格式为who has 192.168.1.3? tell 192.168.1.2,然后由B响应请求
而如果A仅仅只有一个VIP,而没有DIP时,arp格式变为who has 192.168.1.3? tell 192.168.1.1,这时,B机收到arp请求后,会按照arp请求src地址192.168.1.1发送自己的信息,而由于B机本身就有VIP,所以此时不会广播出去。所以A机永远得不到B机的MAC地址。 5)为什么要关闭real server的arp广播? 靠,几个机器都配了一个vip,而他们都在一个网络内,发了arp广播,不会导致IP冲突吗?
VIP=192.168.1.1
Director Server为A,DIP=192.168.1.2
Realserver为B,RIP=192.168.1.3
那么当有一个请求过来后,首先由director得到,然后lvs根据设置,需要将该请求修改后,广播给B。这时,他就需要B的MAC地址,当本地arp缓冲区中不存在时,A首先会广播arp消息,格式为who has 192.168.1.3? tell 192.168.1.2,然后由B响应请求
而如果A仅仅只有一个VIP,而没有DIP时,arp格式变为who has 192.168.1.3? tell 192.168.1.1,这时,B机收到arp请求后,会按照arp请求src地址192.168.1.1发送自己的信息,而由于B机本身就有VIP,所以此时不会广播出去。所以A机永远得不到B机的MAC地址。 5)为什么要关闭real server的arp广播? 靠,几个机器都配了一个vip,而他们都在一个网络内,发了arp广播,不会导致IP冲突吗?
相关阅读 更多 +