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模式(隧道模式)详细说明相关推荐

  1. 企业级负载均衡集群——lvs的DR模式(直接路由模式)详细说明

    1.DR模式的原理 其实就是在一台主机上面搭建lvs服务器,设置lvs的工作模式是DR模式,lvs仅仅是一个调度器,它会把客户端的请求转发给后备服务器 DR模式直接由后备服务器把数据返回给客户端,不需 ...

  2. 负载均衡集群——lvs的TUN模式(隧道模式)详细介绍

    一.TUN模式(隧道模式)工作原理 (1)IP隧道技术又称为IP封装技术,它可以将带有源和目标IP地址的数据报文使用新的源和目标IP进行第二次封装,这样这个报文就可以发送到一个指定的目标主机上: (2 ...

  3. LB负载均衡集群--LVS

    LB集群: LB集群是load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.keepalived ,商业的硬件负载设备F5.Netscale. ...

  4. LVS负载均衡集群介绍(4种工作模式10种调度算法)

    文章目录 集群简介 集群的特点 集群的分类 负载均衡 负载均衡集群技术的实现 负载均衡分类 四层负载均衡(基于IP+端口的负载均衡) 七层的负载均衡(基于虚拟的URL或主机IP的负载均衡) 高可用性集 ...

  5. 企业级负载均衡集群(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. ...

  6. 负载均衡集群LVS模式之DR模型

    在NAT模型下,director的工作能力是很有限的,每个用户访问服务器时,都要先访问director,在一定的范围内director可以承受,但超出这个范围director就无能为力,在较大规模应用 ...

  7. 企业级负载均衡集群——通过fence设备解决集群节点之间争抢资源的现象(FENCE搭建、高可用服务配置详解)

    1.FENCE工具的原理及作用 FENCE设备是RHCS集群中必不可少的一个组成部分,通过FENCE设备可以避免因出现不可预知的情况而造成的"脑裂"现象 FENCE设备的出现,就是 ...

  8. LB负载均衡集群 - NAT

    前提: 客户机 : eth0   192.168.0.200       eth1  192.168.205.129 dir主机: eth0   192.168.0.166       eth1  1 ...

  9. 运维工程师必备之负载 均衡集群及LVS详解

    原文地址:运维工程师必备之负载 均衡集群及LVS详解作者:蚁巡运维平台 来源: chrinux 的BLOG 时间: 2013-07-01 14:00 此博文主要介绍集群和负载均衡的基本理论和类别,内容 ...

最新文章

  1. 排列与组合的一些定理(二)
  2. 羊皮卷的实践-第二十一章
  3. 图片转圈实现_如何编辑图片?
  4. python无法识别vim中文代码
  5. 蓝桥杯历届试题 剪格子 (DFS)
  6. Shell常用参数解释($0、$1、$#、$@、$$、$USER、$HOSTNAME、$LINENO、$RANDOM、$?)
  7. 信息学奥赛C++语言:年龄与疾病
  8. VGG和GoogLeNet inception
  9. 可更新聚集列存储索引幻想
  10. 手淘适配-flexible
  11. C++ 如何有效地使用对话框
  12. 前端和java选哪个_web前端和java哪个好?新手该选择哪个
  13. 树莓派4B(bullseye),傻瓜式配置镜像源和QT,cmake等环境
  14. 【windows系统】插入移动硬盘后,有盘符,但提示需要格式化的解决办法
  15. 鹿晗关晓彤公开恋情,是如何把微博服务器搞炸的? 附大型网站高可用架构和解决方案...
  16. 又java基础学php多久_php自学需要多久?
  17. hevc CTB并行
  18. 《关于我重装系统后修复VSCode这档事》C++环境配置
  19. vue使用elementui实现表格中上下移动功能
  20. 基于andoird的计步器(全代码)

热门文章

  1. php点击事件唤起微信聊天,vbot微信机器人微信聊天消息详解(15):点击消息
  2. C++实现超分辨率 IDN
  3. 度量学习 (Metric Learning)(一)
  4. html四周阴影怎么写,boxshadow四周阴影
  5. 找电子书不求人,搭建个自己的 zlibrary
  6. Java TimeZone 和 Linux TimeZone问题
  7. onenote隐藏分区_如何使用密码保护OneNote笔记本和分区
  8. 独立双端App《瓦格相机》的开发过程分享
  9. idea类中左侧出现√的解决方法
  10. 5.复杂网络经济学应用