1.环境配置
1).在server1中:
删除之前的配置的DR模式策略
[root@server1 ~]# ipvsadm -l #查看之前的策略是直接路由模式
[root@server1 ~]# ipvsadm -C #清除之前策略
[root@server1 ~]# ipvsadm -l #再次查看已经没有
[root@server1 ~]# modprobe ipip #添加模块
[root@server1 ~]# ip a #查看网络配置信息多了tunl0隧道,此时tunl0的状态是关闭的
[root@server1 yum.repos.d]# ip addr del 172.25.6.100/24 dev eth0 #从eth0删除之前的172.25.6.100/24
[root@server1 yum.repos.d]# ip addr add 172.25.6.100/24 dev tunl0 #添加172.25.6.100到tunl0隧道
[root@server1 yum.repos.d]# ip a #查看是否添加成功
[root@server1 yum.repos.d]# ip link set up tunl0 #打开隧道
[root@server1 yum.repos.d]# ip a #再次查看,UNKNOWN表示已经打开
[root@server1 yum.repos.d]# ipvsadm -A -t 172.25.6.100:80 -s rr
[root@server1 yum.repos.d]# ipvsadm -a -t 172.25.6.100:80 -r 172.25.6.2:80 -i #-i表示隧道模式
[root@server1 yum.repos.d]# ipvsadm -a -t 172.25.6.100:80 -r 172.25.6.3:80 -i
[root@server1 yum.repos.d]# ipvsadm -l
[root@server1 yum.repos.d]# /etc/init.d/ipvsadm save # 保存策略
[root@server1 yum.repos.d]# cat /etc/sysconfig/ipvsadm #在系统文件中查看策略
2).在server2和server3中:
[root@server2 ~]# ip addr del 172.25.6.100/32 dev eth0 删除之前eth0上的273.35.6.200
[root@server2 ~]# modprobe ipip 添加ipip模块,会有tunl0出现
[root@server2 ~]# ip a #发现多了一个tunl0
[root@server2 ~]# ip addr add 172.25.6.100/32 dev tunl0 #添加172.25.6.100到tunl0
[root@server2 ~]# ip a
[root@server2 ~]# ip link set up tunl0
[root@server2 ~]# ip a #查看已经打开tunl0并添加ip到tul0
server3同步
3).关闭server2和server3中的反向过滤策略
linux系统反向过滤 系统在接收到一个IP包后,检查该IP是不是合乎要求,不合要求的IP包会被系统丢弃
server2:
[root@server2 ~]# sysctl -a | grep rp_filter #查看策略,全部修改i为0
[root@server2 ~]# sysctl -w net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.default.rp_filter=0
[root@server2 ~]# sysctl -w net.ipv4.conf.lo.rp_filter=0
net.ipv4.conf.lo.rp_filter = 0
[root@server2 ~]# sysctl -w net.ipv4.conf.eth0.rp_filter=0
net.ipv4.conf.eth0.rp_filter = 0
[root@server2 ~]# sysctl -w net.ipv4.conf.tunl0.rp_filter =0
net.ipv4.conf.tunl0.rp_filter =0
sysyctl -p #重新加载
如果命令修改不成功可以在/etc/sysctl.conf文件中直接修改
server3:同上
4).真机中测试
[root@foundation6 ~]# arp -d 172.25.6.100 #先清除
[root@foundation6 ~]# curl 172.25.6.100
<h1>servers2.example.com</h1>
[root@foundation6 ~]# curl 172.25.6.100
<h1>server3- www.westos.org</h1>
[root@foundation6 ~]# curl 172.25.6.100
<h1>servers2.example.com</h1>
[root@foundation6 ~]# curl 172.25.6.100
<h1>server3- www.westos.org</h1>
[root@foundation6 ~]# curl 172.25.6.100
<h1>servers2.example.com</h1>