Welcome to li chao's blog

若逢新雪初霁,满月当空,下面平铺着皓影,上面流转着亮银,而你带笑地向我步来,月色与雪色之间,你是第三种绝色!

LVS 负载均衡 (VS/DR模式 与 VS/TUN 模式)

一、VS/DR模式

 

 

①.客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP。

 

②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将目标MAC改为了RIP的MAC地址,并将此包发送给RS。

 

③.RS发现请求报文中的目的MAC是自己,就会将次报文接收下来,处理完请求报文后,将响应报文通过lo接口送给eth0网卡直接发送给客户端。

 

注意:

需要设置lo接口的VIP不能响应本地网络内的arp请求。

优点

和TUN(隧道模式)一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端。与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器。

DR模式的效率很高,但是配置稍微复杂一点,因此对于访问量不是特别大的公司可以用haproxy/nginx取代。日1000-2000W PV或者并发请求1万一下都可以考虑用haproxy/nginx。

缺点

所有 RS 节点和调度器 LB 只能在一个局域网里面。

 相比于其他两种模式性能最好!也可以实现跨机房,相对比较困难~

 

二、实验

1>准备环境

#1、准备三台虚拟机,一台Dserver 端, 两台REserver端

#2、三台主机ip 必须是同一网段

REserver1 端  ip  : 192.168.206.4

REserver2 端ip    : 192.168.206.5

Dserver 端    ip     :   192.168.206.3

 

#3、 vip (虚拟服务ip) : 192.168.206.22

2>   Dserver端 下载 ipvsadm 包

 

查看

3> 添加对外服务的ip ( vip)

 

4>添加两台REserver 主机

 

5>查看

 

6>配置网卡的子网口 为 vip   (ens33 :0 )

&1临时方法

&2永久方法

再编辑一个网卡配置 文件,将DEVICE 改成 ens33:0 即可 回环地址 lo:0 同理

查看

注:执行可能会出现下面情况,找不到 ifconfig 这个命令

 

#1原因是   sentos7 最小安装 没有自带 ifconfig这个命令的包,我可以来查找一下这个命令所在的包,然后去安装它

 

#2,通过查找发现它在  net-tools 这个包里面,我们去下载它

 

#3.查看

 

再使用  ifconfig 这个命令就可以了

7> 添加静态路由( 访问 192.168.206.22 ,都走 ens33:0 这个网卡)

^1

^2, 查看

添加成功!

REserver 1端  与 REserver 2 端

8> 在回环地址上配置 vip  (   REserver 1端  与 REserver 2 端  都需要设置 )

 

9> 分别添加静态路由

 

10>定义接受请求的响应的级别与向外通告的级别 ,使它们不能向外宣告!

   arp_ignore:定义接收到ARP请求时的响应级别              

0:默认,只用本地配置的有响应地址都给予响应               

1:仅仅在目标IP是本地地址,并且是配置在请求进来的接口上的时候才给予响应         (仅在请求的目标地址配置请求到达的接口上的时候,才给予响应)  

   /proc/sys/net/ipv4/conf/lo/arp_ignore    

   arp_announce:定义将自己的地址向外通告时的级别              

  0:默认,表示使用配置在任何接口的任何地址向外通告               

  1:尽量仅向目标网络通告与其网络匹配的地址               

  2:仅向与本地接口上地址匹配的网络进行通告       

/proc/sys/net/ipv4/conf/all/arp_announce

配置如下

REserver1:

 

REserver2:

 

11>全部开启 httpd 服务

注:这里使用ansible 开启 REserver1 端 与 REserver2  端 的httpd 服务

@1

@2查看

 

全部开始成功

12> 测试 (记得在 REserver端创建测试文件)

抓取成功

二、VS/TUN模式

 

 

①.客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP。

 

②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将在客户端请求报文的首部再封装一层IP报文,将源地址改为DIP,目标地址改为RIP,并将此包发送给RS。

 

③.RS收到请求报文后,会首先拆开第一层封装,然后发现里面还有一层IP首部的目标地址是自己lo接口上的VIP,所以会处理次请求报文,并将响应报文通过lo接口送给eth0网卡直接发送给客户端。

 

注意:

 

需要设置lo接口的VIP不能在公网上出现。

 

优点

 

负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同地域的分发。

 

缺点:

 

隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分Linux系统上。

 

                  相比于其他两种模式,TUN 模式用的不多

posted on 2019-05-12 17:35  lichaoyx  阅读(1263)  评论(0编辑  收藏  举报

导航