标签: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五条路径上设置了检查规则
各种守护进程(服务)是工作在用户空间对外提供服务,当接收到请求的主机就是用户访问的目标主机时,数据会先通过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后多刷新几次,验证效果,至此操作完成
本文出自 “兔样兔森破” 博客,请务必保留此出处http://arkling.blog.51cto.com/2844506/1958779
标签:lvs;nat
原文地址:http://arkling.blog.51cto.com/2844506/1958779