企业项目实战----LVS负载均衡(TUN隧道模式)

前言

IP隧道(IP tunneling)是将一个IP报文封装在另一个IP报文的技术,这可以使得目标为一个IP地址的数据报文能被封装和转发到另一个IP地址。IP隧道技术亦称为IP封装技术(IP encapsulation)。IP隧道主要用于移动主机和虚拟私有网络(Virtual Private Network),在其中隧道都是静态建立的,隧道一端有一个IP地址,另一端也有唯一的IP地址。

实验环境

server1	172.25.64.1		调度器				版本企业六
server2	172.25.64.2		后端真实服务器		版本企业六
server3	172.25.64.3		后端真实服务器		版本企业六

部署TUN隧道模式

调度器(server1)
实验前提:调度器(server)已经配置好ipvsadm
不明白的可以先阅读《企业项目实战----LVS负载均衡(DR模式)》一文,链接:点击此处阅读

1、删除之前DR模式添加的策略
由于我刚部署了DR模式,所以现在得删除之前DR模式添加的策略。

[[email protected] html]# ipvsadm -C		#清空ipvsadm的策略

2、添加TUN隧道

[[email protected] html]# modprobe ipip		#添加模块(删除模块:modprobe -r ipip)
[[email protected] html]# ip a

企业项目实战----LVS负载均衡(TUN隧道模式)
3、给隧道添加Virtual IP

[[email protected] html]# ip addr del 172.25.64.100/24 dev eth7	##删除DR模式下绑定的Virtual IP
[[email protected] html]# ip addr add 172.25.64.100/24 dev tunl0	##给隧道添加Virtual IP

4、**隧道

ip link set up tunl0   ##**隧道
ip a

企业项目实战----LVS负载均衡(TUN隧道模式)
5、添加新的策略并保存

[[email protected] html]# ipvsadm -A -t 172.25.64.100:80 -s rr
[[email protected] html]# ipvsadm -a -t 172.25.64.100:80 -r 172.25.64.2:80 -i		##-i:指明为隧道模式
[[email protected] html]# ipvsadm -a -t 172.25.64.100:80 -r 172.25.64.3:80 -i
[[email protected] html]# ipvsadm -l
[[email protected] html]# /etc/init.d/ipvsadm save

企业项目实战----LVS负载均衡(TUN隧道模式)

真实服务器server2

1、添加隧道
2、给隧道添加Virtual IP
3、**隧道

[[email protected] ~]# modprobe ipip
[[email protected] ~]# ip addr del 172.25.64.100/32 dev eth0
[[email protected] ~]# ip addr add 172.25.64.100/32 dev tunl0
[[email protected] ~]# ip link set up tunl0

企业项目实战----LVS负载均衡(TUN隧道模式)

4、修改rp_filter参数全为0

[[email protected] ~]# sysctl -a | grep rp_filter	#查看
[[email protected] ~]# sysctl -w net.ipv4.conf.lo.rp_filter=0	#改其值为0

企业项目实战----LVS负载均衡(TUN隧道模式)
5、重新加载,解决顽固分子

[[email protected] ~]# sysctl -p  ##在重新加载
[[email protected] ~]# sysctl -a | grep rp_filter

企业项目实战----LVS负载均衡(TUN隧道模式)
##查看后发现仍有一个参数为1,此参数必须要从文件爱你中修改

[[email protected] ~]# vim /etc/sysctl.conf
net.ipv4.conf.default.rp_filter = 0			#改为0
[[email protected] ~]# sysctl -p  ##在重新加载

企业项目实战----LVS负载均衡(TUN隧道模式)
真实服务器server3

操作和真实服务器server2完全相同
1、添加隧道
2、给隧道添加Virtual IP
3、**隧道
4、修改rp_filter参数全为0
5、重新加载,解决顽固分子

为什么要修改rp_filter参数?

rp_filter参数用于控制系统是否开启对数据包源地址的校验。
有三个值,0、1、2,具体含义:
0:不开启源地址校验。
1:开启严格的反向路径校验。对每个进来的数据包,校验其反向路径是否是最佳路径。
	如果反向路径不是最佳路径,则直接丢弃该数据包。
2:开启松散的反向路径校验。对每个进来的数据包,校验其源地址是否可达,
	即反向路径是否能通(通过任意网口),如果反向路径不同,则直接丢弃该数据包。

测试:

客户端访问

[[email protected] ~]# curl 172.25.64.100

实现负载均衡!
企业项目实战----LVS负载均衡(TUN隧道模式)