本篇主要讲LVS的TUN模式,即IP隧道技术实现虚拟服务器 。
TUN模式的Real server是直接返回数据给客户端,不需要经过Diretor server,所有的请求报文经由Director Server,但响应报文必须不能进过Director Server,这大大降低了Diretor server的压力,但是弊端是:IP报文进行传递时不能跨过MTU传输单元。
1.首先清除之前的策略
ipvsadm -C
2.加载隧道模块(server1.2.3)
modprobe ipip
ip addr show
3.给server1的tunl0添加ip,并立即激活
ip addr add 172.25.80.100/24 dev tunl0
ip a
给server2与server3的tunl0添加ip(私有网段),并立即激活
ip addr add 172.25.80.100/32 dev tunl0
ip a
ip link set up tunl0
4.编写新策略在lvs1
ipvsadm -A -t 172.25.80.100:80 -s rr
ipvsadm -a -t 172.25.80.100:80 -r 172.25.80.2:80 -i
ipvsadm -a -t 172.25.80.100:80 -r 172.25.80.3:80 -i
5.关闭server2\3的内核反向过滤功能
rp_filter参数用于控制系统是否开启对数据包源地址的校验。
有三个值,0、1、2,具体含义:
0:不开启源地址校验。
1:开启严格的反向路径校验。对每个进来的数据包,校验其反向路径是否是最佳路径。如果反向路径不是最佳路径,则直接丢弃该数据包。
2:开启松散的反向路径校验。对每个进来的数据包,校验其源地址是否可达,即反向路径是否能通(通过任意网口),如果反向路径不同,则直接丢弃该数据包。
sysctl -a | grep rp_filter ##查询参数状态
sysctl -w net.ipv4.conf.tunl0.rp_filter=0
当有些配置修改不了时,可以修改子配置文件
vim /etc/sysctl.conf #修改配置文件
sysctl -p #加载配置
测试
ipvsadm -l ##查看调度状态