Linux运维之LVS(TUN隧道模式)
- 什么是TUN隧道模式
LVS-TUNNEL模式:
1.客户端将访问vip报文发送给LVS服务器;
2.LVS服务器将请求报文重新封装,发送给后端真实服务器;
3.后端真实服务器将请求报文解封,在确认自身有vip之后进行请求处理;
4.后端真实服务器在处理完数据请求后,直接响应客户端。
要求:
1.lvs和后端真实服务器上都要有vip。
2.不会成为瓶颈。
3.请求的报文不能太大。
优点:
1.快速
2.不安全,不能抵抗DOS攻击
原理图:
- LVS的TUN隧道模式配置
配置环境准备:
三台rhel7.3版本的虚拟机
server1:ip为172.25.11.1 作为lvs调度服务器DS,并且安装了ipvsadm
server2:ip为172.25.11.2 作为后端服务器RS
server3:ip为172.25.11.3 作为后端服务器RS
并给四台虚拟机添加vip:172.25.11.100
在调度器server1上:
如果之前做过其他模式的规则,请务必清除
如果之前做过keepalived,请关闭
ipvsadm -C
systemcatl stop keepalived
添加隧道使用的模块
删除原来网卡上的vip,添加到tunl0上,并激活
modprobe ipip
ip addr del 172.25.11.100/24 dev eth0
ip addr add 172.25.11.100/24 dev tunl0
ip link set up tunl0
添加隧道规则:
ipvsadm -A -t 172.25.11.100:80 -s rr
ipvsadm -a -t 172.25.11.100:80 -r 172.25.11.2:80 -i
ipvsadm -a -t 172.25.11.100:80 -r 172.25.11.3:80 -i
在后端服务器server2和server3(rs)上:
modprobe ipip ##添加tunl模块
ip addr del 172.25.11.100/24 dev eth0
ip addr add 172.25.11.100/24 dev tunl0 ##添加vip到tunl上
ip link set up tunl0 ##激活tunl0
查看反向过滤规则并关闭反向过滤(如果开启,会对流入的数据包的反向路径进行校验,如果不符合要求)
sysctl -a | grep rp_filter ##查看反向过滤规则
sysctl -w net.ipv4.conf.all.rp_filter=0
sysctl -w net.ipv4.conf.default.rp_filter=0
sysctl -w net.ipv4.conf.eth0.rp_filter=0
sysctl -w net.ipv4.conf.tunl0.rp_filter=0
sysctl -p ##使生效
测试:
在物理机器 crul 172.25.11.100
发现轮询工作
END