实验环境 iptables和selinux关闭
CIP:172.25.254.68
VS(server2):172.25.254.2
Virtual IP: 172.25.254.100
RS(server3): 172.25.254.3
RS(server4):172.25.254.4
VS(server2):
modprobe命令用于智能地向内核中加载模块或者从内核中移除模块。
modprobe ipip 加载隧道模块,ip addr出现tunl0网卡
ip link set up tunl0 #启用网卡
ip addr add 172.25.254.100/24 dev tunl0 # 添加虚拟ip
配置yum仓库,加入LoadBalancer和HighAvailability
vim /etc/yum.repos.d/rhel-source.repo
写入策略
yum install ipvsadm -y 安装ipvsadm命令
ipvsadm -C ipvsadm -A -t 172.25.254.100:80 -s rr #添加地址为172.25.254.100:80的虚拟服务,指定算法为轮循
ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.3:80 -i #-i为tun模式
ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.4:80 -i
ipvsadm -ln
Server3:
yum install arptables_jf -y
arptables -F #清空策略
arptables -A IN -d 172.25.254.100 -j DROP #不缓存vip的MAC地址
arptables -A OUT -s 172.25.254.100 -j mangle --mangle-ip-s 172.25.254.3
/etc/init.d/arptables_jf save #保存策略
modprobe ipip #加载模块
ip link set up tunl0 #启用网卡
ip addr add 172.25.254.100/32 dev tunl0 #添加虚拟IP
Ip addr
yum install httpd -y
/etc/init.d/httpd start
cat /var/www/html/index.html
<h1>www.westos.org-server3</h1>
/etc/init.d/httpd restart
sysctl -a|grep .rp_filter #将过滤出的打开着的.rp_filter全部关闭
sysctl -w net.ipv4.conf.tunl0.rp_filter=0
Server4:
arptables -A IN -d 172.25.254.100 -j DROP
arptables -A OUT -s 172.25.254.100 -j mangle --mangle-ip-s 172.25.254.4
arptables -L
/etc/init.d/arptables_jf save #保存策略
modprobe ipip #加载模块
ip link set up tunl0 #启用网卡
ip addr add 172.25.254.100/32 dev tunl0 #添加虚拟IP
ip addr
yum install httpd -y
/etc/init.d/httpd start
cat /var/www/html/index.html
<h1>bbs.westos.org-server4</h1>
sysctl -a|grep .rp_filter
#将过滤出的打开着的.rp_filter全部关闭 sysctl -w net.ipv4.conf.tunl0.rp_filter=0 # tunl0/rp_filter 默认为1 , 需要改为0,关闭此功能。Linux的rp_filter用于实现反向过滤技术,也即uRPF,它验证反向数据包的流向,以避免伪装IP攻击 。
测试:
在真机172.25.254.68中测试
curl 172.25.254.100发生了轮询