实验准备:
开启3台虚拟机,配置好yum源
server1 172.25.35.1(调度服务器)
server2 172.25.35.2(后台服务器)
server3 172.25.35.3(后台服务器)
###server1(调度服务器)
1.安装ipvsadm
yum install -y ipvsadm
2.开启ipvsadm服务
touch /etc/sysconfig/ipvsadm
systemctl start ipvsadm.service
systemctl status ipvsadm.service
3.添加策略
ipvsadm -A -t 172.25.35.100:80 -s rr ##调度策略为rr轮询算法
ipvsadm -a -t 172.25.35.100:80 -r 172.25.35.2:80 -g ##添加两个后端服务器rs
ipvsadm -a -t 172.25.35.100:80 -r 172.25.35.3:80 -g
cat /etc/sysconfig/ipvsadm ##直接查看文件,策略不生效
systemctl restart ipvsadm.service
cat /etc/sysconfig/ipvsadm ##重启服务后,策略生效
ipvsadm -l ##查看策略 较慢
ipvsadm -ln ##不解析 查看策略 较快
vim /etc/sysconfig/ipvsadm-config ##修改ipvsadm配置文件
18 IPVS_SAVE_ON_RESTART="yes" ##
给调度器添加vip:
ip addr add 172.25.35.100/24 dev eth0
systemctl restart ipvsadm.service ##重启服务
#######server2(后台服务器)
systemctl start httpd ##打开httpd服务
systemctl status httpd
ip addr add 172.25.35.100/24 dev eth0 添加vip
###### #server3(后台服务器)
systemctl start httpd ##打开httpd服务
systemctl status httpd
ip addr add 172.25.35.100/24 dev eth0 ##添加vip
cd /etc/httpd/conf.d/
mv vhost.conf /tmp ##关闭虚拟服务器,移走vhost.conf文件
systemctl restart httpd ##重启httpd服务
##测试主机:
curl 172.25.35.100
结果:随机添加server1/2/3 中任一MAC主机
若添加server1 MAC地址 可以轮询
若添加server2/3 MAC地址 只可访问2/3 发布目录
##解决方法:
##添加arptable策略解决##
arptables是用户空间工具,用来管理 linux内核中的ARP规则表.这些规则用来
检查ARP帧.arptables类似于iptables,但没有那么复杂.iptables工作于ip层,
用于对ip包进行管理.arptables工作与arp协议层,用于对arp数据帧进行管理.
arptables可以像iptables那样对arp数据帧进行各种规则设置,可以ACCEPT,
DROP等
在两台rs(server2和server3)上安装arptables:
#####server2
yum install -y arptables_jf
arptables -nL ##查看策略
arptables -A INPUT -d 172.25.35.100 -j DROP
##添加策略,让目的地址为172.25.35.100的访问不能到达rs
-d, --destination [!] address[/mask]目的地址
-j, --jump target跳到目标
arptables -A OUTPUT -s 172.25.35.100 -j mangle --mangle-ip-s 172.25.35.2
arptables-save > /etc/sysconfig/arptables
cat /etc/sysconfig/arptables
systemctl start arptables.service
#####server3
yum install -y arptables_jf
arptables -nL
arptables -A INPUT -d 172.25.35.100 -j DROP
arptables -A OUTPUT -s 172.25.35.100 -j mangle --mangle-ip-s 172.25.35.3
arptables-save > /etc/sysconfig/arptables
cat /etc/sysconfig/arptables
systemctl start arptables.service
####测试主机
arp -d 172.25.35.100
curl 172.25.35.100
轮询访问成功