LVS的TUN模式(隧道模式)
工作流程:
1)客户请求数据包,目标地址VIP发送到LB上。
2)LB接收到客户请求包,进行IP Tunnel封装。即在原有的包头加上IP Tunnel的包头。然后发送出去。
3)RS节点服务器根据IP Tunnel包头信息(此时就又一种逻辑上的隐形隧道,只有LB和RS之间懂)收到请求包,然后解开IP Tunnel包头信息,得到客户的请求包并进行响应处理。
4)响应处理完毕之后,RS服务器使用自己的出公网的线路,将这个响应数据包发送给客户端。源IP地址还是VIP地址。
搭建环境
真机:做客户端
虚拟机server3(172.25.76.3):做lvs调度器(DS)
虚拟机server2(172.25.76.2):做后端的web服务器2(RS)
虚拟机server1(172.25.76.1):做后端的web服务器1(RS)
server3中:
modprobe ipip 添加ipip模块
ip addr add 172.25.66.100/24 dev tunl0 在隧道网卡上添加vip
ipvsadm -A -t 172.25.66.100:80 -s rr
ipvsadm -a -t 172.25.66.100:80 -r 172.25.66.2:80 -i 隧道模式
ipvsadm -a -t 172.25.66.100:80 -r 172.25.66.1:80 -i
ip link set up tunl0 激活(是unknow,只要不是down就可以)
server2和server1中:
modprobe ipip 添加隧道模块
ip addr add 172.25.66.100/32 dev tunl0
ip link set up 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 使设置生效
测试:
curl 172.25.66.100