文档章节

LVS工作模式及原理

将将将
 将将将
发布于 2015/12/29 17:29
字数 1568
阅读 893
收藏 5

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

LVS 简介

         LVS 是 Linux  Virtual Server ,Linux 虚拟服务器;是一个虚拟的服务器集群【多台机器 LB IP】。LVS 集群分为三层结构:

        a. 负载调度器(load balancer):它是整个LVS 集群对外的前端机器,负责将client请求发送到一组服务器[多台LB IP]上 执行,而client端认为是返回来一个同一个IP【通常把这个IP 称为虚拟IP/VIP】

        b. 服务器池(server pool):一组真正执行client 请求的服务器,一般是我们的web服务器;除了web,还有FTP,MAIL,DNS

        c. 共享存储(shared stored):它为 server pool 提供了一个共享的存储区,很容易让服务器池拥有相同的内容,提供相 同的服务

    共有4中模式:LVS-DR,LVS-NAT,LVS-FULLNAT,LVS-TUN

1.LVS-DR

1.1 工作原理

client发送一个请求到VIP,LVS服务器根据VIP选择对应的realServer的pool,根据算法,在pool中选择一台realServer,将包广播到vip的局域网,同时LVS在hash表中记录该次连接,realServer收到包之后,处理完请求,把应答包直接传给client;当client继续发包过来时,LVS根据更才记录的hash表的信息,将属于此次连接的请求直接发到刚才选择的realServer上;当连接中止或者超时,hash表中的记录将被删除。

1.2 实例讲解

假设client,director,vip,realServer的ip及mac地址如下



           client           director              vip         realServer
IP     192.168.138.20     192.168.143.231    192.168.143.122     192.168.143.82
MAC     X:X:X:X:X:5d     X:X:X:X:X:96     X:X:X:X:X:96     X:X:X:X:X:82


第一步:client向vip发起请求,director接收到请求,ip包头的信息如下


source mac      dst mac       ...     source ip            dst ip               ...
X:X:X:X:X:5d   X:X:X:X:X:96       ...      192.168.138.20     192.168.143.122              ...


第二步:LVS根据负载均衡算法,选择一台realServer,修改dst mac地址为realServer的mac地址,将数据包转发到局域网,此时ip包头信息如下


source mac     dst mac              ...             source ip             dst ip               ...
X:X:X:X:X:96   X:X:X:X:X:82              ...    192.168.138.20      192.168.143.122              ...


第三步:realServer接收到包,拆开后发现目标IP(VIP)与本地匹配,于是处理这个报文。随后重新封装报文,发送到局域网,IP包头及数据帧头信息如下


source mac         dst mac              ...                 source ip           dst ip               ...
X:X:X:X:X:82       X:X:X:X:X:5d              ...        192.168.143.122    192.168.138.20              ...


第四步:如果,通过路由将包路由到client

1.3 注意事项

    a. LVS必须与realServer在同一个局域网,因为LVS收到数据包后,只修改了dst mac地址,然后广播出去,如果LVS与realServer不在统一网段,realServer永远收不到数据包

    b. LVS-DR不需要路由转发,同一局域网内,不经过路由

    c. realServer需呀配置 vip


2. LVS-NAT

2.1 工作原理

假设client,vip,realServer的ip地址如下



           client              vip         realServer
IP     192.168.138.20    192.168.143.122     192.168.143.82



第一步:client 发送包到LVS服务器的VIP上


      ...     source ip            dst ip               ...
      ...      192.168.138.20     192.168.143.122              ...



第二步:VIP选择一个realServer,并记录连接信息到hash表中,然后修改client的request的目的IP地址为realServer的地址,将请求发给realServer


      ...     source ip            dst ip               ...
      ...      192.168.138.20     192.168.143.82              ...



第三步:realServer收到请求包后,发现目的IP是自己的IP,于是处理请求,然后发送reply给LVS,回复包如下


      ...     source ip            dst ip               ...
      ...      192.168.143.82     192.168.138.20              ...



第四步:LVS收到reply包后,修改reply包的的源地址为VIP,发送给client;以后从client来的属于本次连接的包,查hash表,然后发给对应的realServer


      ...          source ip            dst ip          ...  
      ...     192.168.143.122     192.168.138.20         ...



2.1 注意事项

    a. NAT修改的是dst ip,不需要vip与realserver在同一个网段内

    b. NAT模式包的进出都需要经过LVS ;因此LVS 的可能会成为一个系统瓶颈问题


3. LVS-FULLNAT

LVS-FULLNAT在client请求VIP 时,不仅替换了数据包的dst ip,还替换了数据包的 source ip;但VIP 返回给client时也替换了source ip

3.1 工作原理

假设client,vip,realServer的ip地址如下

                 client                      vip               realServer

IP    192.168.138.20   192.168.143.122    192.168.143.82


第一步:client 发送包到LVS服务器的VIP上


      ...    source ip            dst ip                         ...

      ...     192.168.138.20192.168.143.122        ...


第二步:VIP 收到数据包后,会根据LVS设置的LB算法选择一个合适的realserver,然后把数据包的dst ip修改为realserver的ip;把sorce ip 改成 LVS的vip 


      ...    source ip                   dst ip                     ...

      ...     192.168.143.122    192.168.143.82             ...


第三步: realserver 收到这个数据包后判断dst ip 是自己,处理完后把这个包发送给LVS VIP


      ...    source ip                   dst ip                     ...

      ...     192.168.143.82    192.168.143.122             ...


第四步: LVS 收到这个数据包后把sorce ip改成VIP的IP,dst ip改成 client ip然后发送给client


      ...         source ip                   dst ip                ...  

      ...    192.168.143.122    192.168.138.20        ...


3.2 注意事项

    a. FULLNAT修改的是dst ip,不需要vip与realserver在同一个网段内

    b. FULLNAT能保证回包一定能回到LVS

    c. 因为FULLNAT要更新sorce ip 所以性能NAT模式低


4. LVS-TUN

    4.1 工作原理

    假设client,vip,realServer的ip地址如下

                     client                      vip               realServer

    IP    192.168.138.20   192.168.143.122    192.168.143.82


    第一步:client 发送包到LVS服务器的VIP上


          ...            source ip                      dst ip                         ...

          ...         192.168.138.20        192.168.143.122                  ...


    第二步:VIP 收到数据包后,会根据LVS设置的LB算法选择一个合适的realserver;并把client发送的数据包包装到一个新的IP包里面;新的IP包的dst是realserver的IP


          ...            source ip                       dst ip                      ...

          ...         192.168.143.122        192.168.143.82             ...


    第三步: realserver 收到这个数据包后判断dst ip 是自己,然后解析出来的数据包的dst是VIP;会检测网卡上是否帮了VIP的ip地址;如果帮了就会处理这个包,如果没有直接丢掉。 一般在realserver上面 lo:0 绑定了VIP的ip地址,就可以处理。处理完成后,直回给client


          ...        source ip                   dst ip                      ...

          ...     192.168.143.82        192.168.138.20             ...


   

    4.2 注意事项

        a. TUN模式必须在所有的realserver机器上面绑定VIP的IP地址

        b. TUN模式的包通信通过TUN模式,不管是内网和外网都能通信,所以不需要lvsvip跟realserver             在同一个网段内

        c. TUN模式 realserver会把数据包直接发给client 不会给lvs了

        d. TUN模式走的隧道模式,所以运维起来比较难,所以一般不用

    

    











© 著作权归作者所有

下一篇: VRRP协议
将将将
粉丝 24
博文 30
码字总数 13288
作品 0
深圳
程序员
私信 提问
加载中

评论(0)

三大主流负载均衡器LVS、Nginx、HAproxy详解

本文链接:https://blog.csdn.net/lilygg/article/details/89538862 1.LVS 简介: LVS相关的几种IP: 工作模式: 1.DR模式 (1).工作原理 (2).特点 (3).优缺点 优点: 缺点: 总结: 2.TUN模式...

osc_0w39fdhx
2019/11/05
12
0
Linux lvs-NAT模式配置详解

本篇文档主要是记录NAT模式实现过程,以及各配置步骤的原理。“lvs三种模式工作原理”中描述了LVS的NAT、DR、TUN三种模式的工作原理。 NAT模式是通过director将报文目标IP地址修改,发送给R...

osc_127lqd1g
2019/03/18
2
0
LVS原理详解及部署之三:手动部署LVS

-------------------LVS专题------------------------ LVS原理详解及部署之一:ARP原理准备 LVS原理详解及部署之二:LVS原理详解(3种工作方式8种调度算法) LVS原理详解及部署之三:手动部署...

蓝狐乐队
2016/07/24
69
0
LVS+keepalived高可用

LVS+Keepalived负载均衡 LVS简介及工作原理 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的...

Anonymous123
2015/08/20
0
0
负载均衡LVS(Linux Virtual Server)

负载均衡LVS(Linux Virtual Server) 目录 负载均衡LVS(Linux Virtual Server)... 1 第1章 LVS负载均衡集群简介... 1 1.1 为什么要学LVS. 1 1.2 LVS网站资料:... 1 1.3 LVS内核模块ip_vs...

osc_2qxlyxer
2018/03/03
2
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周五乱弹 —— 头发和不要头发,你总要选一个

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《雾 缀じた街 ふたつのかげ》- Porkkana 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
41
0
一道 算法题 引发的 ‘xx现场’

请 熟悉的语言 去 验证 在输入框中输入的是否是一个正确的网址 初次读题萌新有点 不知所措的样子一查 MDN 吓一跳 ----- 一个不怎么熟悉的方法跳出眼边URL() 构造函数返回一个新创建的 ...

酒窝yun过去了
今天
19
0
如何检查jQuery中是否已选中复选框? - How to check whether a checkbox is checked in jQuery?

问题: I need to check the checked property of a checkbox and perform an action based on the checked property using jQuery. 我需要检查复选框的checked属性,并使用jQuery根据check......

技术盛宴
今天
12
0
mongoose 使用

http://www.mongoosejs.net/ 编写MongoDB验证,转换和业务逻辑是非常麻烦的. 所以Mongoose应运而生了. const mongoose = require('mongoose');mongoose.connect('mongodb://localhost/te......

东东笔记
今天
30
0
微服务

什么是微服务? 使用一套小服务来开发单个应用的方式,每个服务运行在独立的进程里,一般采用轻量级的通讯机制互联,并且他们可以通过自动化的方式部署。 微服务的特征 单一职责 轻量级通信 ...

鸿FW
今天
23
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部