在前面我们已经搭建过LVS的DR模式和NAT模式,那么我们接下来介绍下下TUN模式
TUN隧道模式
IP隧道(IP tunneling)是将一个IP报文封装在另一个IP报文的技术,这可以使得目标为一个IP地址的数据报文能被封装和转发到另一个IP地址。IP隧道技术亦称为IP封装技术(IP encapsulation)。IP隧道主要用于移动主机和虚拟私有网络(Virtual Private Network),在其中隧道都是静态建立的,隧道一端有一个IP地址,另一端也有唯一的IP地址
TUN模式下LVS配置
1.在server1,2,3上都安装ipip模块,因为在虚拟服务器和真实服务器之间是通过隧道实现数据包的传输的
modprobe ipip
ip link set uo tunl0 激活隧道
2.通过隧道添加对外的vip在server1,2,3上
ip addr add 172.25.77.100/24 dev tunl0
3.因为在一个局域网内,如果三台服务器有着相同的ip,那么会发生冲突,我们就可以利用server2和server3上的ip端口对外隐藏
在server2,3上打开arptables_jf : /etc/init.d/arptables start
添加DROP策略 arptables -A IN -d 172.25.77.100 -j DROP
server3同2相同
4.在server2和server3上修改rp_filter参数
sysctl -w net.ipv4.conf.tunl0.rp_filter=0
为什么要修改这个参数呢?是因为:
rp_filter参数用于控制系统是否开启对数据包源地址的校验。
有三个值,0、1、2,具体含义:
0:不开启源地址校验。
1:开启严格的反向路径校验。对每个进来的数据包,校验其反向路径是否是最佳路径。如果反向路径不是最佳路径,则直接丢弃该数据包。
2:开启松散的反向路径校验。对每个进来的数据包,校验其源地址是否可达,即反向路径是否能通(通过任意网口),如果反向路径不同,则直接丢弃该数据包。
server3同2相同
5.在server1上清除之前的策略并重新添加策略
ipvsadm -C #清除策略
ipvsadm -A -t 172.25.77.100:80 -s rr #添加vip,对后端服务器采用rr算法
ipvsadm -a -t 172.25.77.100:80 -r 172.25.77.2:80 -i #添加后端真实服务器server2 -i:tun隧道模式
ipvsadm -a -t 172.25.77.100:80 -r 172.25.77.3:80 -i #添加后端真实服务器servere3
6.在真机测试,注意要开启server2,3的httpd