您的位置:首页 > 其它

实现四层LVS-DR工作模式的负载均衡

2019-05-26 02:42 1691 查看

LVS-DR搭建的两种方法

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

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

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

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都在在同一网段

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: