一.LVS/TUN模式
(1)IP隧道技术又称为IP封装技术,它可以将带有源和目标IP地址的数据报文使用新的源和目标IP进行第二次封装,这样这个报文就可以发送到一个指定的目标主机上;
(2)VS/TUN模式下,调度器和后端服务器组之间使用IP隧道技术。当客户端发送的请求(CIP–>VIP)被director接收后,director修改该报文,加上IP隧道两端的IP地址作为新的源和目标地址,并将请求转发给后端被选中的一个目标;
(3)当后端服务器接收到报文后,首先解封报文得到原有的CIP–>VIP,该后端服务器发现自身的tun接口上配置了VIP,因此接受该数据包。
(4)当请求处理完成后,结果将不会重新交给director,而是直接返回给客户端;在后端服务器返回给客户端数据包时,由于使用的是普通网卡接口,根据一般的路由条目,源IP地址将是该网卡接口上的地址,例如是RIP。因此,要让响应数据包的源IP为VIP,必须添加一条特殊的路由条目,明确指定该路由的源地址是VIP。
二.VS/TUN的优缺点:
<1>优点:
不需要调度应答报文,负载能力强;
服务器和调度器可以不在同一个VLAN中;
支持广域负载均衡;
<2>缺点:
所有的服务器必须支持“IP Tunneling”协议,需安装内核模块,安装复杂;
建立IP隧道的开销大;
服务器需要联通外网,风险较大;
不支持端口映射;
三.实验操作
在后台服务器上
[root@server2 ~]# modprobe ipip
[root@server2 ~]# ip addr del 172.25.78.100/32 dev eth0
[root@server2 ~]# ip addr add 172.25.78.100/32 dev tunl0
[root@server2 ~]# ip link set up tunl0
[root@server2 ~]# ip addr show
[root@server2 ~]# sysctl -a | grep rp_filter # 查看反向检验参数,-a表示显示所有的参数,rp_filter参数用于控制系统是否开启对数据包源地址的校验
因为隧道模式实现的是不同网段的主机进行通信,如果信息要从服务端返回到客户端时,由于客户端和服务端不在同一个网段,数据根本出不去,所以我们需要关闭反向参数检验
0:不开启源地址校验。
1:开启严格的反向路径校验。对每个进来的数据包,校验其反向路径是否是最佳路径。如果反向路径不是最佳路径,则直接丢弃该数据包。
[root@server2 ~]# sysctl -w net.ipv4.conf.lo.rp_filter=0 # -w表示临时改变某个指定参数的值
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
[root@server2 ~]# vim /etc/sysctl.conf
net.ipv4.conf.default.rp_filter = 0
[root@server2 ~]# sysctl -p # -p表示从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载,使修改生效
[root@server2 ~]# sysctl -a | grep rp_filter 全都变为0