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

本文涉及的产品
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
公网NAT网关,每月750个小时 15CU
简介:

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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
3月前
|
负载均衡 安全 网络安全
|
6月前
|
负载均衡 监控 网络协议
在Linux中,LVS-DR模式原理是什么?
在Linux中,LVS-DR模式原理是什么?
|
6月前
|
负载均衡 算法 Linux
在Linux中,LVS-NAT模式的原理是什么?
在Linux中,LVS-NAT模式的原理是什么?
|
6月前
|
负载均衡 网络协议 Linux
在Linux中, LVS三种模式的工作过程是什么?
在Linux中, LVS三种模式的工作过程是什么?
|
6月前
|
虚拟化
VMware NAT 模式 虚拟机网络电缆被拔出,连不上网
VMware NAT 模式 虚拟机网络电缆被拔出,连不上网
155 0
|
8月前
|
安全 Linux 网络安全
NAT模式下主机连接虚拟机
NAT模式下主机连接虚拟机,VMware虚拟机系统以CentOS7为例。
241 0
|
9月前
|
负载均衡 网络协议 算法
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
|
9月前
|
负载均衡 网络协议
NAT模式 LVS负载均衡部署
NAT模式 LVS负载均衡部署
|
2月前
|
负载均衡 算法 Linux
LVS+Keepalived:实现高效软负载均衡的利器
本文介绍了如何使用LVS(Linux Virtual Server)和Keepalived搭建高可用负载均衡集群。LVS通过不同调度算法将请求转发给后端服务器,而Keepalived基于VRRP协议实现服务高可用,避免IP单点故障。具体步骤包括环境准备、安装配置ipvsadm和Keepalived、启动服务及测试。文中还详细解释了配置文件中的关键参数,并提供了故障转移测试方法。最后,文章简要对比了软件、硬件和云负载均衡方案的特点,帮助读者选择合适的负载均衡策略。
349 4
|
5月前
|
域名解析 运维 负载均衡
LVS+Keepalived 负载均衡(二)28-1
【8月更文挑战第28天】LVS+Keepalived 负载均衡 配置 LVS VIP
90 5