2015/5/28 LVS原理与使用

    上一篇中,我们讲解了LVS的IP隧道模式,IP隧道模式虽然功能强大,但是却远没有设计精巧的直接路由模式常见,本篇中,我们将讲解LVS IP负载均衡技术中的最后一个技术——直接路由模式(LVS-DR)。

    在本篇内容中,我们将进行讲解:

      (1)、LVS-DR的架构拓扑以及原理。

      (2)、LVS-DR模式的具体操作。

      (3)、拓展阅读。    


    一、直接路由模式的架构拓扑以及原理

    按照惯例,先上一个艹图:

 

     是的,您没有看错,直接路由模式的物理拓扑图跟IP隧道模式是一模一样的。同样的来自用户的数据包也是先通过LVS然后进入真实服务器,而真实服务器响应所发出的数据包则直接“回送”到用户手中,完成整套的“请求-响应”负载均衡工作。事实上,直接路由模式和IP隧道模式还是存在一些不同之处,下面我将通过列举直接路由模式的优缺点的方式来标注它们的异同:

    使用直接路由模式,至少拥有以下优点:

      1、兼容性更好(不再走IP隧道,不需要考虑当前版本的Linux是否支持)

      2、吞吐量也比NAT更高(这点和IP隧道相同)

      3、工作的OSI层级更低(比IP隧道还低,因此效率更高)

      4、没有IP隧道的消耗,性能更好

      更多……

    但同样的,也会存在以下的缺点:

      1、与IP隧道一样,整套集群需要多个公网IP

      2、与IP隧道一样,所有的真实服务器都暴露在外网之中,增加潜在的危险

      3、直接路由模式无法穿越网段,因此所有的内网服务器只能处于一个局域网内。

 

    二、直接路由模式的具体操作

    我们这里有几台机器,其参数如下:

      LVS服务器:eth0:192.168.1.100/24

      真实服务器A:eth0:192.168.1.201/24

      真实服务器B:eth0:192.168.1.202/24

      VIP:192.168.1.56

    首先我们先对LVS服务器进行配置:

      ifconfig eth0:0 192.168.1.56 netmask 255.255.255.255 up

      route add -host 192.168.192.56 dev eth0:0

      ipvsadm -C

      ipvsadm -A -t 192.168.1.56:80 -s rr

      ipvsadm -a -t 192.168.1.56:80 -r 192.168.1.201 -g

      ipvsadm -a -t 192.168.1.56:80 -r 192.168.1.202 -g

    然后配置真实服务器(A与B一样配置):

      ifconfig lo:0 192.168.1.56 netmask 255.255.255.255

      route add -host 192.168.1.56 dev lo:0

      echo '1'>/proc/sys/net/ipv4/conf/lo/arp_ignore

      echo '1'>/proc/sys/net/ipv4/conf/all/arp_ignore

      echo '2'>/proc/sys/net/ipv4/conf/lo/arp_announce

      echo '2'>/proc/sys/net/ipv4/conf/all/arp_announce

    可以看出,使用直接路由模式和使用IP隧道模式的配置脚本非常类似,区别就只是添加真是服务器时,负载均衡模式设置为“g(gateway)”。

 

    三、拓展阅读

    直接路由模式转发报文的方式是通过改变数据包的MAC地址的方式,因此它无法穿越vlan,这种特性规定了它必须工作在同一个局域网之内,这是它的弱势之处,但这个弱势也正是它的优势,由于这是直接工作在二层协议之中,无需再对上层进行操作,因此这种三角通讯网络的效率会进一步提高,以下是它的简图:

 


    好的,直接路由模式就讲这么多了,下一篇我们再对LVS的一些其他知识进行讲解,我们下回见。

  [ Linux ]   [ 负载均衡 ]   [ LVS ]
知识共享许可协议 本作品由小蝶惊鸿创作,采用知识共享署名 4.0 国际许可协议进行许可,转载时请保留本文署名及链接。