實驗環境 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發生了輪詢