初识LVS(一)——LVS介绍和LVS的NAT工作模式-阿里云开发者社区

开发者社区> 科技小能手> 正文

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

简介:
+关注继续查看

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五条路径上设置了检查规则

wKiom1mdby7Ru61WAAAhTm6YXxo431.png

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

wKioL1mdbySCM1NeAABIwYlWCrI616.png

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

wKioL1mdbyWAjOhOAABI_-ZGQXQ350.png

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

wKiom1mdby_AlAxvAABJhCy46fg003.png

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

LVS的NAT模式介绍

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

wKiom1mdbzDyjwm-AACGTmH51-M068.png

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

wKioL1mdbyagSF48AABjhb6EhGg494.png

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

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

wKiom1mdbzGRtxNbAABg0AR6b1k194.png

当服务器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需要开启核心转发功能

操作步骤

网络拓扑

网络结构如下图所示:

wKioL1mdbyez1LIPAAByc-HUXsk708.png

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

LVS NAT模式配置步骤

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

wKiom1mdbzHCVrVwAAAJEJhexOY790.png

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

wKioL1mdbyegoDQWAAASvb3byG0392.png

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

wKiom1mdbzLB_mdSAAAOLVo7ErM658.png

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

wKioL1mdbyiTToURAAAb2rtalZU754.png

4.查看设置是否生效

wKiom1mdbzOhQIgIAAAtdg5ft5E435.png

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

wKioL1mdbynCnATGAABctJTYllo466.png

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

wKiom1mdbzSxhmD9AAArMx5TKGA338.png

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

wKioL1mdbyqC74kWAAAxlQnxeX4634.png


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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
9943 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
2957 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
11562 0
使用SSH远程登录阿里云ECS服务器
远程连接服务器以及配置环境
2487 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13691 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
7449 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
4436 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7310 0
23706
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载