####lvs####
#1.开3台虚拟机,在调度器上配置好yum源,这里是server1,在另外两台rs上安装httpd
[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.0.250/rhel6.5/x86_64/dvd/LoadBalancer
gpgcheck=0
#2.安装ipvsadm,编写调度策略
yum install -y ipvsadm
ipvsadm -l ##查看策略,size=4096()
lsmod ##查看内核模块
lsmod |grep ip_vs
ip_vs 125220 0
######DR模式######
#3.添加策略
ipvsadm -A -t 172.25.0.100:80 -s rr ##调度策略,rr轮询,ipvsadm --help看到,共10种调度算法
ipvsadm -a -t 172.25.0.100:80 -r 172.25.0.2:80 -g ##后端两个rs
ipvsadm -a -t 172.25.0.100:80 -r 172.25.0.3:80 -g
ipvsadm -l 查看策略
/etc/init.d/ipvsadm save ##保存策略
给调度器添加vip:
ip addr add 172.25.0.100/24 dev eth0
然后在物理机上测试访问,发现不能返回结果,但是ipvsadm -l可以看到调度是成功的
所以需要给rs上也添加vip
‘因为数据的走向是 client -> vs -> rs -> client’
server2和server3上:
ip addr add 172.25.0.100/32 dev eth0 ##子网掩码为32是因为这个ip不对外,只有自己用
再次测试,成功调度
#在物理机上,arp -an | grep 100 , 可以看到默认缓存的是server1的mac地址
#用arp -d 172.25.0.100清除缓存,再次访问时,可能就不轮询,因为可能缓存了某台rs的mac地址
#这样对rs来说不安全,因为直接访问到了后端rs
#访问量过大可能会宕机
##解决方法1:
##添加arptable策略解决##
arptables是用户空间工具,用来管理 linux内核中的ARP规则表.这些规则用来
检查ARP帧.arptables类似于iptables,但没有那么复杂.iptables工作于ip层,
用于对ip包进行管理.arptables工作与arp协议层,用于对arp数据帧进行管理.
arptables可以像iptables那样对arp数据帧进行各种规则设置,可以ACCEPT,
DROP等
在两台rs(server2和server3)上安装arptables:
yum install -y arptables_jf
arptables -L ##查看策略
arptables -A IN -d 172.25.0.100 -j DROP ##添加策略,让目的地址为172.25.0.100的访问不能到达rs
-d, --destination [!] address[/mask]目的地址
-j, --jump target跳到目标
a