Linux服务器群集的负载均衡(札记)(3)

解决一:
Linux内置有过滤arp请求,直接响应
arp_announce 
三个级别:0,default默认级别,用任何地址,能回答就回答
1, 尽量不用在不同子网和子接口的地址
2, 用最好的本地地址回答
arp_ignore   直接忽略
8个级别:0:default  默认
          1:仅仅和请求的本地地址接口的地址一样才响应,否则ignore。
          2.3…4…5..6..7..8
用sysctl –a |grep announce 可以查看arp_announce系统配置情况
同样sysctl  -a|grep ignore  查看arp_ignore的系统配置情况
默认都为0
所以在director上的配置:
一块网卡:eth0 192.168.2.10  
 vip是拿eth0的子接口来充当eth0:0  
Ifconfig  eth0:0  192.168.2.100 netmask  255.255.255.255
#ipvsadm -A -t 192.168.2.100:80 -s  rr
# ipvsadm -a -t 192.168.2.100:80 -r 192.168.2.20 -g
# ipvsadm -a -t 192.168.2.100:80 -r 192.168.2.30 -g
在所有的real server上边配置:
vip都是拿lo口的子接口来充当lo:0
Ifconfig lo:0  192.168.2.100  netmask 255.255.255.255
route  add  -host 192.168.2.100  dev lo:0  //配置一条路由强制返回时通过lo:0
vim   /etc/sysctl.conf
添加下边的两行,其实只需要all就可以了。all包含所有接口
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
sysctl  -p
测试:
访问

Linux服务器群集的负载均衡(札记)


通过在director上ipvsadm  -Ln查询流量的分发

Linux服务器群集的负载均衡(札记)


因为权重没写,默认为1,所以采用轮回调度算法后,访问比例为1:1
解决二:
用iptables过滤arp。貌似有点困难。。。。
这个我还没认真做过,大家有想法的可以去尝试,嘿嘿。。。

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/ppjxd.html