TUN的LVS负载均衡
在LVS(NAT)模式的集群环境中,由于所有的数据请求及响应的数据包都需要经过LVS调度器转发,如果后端服务器的数量大于10台,则调度器就会成为整个集群环境的瓶颈。我们知道,数据请求包往往远小于响应数据包的大小。因为响应数据包中包含有客户需要的具体数据,所以LVS(TUN)的思路就是将请求与响应数据分离,让调度器仅处理数据请求,而让真实服务器响应数据包直接返回给客户端。其中,IP隧道(IP tunning)是一种数据包封装技术,它可以将原始数据包封装并添加新的包头(内容包括新的源地址及端口、目标地址及端口),从而实现将一个目标为调度器的VIP地址的数据包封装,通过隧道转发给后端的真实服务器(Real Server),通过将客户端发往调度器的原始数据包封装,并在其基础上添加新的数据包头(修改目标地址为调度器选择出来的真实服务器的IP地址及对应端口),LVS(TUN)模式要求真实服务器可以直接与外部网络连接,真实服务器在收到请求数据包后直接给客户端主机响应数据。
实验环境配置
server1 为lvs的服务主机
server2 为后端服务器1
server3 也为后端服务器2
1,server1配置
modprobe ipip #添加隧道模式模块
ip addr show # 多出一个tunl0网卡
ip addr add 172.25.88.100/24 dev tunl0 #添加IP
ip link set up tunl0 #激活tunl0网卡
ipvsadm -A -t 172.25.88.100:80 -s rr
ipvsadm -a -t 172.25.88.100:80 -r 172.25.88.2:80 -i
ipvsadm -a -t 172.25.88.100:80 -r 172.25.88.3:80 -i
ipvsadm -Ln
cat /etc/sysconfig/ipvsadm #文件方式查看策略
2,server2配置
modprobe ipip
ip addr add 172.25.88.100/24 dev tunl0
ip link set up tunl0
ip addr show
因为隧道模式,有反向校验的功能要关闭效验,
sysctl -a | grep re_filter #修改内核效验功能为0
sysctl -w net.ipv4.conf.all.rp_filter=0 # -w为临时改变
sysctl -w net.ipv4.conf.default.rp_filter=0
sysctl -w net.ipv4.conf.eth0.rp_filter=0
sysctl net.ipv4.conf.tunl0.rp_filter=0
3,server3配置
modprobe ipip
ip addr add 172.25.88.100/24 dev tunl0
ip link set up tunl0
ip addr show
因为隧道模式,有反向校验的功能要关闭效验,
sysctl -a | grep re_filter #修改内核效验功能为0
sysctl -w net.ipv4.conf.all.rp_filter=0 # -w为临时改变
sysctl -w net.ipv4.conf.default.rp_filter=0
sysctl -w net.ipv4.conf.eth0.rp_filter=0
sysctl net.ipv4.conf.tunl0.rp_filter=0
modprobe -r ipip #卸载网卡
4,真机测试
curl 172.25.88.100
server2 和 server 2轮询
来源:CSDN
作者:房渊
链接:https://blog.csdn.net/fangyuan1997/article/details/103658983