主机 | ip | 服务 |
---|---|---|
server1 | 172.25.16.1 | ipvsadm调度器 |
server2 | 172.25.16.2 | RealServer1 apache服务 |
server3 | 172.25.16.3 | RealServer2 apache服务 |
物理真机机 | 172.25.16.250 | 模拟客户端测试服务 |
VIP | 172.25.16.100 | 连接服务用的ip |
真机挂载好yum源(不会就点这句话)
虚拟机修改yum源
vim /etc/yum.repos.d/yum.repo
[iso]
name=iso
baseurl=http://172.25.16.250/iso6.5
gpgcheck=0
[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.16.250/iso6.5/LoadBalancer
gpgcheck=0
enabled=1
安装软件
yum install ipvsadm -y
以server2为例3的操作是一样的
yum install -y httpd
vim /var/www/html//index.html
server2
/etc/init.d/httpd start
chkconfig httpd on
添加一个监控的vip
查看现有策略
ipvsadm -A -t 172.25.16.100:80 -s rr
ipvsadm -l
ipvsadm -a -t 172.25.16.100:80 -r 172.25.16.2:80 -g
ipvsadm -a -t 172.25.16.100:80 -r 172.25.16.3:80 -g
ipvsadm -l
/etc/init.d/ipvsadm save
server1
ip addr add 172.25.16.100/24 dev eth1
server2和3
ip addr add 172.25.16.100/32 dev eth1
注意:
在server2和server3中之所以将子网掩码设置成32,是因为请求从调度器过来时,不对外提供服务的,只提供内部通信就好
真机访问vip
查看在此网段下绑定100这个ip的MAC地址
curl 172.25.16.100
arp -an | grep 100
查看server3的MAC地址是否一样
清除绑定的MAC地址
再次访问vip
arp -d 172.25.16.100
curl 172.25.16.100
清除绑定,再次访问
arp -d 172.25.16.100
curl 172.25.16.100
查看此时绑定的MAC地址
对比server1
可见只有在绑定MAC地址为server1时才能轮巡,这样是不合理的,我们需要在server2和3的路由策略
server2和3的配置过程是一样的,区别只在172.25.16.2要改为172.25.16.3
安装arp路由策略软件
yum install arptables_jf -y
增添策略
arptables -A IN -d 172.25.16.100 -j DROP
######当网内广播需要172.25.16.100这个ip时,它将丢弃网内的所有请求
arptables -A OUT -s 172.25.16.100 -j mangle --mangle-ip-s 172.25.16.2
######当往外传数据时伪装成172.25.16.2这个ip进行工作
/etc/init.d/arptables_jf save
#####保存策略
/etc/init.d/arptables_jf start
######开启服务
真机测试
chkconfig +服务 on 可以把服务设置为开机启动
下次重启的时候我们只需要server1手动添加vip172.25.16.100/24
server2和3添加vip172.25.16.100/32就行了