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