且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

LVS-DR负载均衡RIP和VIP在不同网络的实现

更新时间:2022-02-24 06:40:33

LVS-DR负载均衡RIP和VIP在不同网络的实现

实验前准备

均已关闭防火墙

centos7:

systemctl stopfirewalld

centos6:

serviceiptables stop

 

均已禁用SELinux

setenforce 0

 

web1、web2准备apache服务

web1和web2:

yum installhttpd -y

web1:

echo192.168.142.132 >/var/www/html/index.html

service httpdstart

web2:

echo192.168.142.130 >/var/www/html/index.html

systemctlstart httpd

 

网络拓扑在VMware中配置网段


LVS-DR负载均衡RIP和VIP在不同网络的实现

客户端

LVS-DR负载均衡RIP和VIP在不同网络的实现


路由端

LVS-DR负载均衡RIP和VIP在不同网络的实现



lvs server

LVS-DR负载均衡RIP和VIP在不同网络的实现

web1同web2

LVS-DR负载均衡RIP和VIP在不同网络的实现 


 

一.实验环境介绍

web1为centos6.9

其余均为centos7.3

二.地址规划

如图所示:

VIP使用172.18.0.0/16网络

RIP使用192.168.142.0/24网络

 

1.Real Server的RIP的规划:

eth0-->RS1:192.168.142.132/24

ens33-->RS2:192.168.142.130/24

 

2.Direcotr的LVSServer的地址规划:

ens33-->DIP:192.168.142.129/24

ens33:0-->VIP:172.18.253.53/16

 

3.客户端IP规划:

ens33-->192.168.244.128/24

4.路由:

ens33-->192.168.244.129/24

ens37-->172.18.253.251/16

ens38-->192.168.142.133/24

.   DR模型实现负载均衡的工作原理

     NAT模型的实现方式,因为进出的每个数据包都要经过DirectorServer,当集群系统负载过大的时候Director Server将会成为整个集群系统的瓶颈,那么DR模型就避免了这样的情况发生,DR模型在只有请求的时候才会经过Director Server, 回应的数据包由RealServer 直接响应用户不需要经过Director Server,其实三种模型中最常用的也就是RIPVIP在不同网络的DR模型了,下面来说DR模型具体是怎么实现负载均衡的,根据上图,

1.首先客户端用户用CIP请求VIP

2.根据上图可以看到,不管是DirectorServer还是Real Server上都需要配置VIP,那么当用户请求到达我们的集群网络的前端路由器的时候,请求数据包的源地址为CIP目标地址为VIP,此时路由器会发广播问谁是VIP,那么我们集群中所有的节点都配置有VIP,此时谁先响应路由器那么路由器就会将用户请求发给谁,这样一来我们的集群系统是不是没有意义了,那我们可以在网关路由器上配置静态路由指定VIP就是Director Server,或者使用一种机制不让Real Server 接收来自网络中的ARP地址解析请求,这样一来用户的请求数据包都会经过DirectorServre

3.当DirectorServer收到用户的请求后根据此前设定好的调度算法结果来确定将请求负载到某台Real Server上去,假如说此时根据调度算法的结果,会将请求负载到Real Server 1上面去,此时Director Server 会将数据帧中的目标MAC地址修改为RealServer1MAC地址,然后再将数据帧发送出去;

4.当Real Server1 收到一个源地址为CIP目标地址为VIP的数据包时,RealServer1发现目标地址为VIP,VIP是自己,于是接受数据包并给予处理,Real Server1处理完请求后,会将一个源地址为VIP目标地址为CIP的数据包发出去,此时的响应请求就不会再经过DirectorServer,而是直接响应给用户;

四.架构实现

 

1.客户端配置

[root@www ~]#route adddefault gw 192.168.244.129

[root@www ~]# route -n

Kernel IP routing table

Destination    Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0      192.168.244.129      255.255.255.0  UG    0      0     0 ens33

192.168.244.0   0.0.0.0         255.255.255.0   U    0      0     0 ens33


2.路由配置

echo 1>/proc/sys/net/ipv4/ip_forward #开启路由转发功能


3.lvs配置

DIP设置:

[root@lvs network-scripts]# pwd

/etc/sysconfig/network-scripts

[root@lvs network-scripts]# cat ifcfg-ens33

DEVICE="eth0"

BOOTPROTO="static"

ONBOOT="yes"

TYPE="Ethernet"

IPADDR=192.168.142.129

NETMASK=255.255.255.0

GATEWAY=172.18.253.251


VIP设置:

(1).不同网络:

[root@lvs network-scripts]#ifconfig ens33:0 172.18.253.53/16 up

(2).同一网络的只广播给自己;本实验不需要设置广播

[root@lvs network-scripts]#ifconfigens33:0 172.18.253.53 netmask255.255.255.255 broadcast 172.18.253.53 up

 

配置路由:

[root@node1 network-scripts]#route add -host 172.18.253.53 dev lo:0 

[root@lvs network-scripts]#route add default gw 192.168.142.133 dev ens33

4.Real Server设置:

web1的网卡的ip配置:

[root@node1 network-scripts]# pwd

/etc/sysconfig/network-scripts

[root@node1 network-scripts]# cat ifcfg-ens33

DEVICE="eth0"

BOOTPROTO="static"

ONBOOT="yes"

TYPE="Ethernet"

IPADDR=192.168.142.132

NETMASK=255.255.255.0

GATEWAY=172.18.253.251


需要指定网关:

[root@node1 network-scripts]#route add default gw 192.168.142.133

RS上配置内核参数,抑制ARP 

[root@node1 network-scripts]#echo 2 >/proc/sys/net/ipv4/conf/all/arp_announce

[root@node1 network-scripts]#echo 2 >/proc/sys/net/ipv4/conf/ens33/arp_announce

[root@node1 network-scripts]#echo 1 >/proc/sys/net/ipv4/conf/ens33/arp_ignore

[root@node1 network-scripts]#echo 1 >/proc/sys/net/ipv4/conf/all/arp_ignore

RS上设置VIP地址:

[root@node1 network-scripts]#ifconfig lo:0 172.18.253.53 netmask 255.255.255.255 broadcast 172.18.253.53 up

RS上添加路由:

[root@node1 network-scripts]#route add -host 172.18.253.53 devlo:0 


5.web2的配置:跟web1一致

设置RIP地址: 

#ifconfig eth0 192.168.142.130/24 up

#route add default gw 192.168.142.133

配置arptables:

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

#echo 2 >/proc/sys/net/ipv4/conf/eth0/arp_announce

#echo 1 >/proc/sys/net/ipv4/conf/eth0/arp_ignore

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

设置VIP地址:

#ifconfig lo:0 172.18.253.53 netmask 255.255.255.255 broadcast 172.18.253.53 up

添加路由:

#route add -host 172.18.253.53 dev lo:0


6.LVS Server上定义集群服务:

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

#ipvsadm  -a -t  172.18.253.53:80 -r 192.168.142.130 -g

#ipvsadm  -a -t  172.18.253.53:80 -r 192.168.142.132 -g

#systemctl  restart ipvsadm

测试实现http均衡负载

LVS-DR负载均衡RIP和VIP在不同网络的实现 


另外LVS还可以根据连接类型,比如长连接和短连接,来设置相关超时时间,总之,根据应用场景来选择!



本文转自 工运搬运维 51CTO博客,原文链接:http://blog.51cto.com/13157015/1975162,如需转载请自行联系原作者