LVS-DR搭建的两种方法

注意事项:
        此时的LVS服务只有一个网卡;  
        路由的IP_FORWARD转发功能必须开启 ; 
        客户端访问,网关必须指定;
        VS服务必须配置网关,若不配置网关,客户端将无法访问;
        LVS、RS服务必须保持同一网段,中间不可添加路由器。  

方法一:VIP 与RIP、DIP不在同一虚拟网段

实现四层LVS-DR工作模式的负载均衡_第1张图片

1. Client客户端

1) 配置网关   
 [root@centos7 ~]#route add default gw 192.168.10.49 dev ens37
2)查看网关是否配置好
 [root@centos7 ~]#route -n 
 Kernel IP routing table
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
 0.0.0.0             192.168.10.49   0.0.0.0         UG    0      0        0 ens37
192.168.10.0    0.0.0.0         255.255.255.0   U     100    0        0 ens37
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

2. Route路由器

  1)准备两个网卡并设定好IP
       ens33  192.168.10.49/24 
       ens37  192.168.1.106/24 
  2)在网卡ens33再绑定一个IP能访问公网VIP
      [root@centos7 ~]# ifconfig ens33:1 10.10.0.20   

        link/ether 00:0c:29:ed:81:c3 brd ff:ff:ff:ff:ff:ff
        inet 192.168.1.106/24 brd 192.168.1.255 scope global noprefixroute ens33
        valid_lft forever preferred_lft forever
        inet 10.10.0.20/8 brd 10.255.255.255 scope global ens33:1
  3)开启路由的ip_forward转发功能,此项不开启客户端将无法访问,参数设为1
         [root@centos7 ~]#echo 1 > /proc/sys/net/ipv4/ip_forward

3. RS1服务端

     1)安装测试服务器httpd,默认80端口
            [root@localhost ~]# yum install httpd -y
            [root@localhost ~]# echo www.google.com > /var/www/html/index.html  
            [root@localhost ~]# systemctl start httpd
     2)准备好一个与LVS同一物理网段的局域网卡ens33,不可有其他网段网卡避免网关冲突
             ens33 192.168.1.110
     3)设置网关

             [root@localhost ~]# route add default gw 192.168.1.106
     4)编辑脚本自动绑定VIP公网,绑定在回环网卡

             [root@localhost ~]# vim /data/shell.sh/lvs_dr_rs.sh 

实现四层LVS-DR工作模式的负载均衡_第2张图片

   5)执行脚本完成VIP的绑定
        ~]# bash /data/shell.sh/lvs_dr_rs.sh start 

4. RS2服务端

    1)安装测试服务器httpd,默认80端口
                [root@localhost ~]# yum install httpd -y
                [root@localhost ~]# echo www.china.gov.com > /var/www/html/index.html  
                [root@localhost ~]# systemctl start httpd
    2)准备好一个与LVS同一物理网段的局域网卡ens33,不可有其他网段网卡避免网关冲突
                 ens33 192.168.1.101
    3)设置网关

                 [root@localhost ~]# route add default gw 192.168.1.106
    4)编辑脚本自动绑定VIP公网,绑定在回环网卡,编辑脚本内容与第三步相同,直接复制并执行

                 [root@localhost ~]#  bash /data/shell.sh/lvs_dr_rs.sh start

5. LVS调度服务器

   1)准备一个网卡并设定好IP
       ens33  192.168.1.107/24
   2)指向默认网关为路由器的R2口
       [root@centos7 ~]#route add default gw 192.168.1.106
   3)编写脚本实现创建集群调度环境
       [root@centos7 ~]#vim /data/shell.sh/lvs_dr_vs.sh    

          #!/bin/bash
          vip='10.10.0.10'      #公网VIP
          iface='lo:1'            #绑定值本机回环网卡
          mask='255.255.255.255'        #独立的网络
          port='80'        
          rs1='192.168.1.101'         #rs1服务
          rs2='192.168.1.110'        #rs2服务
          scheduler='wrr'           #权重轮询算法
          type='-g'  #工作模式为DR模式
          rpm -q ipvsadm &> /dev/null || yum -y install ipvsadm &> /dev/null   #判断是否安装ipvsadm
          case $1 in
          start)
          ifconfig $iface $vip netmask $mask #broadcast $vip up
          iptables -F
          ipvsadm -A -t ${vip}:${port} -s $scheduler        #创建调度集群环境
          ipvsadm -a -t ${vip}:${port} -r ${rs1} $type -w 1  #添加rs1服务到调度集群环境
          ipvsadm -a -t ${vip}:${port} -r ${rs2} $type -w 1  #添加rs2服务到调度集群环境
          echo "The VS Server is Ready!"
           ;;
          stop)
          ipvsadm -C
          ifconfig $iface down
          echo "The VS Server is Canceled!"
          ;;
          *)
          echo "Usage: $(basename $0) start|stop"
          exit 1
          ;;
          esac

     4)执行脚本完成lvs的环境搭建
                 [root@centos7 ~]# bash /data/shell.sh/lvs_dr_vs.sh start

6. 在Client客户端进行访问测试,设置调度为权重轮询访问

                 [root@centos7 ~]# while true;do curl 10.10.0.10;sleep 1;done       

方法二. VIP 与RIP、DIP都在在同一网段

实现四层LVS-DR工作模式的负载均衡_第3张图片

1.Client客户端

 1)配置默认网关为路由Route的R1口IP
      [root@centos7 ~]#route del default gw 192.168.10.1 dev ens37

2.路由Route

 1)开启路由的转发功能ip_forward,参数设置为1
           [root@centos7 ~]#echo 1 > /proc/sys/net/ipv4/ip_forward

3.RS1服务端

  1)将VIP绑定至回环网卡
       [root@localhost ~]# ifconfig lo:1 192.168.1.119/32
  2)指定默认网关至路由Route的R2口IP 
       [root@localhost ~]# route add default gw 192.168.1.108 dev ens33   
  3)开启httpd测试服务
         [root@localhost ~]# systemctl start httpd

4.RS2服务端

  1)将VIP绑定至回环网卡
       [root@localhost ~]# ifconfig lo:1 192.168.1.119/32
  2)指定默认网关至路由Route的R2口IP 
       [root@localhost ~]# route add default gw 192.168.1.108 dev ens33
  3)开启httpd测试服务
         [root@localhost ~]# systemctl start httpd

5.LVS调度服务

  1)将VIP绑定至回环网卡
       [root@localhost ~]# ifconfig lo:1 192.168.1.119/32
  2)指定默认网关至路由Route的R2口IP 
       [root@localhost ~]# route add default gw 192.168.1.108 dev ens33
  3)搭建集群调度环境,算法设为权重WLC
       [root@centos7 ~]#ipvsadm -A -t 192.168.1.119:80 -s wlc 
  4)将RS1与RS2添加至集群环境并配置权重
       [root@centos7 ~]#ipvsadm -a -t 192.168.1.119:80 -r 192.168.1.110 -w 3
       [root@centos7 ~]#ipvsadm -a -t 192.168.1.119:80 -r 192.168.1.101 -w 1

6. 在客户端进行访问测试

        [root@centos7 ~]#while true;do curl 192.168.1.119;sleep 1;done