LVS-NAT的实现:

   基础设施:一台调度器Director (要求:ipvsadm、httpd),两台后端真实服务器Real Server(要求:httpd)


   过程报文的响应过程:客户端发送一个请求报文于调度服务器上,此时源IP地址和目的IP地址分别为CIP和VIP,调度服务器的VIP网卡接受到报文,传给input链,在链上匹配规则,如果匹配到是对应服务,则通过DIP网卡传送至后端RS提供服务,此时报文源IP地址和目的IP地址分别为CIP和RIP,后端RS接受到报文请求便提供服务。

   注意:

     1.Director的一个网卡接口用来接收外网的请求,另一个接口也拿过来与RS交流所以同RS处于同一网段

     2.后端RS服务器为了防止外网用户直接访问,IP地址应为私有IP地址。

     3.因为只能通过VS调度至RS服务器。所以在RS中需要配置跳转至DIP的网关。

     4.为使请求报文能够转发给RS,需要开启Director的ip_forward模块。这里提供两种开启方法:

        1):临时开启:

            echo 1 > /proc/sys/net/ipv4/ip_forward

        2):永久开启:

            使用vim编辑器将/etc/sysctl.conf中的net.ipv4.ip_forward=0改为net.ipv4.ip_forward=1

     5:后端两台RS服务器的监听端口一台监听8080.一台监听80端口


     Director上的配置

# ipvsadm -A -t 172.16.72.1:80 -s rr

# ipvsadm -a -t 172.16.72.1:80 -r 192.168.100.8:8080 -m -w 1

# ipvsadm -a -t 172.16.72.1:80 -r 192.168.100.9 -m -w 2


 LVS-DR的实现:

    基础设施:两台Director,两台+的RS,路由器,交换机


    数据报文的响应过程:

       1.client向目标vip发送请求,director接收。

       2.VS根据负载均衡算法选择一台RS,将此RIP所在的网卡的mac地址作为目标mac地址,发送到

       局域网里。

       3.RS在局域网中收到这个帧,拆开后发现VIP与本地匹配,处理报文,并重新封装报文,重新发送到局域网

       4.如果client与VS处于同一网段,那么client将受到这个报文。否则将通过网络将路由器返回给用户。


        注意:

           1.在客户端请求报文发出至交换机时,广播的VIP地址VS和RS同时具有,这就会产生争议。从而引入了arp_ignore和arp_announce这两个内核参数。

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

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

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

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

      2.当RS回复响应报文时的源IP地址会是RIP这样客户端会认为此报文是虚假信息不予接受,因此为了避免这个问题需要在RS上设置一条特殊的路由,当接受报文时先经过lo接口上的VIP以设置源IP地址为VIP。