zoukankan      html  css  js  c++  java
  • 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 模式用的不多

  • 相关阅读:
    姐姐的vue(1)
    LeetCode 64. Minimum Path Sum 20170515
    LeetCode 56. 56. Merge Intervals 20170508
    LeetCode 26. Remove Duplicates from Sorted Array
    LeetCode 24. Swap Nodes in Pairs 20170424
    LeetCode 19. Remove Nth Node From End of List 20170417
    LeetCode No.9 Palindrome Number 20170410
    LeetCode No.8. String to Integer (atoi) 2017/4/10(补上一周)
    LeetCode No.7 Reverse Integer 2017/3/27
    LeetCode No.4 Median of Two Sorted Arrays 20170319
  • 原文地址:https://www.cnblogs.com/myxxjie/p/10852970.html
Copyright © 2011-2022 走看看