LVS介绍

集群按照类型划分可以分为:LB负载均衡型;HA高可用型;HP高性能型。LVS(linux virtual machine)是一款国人编写用于LB负载均衡型被收录进Linux内核的工具。LVS由ipvs和ipvsadmin组成,ipvs工作在netfilter框架上,而ipvsadm则是使用者在用户空间的命令行工具,通过调用ipvs的API管理集群服务。LVS支持TCP、UDP、AH, EST, AH_EST, SCTP等诸多协议,与haproxy(haproxy也可以以mod tcp模式工作在传输层)和nginx工作在应用层的工具不同,LVS工作在内核层,所以可以突破套接字文件65535的最大数量限制。由于LVS相比以前的iptables dnat负载均衡功能有了很大的改善,LVS在被收录进内核后使得iptables负载均衡功能不再作为重点进行开发。

准备知识

1.netfiletr是一个工作在内核空间的安全框架,在数据传输必经的PREROUTING、INPUT、OUTPUT、POSTROUTING、FORWARD五条路径上设置了检查规则

各种守护进程(服务)是工作在用户空间对外提供服务,当接收到请求的主机就是用户访问的目标主机时,数据会先通过PREROUTING再经由INPUT进入到用户空间

当守护进程处理完用户请求后,会通过OUTPUT和POSTROUTING将响应返还给请求者

如果接收到请求的主机发现目标主机不是他自身,则会通过PREOUTING、FORWARD、POSTROUTING将该请求转发出去

2.LVS和iptables在很大程度上相互间不兼容,所以在使用LVS的时候请确保iptables服务处于关闭状态

LVS的NAT模式介绍

LVS在负载均衡架构中充当一个调度器(director)的角色,所有客户端访问的地址指向为LVS的公网IP地址,它再将接收到的请求根据算法分配给后端的服务器,整个架构为:

假设用户端的IP为CIP,LVS公网地址为VIP,内网服务器地址为RIP,LVS通过DIP与RIP进行通信,其中DIP和RIP为内网地址。用户请求数据流的轨迹为:

当用户发起一个请求时,请求从VIP接口流入,此时数据源地址是CIP;目标地址是VIP(步骤1),LVS接收到请求后拆掉mac地址封装后看到目标IP地址就是自己,按照正常流程会通过INPUT转入用户空间(步骤2),但此时工作在INPUT链上的LVS会强行将数据转到POSTROUTING上(步骤3),并根据LVS的算法选择后端具体的服务器,以选择服务器1为例,通过DNAT后转发给服务器1(步骤4),此时源地址CIP,目标地址变成了RIP1。

服务器回复用户数据流的轨迹为:

当服务器1响应用户的请求时,数据报文中源地址为RIP1;目标地址为CIP(步骤1),服务器1根据自身掩码和CIP地址做与运算后得知CIP与自己不在同一网段,于是将请求转交给网关处理,所以服务器1的网关要指向DIP。LVS负载均衡器接收到请求后发现目标地址并不是自己,于是经过FORWARD链进行转发,此时要求LVS负载均衡器开启核心转发功能,再经过SNAT转换后源地址改为VIP目标地址为CIP(步骤2),交还客户端。

总结

LVS-NAT模式下数据流路径:

请求时数据流的路径:PREROUTING-->INPUT-->POSTRONTING

响应时数据流的路径:PREROUTING-->FORWARD-->POSTROUTING

LVS-NAT特点:

1.请求和响应报文都要经由director转发;有些负载的场景中(如视频网站)director可能会成为系统瓶颈

2.由于请求和响应报文都需要经过directory,所以支持端口映射

3.RS应该和DIP应该使用私网地址,且RS的网关要指向DIP

4.RS可以使用任意OS

5.LVS在NAT模式,做单边地址转换,收请求时做DNAT目标地址转换,响应请求时做SNAT源地址转换

6.director需要开启核心转发功能

操作步骤

网络拓扑

网络结构如下图所示:

LVS负载均衡器和web服务器系统版本均为CentOS6.8,LVS负载均衡器有2张网卡,安装ipvsadm作为director,web服务器安装httpd提供页面服务,此处便于演示效果让2台web服务器页面不一致,安装步骤省却。

LVS NAT模式配置步骤

1.使用sysctl命令开启director的核心转发功能

或者在/etc/sysctl.conf配置文件中修改

2.确认核心转发功能起开启

3.指定LVS的director服务器,并选择调度模式;指定realserver服务器并设置数据转发类型,如果想做端口映射RIP后面可以跟转发的端口号

4.查看设置是否生效

5.保存ipvsadm当前配置,指定一个保存文件,便于清理后从该文件恢复配置

6.确认web服务器的网关指向DIP

7.在客户端使用浏览器访问172.16.20.10后多刷新几次,验证效果,至此操作完成

本文转自 qiao645 51CTO博客,原文链接:http://blog.51cto.com/arkling/1958779

初识LVS(一)——LVS介绍和LVS的NAT工作模式相关推荐

  1. LVS类型的介绍以及LVS的调度方法

    LVS类型的介绍以及LVS的调度方法 LVS三种类型的比较: 类型 属性 LVS-NAT(最简单) 网络地址转换 LVS-DR(最常用) 直接路由 LVS-TUN IP隧道 realserver和di ...

  2. LVS介绍以及工作模式案例

    LVS 官网:http://www.linuxvirtualserver.org/ LVS工作原理 VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS.LVS是内核 ...

  3. LVS负载均衡:三种工作模式、十种调度算法

    一.LVS简介 二.三种工作模式的解析       2.1 基于NAT的LVS模式负载均衡       2.2 基于TUN的LVS负载均衡       2.3 基于DR的LVS负载均衡 三.LVS负载 ...

  4. [转]LVS负载均衡(LVS简介、三种工作模式、十种调度算法)

    一.LVS简介 LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中.该项目在Linux内核中实现 ...

  5. LVS负载均衡(LVS简介、三种工作模式、十种调度算法)

    转载:https://blog.csdn.net/weixin_40470303/article/details/80541639 一.LVS简介 LVS(Linux Virtual Server)即 ...

  6. LVS负载均衡(LVS简介、三种工作模式、持久化连接)

    一.LVS简介及原理 1.LVS概述 LVS(Linux Virtual Server)即Linux虚拟服务器,在Linux平台运行.LVS被集成到Linux内核模块中被分为2个部分,用户态(ipvs ...

  7. LVS负载均衡详解(一)lvs的定义、组成、相关术语+3种工作模式+10种调度算法

    文章目录 lvs是什么 lvs的基本工作原理 lvs的组成 lvs的相关术语 lvs的三种工作模式 基于NAT的LVS模式负载均衡 nat模型的特性 基于DR的LVS负载均衡(直接路由模式) DR模式 ...

  8. 负载均衡集群介绍、LVS介绍、LVS调度算法、 LVS NAT模式搭建

    负载均衡集群介绍 LVS介绍 lvs的NAT模式介绍 这种模式借助iptables的nat表来实现,用户的请求到分发器后,通过预设的iptables规则,把请求的数据包转发到后端的服务器上去,这些服务 ...

  9. 初识LVS(二)——LVS的DR工作模式

    LVS的DR模式介绍 LVS在NAT模式下所有的请求和响应报文都需要经过director,尽管LVS工作在内核层不受套接字文件65535的数量限制,但也有可能会成为性能瓶颈(如视频网站),以下介绍LV ...

最新文章

  1. 工信部:筹建全国首个区块链和分布式记账标准化技术委员会
  2. Linux 网络 tcp C/S通信模型
  3. AGV控制器设计与融合
  4. B题 锅炉水冷壁温度曲线 2021年第一届长三角高校数学建模竞赛
  5. linux安装配置jdk1.8
  6. mysql 表单属性_php表单常用属性有什么?
  7. 【LeetCode笔记】69. x 的平方根(Java、二分)
  8. java class文件常量池_JAVA程序员谈谈class文件结构中的常量池-class文件
  9. 2017年3月计算机二级c语言真题,2017年3月计算机二级C语言习题及答案
  10. 让手机成为电脑的摄像头,Droidcam(linux) 的安装及使用
  11. win10非核心版本的计算机上
  12. 资源 就是Tianmao项目里小部分备用 测试 的数据以及图片
  13. 网络安全——sql注入漏洞拓扑图
  14. python接私活王者_[宜配屋]听图阁
  15. 数字图像处理(18): 图像灰度变换——线性灰度变换 和 非线性灰度变换(对数变换 与 伽马变换)
  16. Java搭建实战springboot基于若依项目工时统计成本核算管理源码
  17. Android 自定义下拉菜单的实现(基于PopupWindow+RecyclerView)
  18. 用 Windows 的 diskpart 命令修复U盘
  19. PET图像的SUV计算
  20. 【前端22_混合开发】介绍、初步认识MUI、UI组件、窗口管理

热门文章

  1. 为啥程序员工资高,却很多人想转行,这4点原很现实
  2. 【智驾深谈】自动驾驶潜在突破点:传感器与车载集成系统(万字干货)
  3. HDU 4001 To Miss Our Children Time(2011年大连网络赛 A 贪心+dp)
  4. 记录一次Mac虚拟机安装的过程(有图有真相)
  5. 使用脚本将数据从辅助数据源传送到 InfoPath 域
  6. 函数 —— fgets()
  7. 我的公众号 - Old Artist
  8. 获得 bootstrapTable行号index
  9. 剑指offer--变态跳台阶--递归和循环
  10. 【codeforces】【比赛题解】#940 CF Round #466 (Div. 2)