企业级负载均衡集群——lvs的TUN模式(隧道模式)详细说明
1.TUN模式的工作原理
TUN模式简称隧道模式,隧道模式就是修改请求报文的首部IP,再加一层IP报头
优点:DS和RS不需要在同一网段,可以实现不同网络之间的访问
数据流向如下
数据包从客户端发往DS服务器,DS服务器会根据调度策略确定要把请求给哪台RS,会在数据包外面再加一层IP报头
此时源IP从CIP(172.25.8.250)变为了VIP(DIP172.25.8.100)
目的IP从VIP(172.25.8.100)变为了RIP(172.25.8.2/172.25.8.3),数据包的请求来源就是DS调度器(172.25.8.100)
请求的目的地是RS(172.25.8.2/3),RS在接收到数据包之后,请求包的来源本来是CIP(172.25.8.250)
但是加了一层数据包之后变为了VIP(172.25.8.100),而RS服务器上也有172.25.8.100这个ip
所以RS会把IP包的报头拆开,拆开发现请求的数据包访问的还是自己的ip(172.25.8.2/3)
这时RS就会回复客户端的请求(跟DR模式类似,只不过多加了一层IP报头,封装IP守护)
Client --> DS(调度器) -->prerouting --> INPUT -->postrouting -->RS(真正的服务器)–>lo 回环接口–> 网卡eth0 -->Client
IP隧道技术又称为IP封装技术,它可以将带有源和目标IP地址的数据报文使用新的源和目标IP进行二次封装
这样这个报文就可以发送到一个指定的目标主机上
2.TUN模式中的名词解释
DS | 调度器,lvs的前端设备 |
---|---|
RS | 真正提供服务的后端服务器 |
RIP | 后端服务器的ip地址 |
DIP | 调度器和后端服务器通信的ip |
源IP | CIP(客户端的IP) |
目的IP | VIP(设置的统一入口),对外公布的ip,客户请求进来的ip |
客户端发送到lvs调度器的数据包:源地址:CIP(客户端IP)目标地址:VIP(DS服务器)
加了数据包报头之后:源地址:DIP(VIP)(DS服务器)目标地址:RIP(RS真正的服务器)
3.TUN模式的特点
隧道模式下,调度器和后端服务器组之间使用IP隧道技术,当客户端发送的请求(CIP–>VIP)被director接收后
director修改该报文,加上IP隧道两端的IP地址作为新的源和目标地址,并将请求转发给后端被选中的一个目标
当后端服务器接收到报文后,首先解封该报文原有的CIP—>VIP,该后端服务器发现自身的tun接口上配置了VIP,因此接受该数据包
当请求处理完成后,结果将不会重新交给director,而是直接返回给客户端。此时响应数据包的源IP为VIP,目标IP为CIP
realserver的RIP和director的DIP不用处于同一物理网络中,且RIP必须可以和公网通信。也就是说集群节点可以跨互联网实现
realserver的tun接口上需要配置VIP地址,以便接收director转发过来的数据包,以及作为响应的报文源IP
director转发给realserver时需要借助隧道,隧道外层的IP头部的源IP时DIP,目标IP是RIP
而realserver响应给客户端的IP头部是根据隧道内层的IP头分析得到的,源IP是VIP,目标IP是CIP
director只处理入站请求,响应请求由realserver自己完成
一般来说,TUN模式会用来负载调度缓存服务器组,这些缓存服务器一般放置在不同的网络环境,可以就近折返给客户端
在请求对象不在Cache服务器本地命中的情况下,Cache服务器要向源服务器发送请求,将结果取回,最后将结果返回给用户
4.搭建实验环境
一共需要3台rhel7.5版本的虚拟机
主机信息 | 主机的功能(服务) |
---|---|
真机172.25.8.250 | 客户端client |
server1(172.25.8.1) | lvs调度器(DS) |
server2(172.25.8.2) | 后端的web服务器1(RS) |
server3(172.25.8.3) | 后端的web服务器2(RS) |
在真机中开启三台虚拟机
1台做lvs调度器,两台做后端轮询的web服务器,用真机分别连接三台虚拟机,真机本身是客户端
5.实现lvs调度器的TUN模式
DR模式:给web1和web2使用arptables规则来丢弃客户端的第一次访问,使客户端直接找lvs服务器实现调度轮询,不可以跨网络访问
隧道模式:给web1和web2用关闭反向过滤规则来丢弃客户端的第一次访问,使客户端直接找lvs服务器实现调度轮询,可跨网络访问
本来客户端发来的数据包是:源ip是cip(172.25.12.250),目的ip是vip(lvs服务器172.25.12.100)
当客户端的数据包到达lvs服务器,会在原来的数据包上面加一层数据包报文头
源ip是lvs服务器(172.25.12.100),目的ip是(web服务器的ip:172.25.12.2/3)
此时这个数据包就会转发给web服务器,web服务器接收到数据包之后会拆包
发现里面的数据包的目的ip是172.25.12.100,此时自己上面刚好也有这个ip
就知道这个客户端就是问自己要资源了,所以web服务器直接把资源发送给客户端
这个和DR模式一样,都是一个方向的发送数据包,不回送数据包
(每封装一次,轮询设置web服务器的ip是目的ip)
隧道模式的172.25.12.100都是在隧道网卡上面进行设置的
当客户端第一次发送请求给172.25.12.100的时候,此时web1和web2服务器上面的172.25.12.100走不通(过滤规则)
因为只有lvs调度器上面才可以走通(上面有ipvs程序),才可以走通去调度
172.25.12.250—》172.25.12.100
172.25.12.100—》web
TUN隧道模式就是将传输报文头加一个IP进行封装,IP隧道可以跨网络
实验步骤如下
这个实验在上一个DR模式实验的基础上做的
- (1)在lvs服务器上面进行(server1)
ipvsadm -ln查看一下刚才的轮询调度访问策略
ipvsadm -C清除DR模式的策略
ipvsadm -ln再查看一下
lsmod查看模块(虚拟机上没有虚拟模块),准备加入隧道模块
lsmod | grep kvm在虚拟机上查看没有虚拟模块,在真机上查看有虚拟机模块
虚拟机没有kvm模块
真机有kvm模块
modprobe ipip加入隧道模块
ip a 可以看到多了一块网卡tunl0
ip addr del 172.25.12.100/24 dev eth0 将172.25.12.100从原来的网卡上ip删除
ip addr add 172.25.12.100/24 dev tunl0 放到隧道网卡上面
ip a查看网卡的状态是down
ip link set up tunl0激活网卡
ip a查看是unknow,只要不是down行了
在隧道模式里面添加策略:
ipvsadm -A -t 172.25.12.100:80 -s rr 设置轮询调度
ipvsadm -a -t 172.25.12.100:80 -r 172.25.12.2:80 -i 表示隧道模式,轮询web服务器1
ipvsadm -a -t 172.25.12.100:80 -r 172.25.12.3:80 -i 表示隧道模式,轮询web服务器2
systemctl restart ipvsadm.service重启服务使设置生效
cat /etc/sysonfig/ipvsadm查看策略文件
- (2)在web1和web2上面进行添加隧道模块
modprobe ipip添加隧道模块
ip a查看
ip addr del 172.25.12.100/24 dev eth0删除入口ip
ip addr add 172.25.12.100/24 dev tunl0添加入口ip
ip a查看
ip link set up tunl0激活网卡
ip a查看
- (3)在web2和web3上面分别修改反向过滤规则,防止丢包(这个具体的还得看)
sysctl -a | grep rp_filter查看过滤表将所有的过滤规则都关闭
sysctl -w (规则)=0
sysctl -p使设置生效
sysctl -a | grep rp_filter再次查看
因为系统会对流入的数据包进行反向路径校验,入包的数据是100,如果出包的数据不是100
这个数据就会被丢弃,所以我们要消除反向过滤的影响,将=1的项都设置为0
关闭反向过滤规则,是为了防止web服务器不认识发来的拆包后的源ip把数据包给丢掉,导致web服务器丢包,客户端访问不到数据
因为隧道模式实现的是不同网段的主机进行通信,如果信息要从服务端返回到客户端时
由于客户端和服务端不在同一个网段,数据根本出不去,所以我们需要关闭反向参数检验
0:不开启源地址校验
1:开启严格的反向路径校验
对每个进来的数据包,校验其反向路径是否是最佳路径。如果反向路径不是最佳路径,则直接丢弃该数据包
- (4)然后再客户端进行测试
企业级负载均衡集群——lvs的TUN模式(隧道模式)详细说明相关推荐
- 企业级负载均衡集群——lvs的DR模式(直接路由模式)详细说明
1.DR模式的原理 其实就是在一台主机上面搭建lvs服务器,设置lvs的工作模式是DR模式,lvs仅仅是一个调度器,它会把客户端的请求转发给后备服务器 DR模式直接由后备服务器把数据返回给客户端,不需 ...
- 负载均衡集群——lvs的TUN模式(隧道模式)详细介绍
一.TUN模式(隧道模式)工作原理 (1)IP隧道技术又称为IP封装技术,它可以将带有源和目标IP地址的数据报文使用新的源和目标IP进行第二次封装,这样这个报文就可以发送到一个指定的目标主机上: (2 ...
- LB负载均衡集群--LVS
LB集群: LB集群是load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.keepalived ,商业的硬件负载设备F5.Netscale. ...
- LVS负载均衡集群介绍(4种工作模式10种调度算法)
文章目录 集群简介 集群的特点 集群的分类 负载均衡 负载均衡集群技术的实现 负载均衡分类 四层负载均衡(基于IP+端口的负载均衡) 七层的负载均衡(基于虚拟的URL或主机IP的负载均衡) 高可用性集 ...
- 企业级负载均衡集群(4层)——lvs的DR模式和TUN模式(一)
文章目录 1.什么是lvs? 1.1 lvs的特点 1.1.1 lvs的优点 1.1.2 lvs的缺点 2 LVS工作模式 2.1 LVS工作模式分类 2.2 lvs三种工作模式的原理与区别 2.2. ...
- 负载均衡集群LVS模式之DR模型
在NAT模型下,director的工作能力是很有限的,每个用户访问服务器时,都要先访问director,在一定的范围内director可以承受,但超出这个范围director就无能为力,在较大规模应用 ...
- 企业级负载均衡集群——通过fence设备解决集群节点之间争抢资源的现象(FENCE搭建、高可用服务配置详解)
1.FENCE工具的原理及作用 FENCE设备是RHCS集群中必不可少的一个组成部分,通过FENCE设备可以避免因出现不可预知的情况而造成的"脑裂"现象 FENCE设备的出现,就是 ...
- LB负载均衡集群 - NAT
前提: 客户机 : eth0 192.168.0.200 eth1 192.168.205.129 dir主机: eth0 192.168.0.166 eth1 1 ...
- 运维工程师必备之负载 均衡集群及LVS详解
原文地址:运维工程师必备之负载 均衡集群及LVS详解作者:蚁巡运维平台 来源: chrinux 的BLOG 时间: 2013-07-01 14:00 此博文主要介绍集群和负载均衡的基本理论和类别,内容 ...
最新文章
- 排列与组合的一些定理(二)
- 羊皮卷的实践-第二十一章
- 图片转圈实现_如何编辑图片?
- python无法识别vim中文代码
- 蓝桥杯历届试题 剪格子 (DFS)
- Shell常用参数解释($0、$1、$#、$@、$$、$USER、$HOSTNAME、$LINENO、$RANDOM、$?)
- 信息学奥赛C++语言:年龄与疾病
- VGG和GoogLeNet inception
- 可更新聚集列存储索引幻想
- 手淘适配-flexible
- C++ 如何有效地使用对话框
- 前端和java选哪个_web前端和java哪个好?新手该选择哪个
- 树莓派4B(bullseye),傻瓜式配置镜像源和QT,cmake等环境
- 【windows系统】插入移动硬盘后,有盘符,但提示需要格式化的解决办法
- 鹿晗关晓彤公开恋情,是如何把微博服务器搞炸的? 附大型网站高可用架构和解决方案...
- 又java基础学php多久_php自学需要多久?
- hevc CTB并行
- 《关于我重装系统后修复VSCode这档事》C++环境配置
- vue使用elementui实现表格中上下移动功能
- 基于andoird的计步器(全代码)