linux-lvs负载均衡三种模式配置

vlvs有三种模式:nat模式(LVS/NAT),直接路由模式( LVS/DR),ip隧道模式(LVS/TUN)
以及二度开发的第四种模式(FULL NAT)


1、DR直接路由模式

  • DR(Direct Routing)直接路由模式
  • 原理:
  • 在一台主机上面搭建lvs服务器,设置LVS的工作模式是DR模式,LVS仅仅是一个调度器,它会把客户端的请求转发给后端服务器
  • DR(直接路由)模式直接由后端服务器把数据返回给客户端,不需要逆向发送数据包,此时lvs调度器叫做DS调度器(Director Server),RS是真正的后端web服务器(Real Server),LVS专注做调度时效率很高
  • DR模式改变的是MAC地址
  • Client发送请求 --> DS(调度器) -->prerouting --> INPUT -->postrouting -->RS(Real Server)–>lo --> 网卡eth0 -->Client
  • 具体过程:
  • 用户(client)发送请求给调度器(DS),DS调度器先把请求发往prerouting链(内核空间kernalspace),确定请求的是不是VIP
  • 到了INPUT链之后,如果请求的是集群服务,会在这里修改MAC地址,把源MAC地址改为DS的MAC地址,把目的MAC地址改为RS的MAC地址,此时IP仍然不变,处理完成后把请求发往postrouting链
  • postrouting链检测请求的是否为RS(会检测请求的MAC地址),如果是,接受请求,把请求通过回环接口发给出口的网卡,再发回给客户端
  • LVS(ipvs ipvsadm)–>IPVS改变数据包的ip和端口–>POSTROUTING–>后端服务器
  • 1.数据在系统内的交流用的是回环接口,与外部的交流用的是网卡eth0
  • 2.DR模式高效的原因就是RS服务器会直接响应客户端的请求,发送的请求一直往前发送数据包,不会再返回数据包给调度器
  • DR模式的特性:
  • DR模式下调度器和服务器组都必须在物理上有一个网卡通过不分段的局域网相连,即通过交换机或者高速的HUB相连,中间没有隔有路由器。
  • VIP地址为调度器和服务器组共享,调度器配置的VIP地址是对外可见的,用于接收虚拟服务的请求报文
  • 所有的服务器把VIP地址配置在各自的Non-ARP网络设备上,它对外面是不可见的,只是用于处理目标地址为VIP的网络请求。
  • 所有的请求报文经由Director Server,但响应报文必须不能经过Director Server
  • 不支持地址转换,也不支持端口映射
  • RS的网关绝不允许指向DIP
  • 所有的请求报文都是由调度器(DS)进行调度的
  • MAC地址在第二层,属于数据链路层,还没有到IP所在的网络层
  • RIP和DIP必须处于同一网段中,以便使用MAC地址进行通信
  • 后端服务器(Real Server)上必须配置VIP地址,以便接收LVS调度器(Director)转发过来的数据包,以及作为响应报文的源IP
  • 后端服务器(Real Server)响应给客户端的数据包的源和目的IP为VIP—>CIP
    1、配置环境:
    三台redhat6.5版本虚拟机(server1,server2,server3)
    server1作为vs
    server2和server3作为rs
    server1(VS)
    1、配置yum源
    1、因为6.5版本的yum源不能一次性全部加载,所以需要将镜像中的东西,全部设置

这里写图片描述
这里写图片描述
执行 yum repolist命令加载yum源


这里写图片描述
2、安装lvs用户层面的插件ipvsadm


这里写图片描述
3、设置虚拟vip


这里写图片描述
4、ipvsadm参数含义


-C:清除已有规则。
-A:添加VIP服务,后跟服务的访问地址。
-t:TCP协议,还是UDP协议(-u)。
-s:负载均衡算法,rr表示RoundRobin。
-a:添加RealServer到VIP,后跟虚地址。
-r:添加RealServer到VIP,后跟实地址。
-g:透传模式(-g表示Direct Routing即DR模式,-i表示ipip封装即Tunneling模式,-m表示Network Access Translation即NAT模式)
-p:Session粘连,同一客户端的请求在一段时间内都负载到同一RealServer

server2,3(RS)
1、安装httpd服务


这里写图片描述
这里写图片描述
2、添加vip


这里写图片描述
3、安装arptables_jf
因为设置172.25.254.100/24作为vip,不可以和外部通信,所以设用arptables将其的访问全部DROP,出去的包全部转化为本机的ip


这里写图片描述
这里写图片描述
测试:
外部网络测试172.25.254.100
访问四次到的结果为server2和server3的内容


这里写图片描述
二、NAT模式
server1(vs)
添加一块新网卡


这里写图片描述
配置网络


这里写图片描述
添加策略


这里写图片描述
内核路由需要打开,并且server2,3的网关必须指向server1的ip


这里写图片描述
配置server2,3的网络


这里写图片描述
测试,通过外网访问


这里写图片描述
三、TUN隧道模式
server1,2,3
1、导入模块


这里写图片描述
2、添加隧道,开启隧道


这里写图片描述
3、添加回环接口
这里写图片描述
4、禁掉server2,3 rp_filter 打开内核路由


这里写图片描述
5、在server1中添加策略


这里写图片描述

测试,通过外网访问
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值