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

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介:

LVS-DR模型架构图解:

        (172.16.0.1/16,192.168.0.254/24,192.168.1.254/24)

                            Router

                                        LVS Server  DIP:192.168.0.30/24 VIP:172.16.31.54/18

客户端IP:192.168.1.31/24   SW          WEB1:Real Server1 DIP:192.168.0.31/24 VIP:172.16.31.54/18

                                        WEB2:Real Server2 DIP:192.168.0.131/24 VIP:172.16.31.54/18

客户端和三台服务器分别连接SW,SW连接Router


一.实验环境介绍

路由器:存在多个网络 172.16.0.1,192.168.0.254,192.168.1.254

交换机:连接不同网络的主机

客户端:Windos XP;客户端IP地址为:192.168.1.31/24

LVS:Director 负载均衡服务器,其DIP和VIP在不同网段;

RS:Real Server;后端web服务器;其RIP和VIP在不同网段;

 

二.地址规划

VIP使用172.16.0.0/16网络

RIP使用192.168.0.0/24网络

 

1.Real Server的RIP的规划:

RS1:192.168.0.31/24

RS2:192.168.0.131/24

 

2.Director的LVS Server的地址规划:

DIP:192.168.0.130/24

VIP:172.16.31.54/16

 

3.客户端IP规划:

172.16.31.31/16或者192.168.1.31/24

RS响应客户端请求报文,需要将网关指向192.168.0.254/24,由192.168.0.254转发其响应报文到172.16.31.0/16或者192.168.1.0/24这个网络中来;

更真实的设计:将客户端的IP地址设置成192.168.1.31/24来实现


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

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

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

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

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

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

 

四.架构实现

 

1.LVS Server配置

DIP设置:

[root@lvs network-scripts]# pwd

/etc/sysconfig/network-scripts

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

DEVICE="eth0"

BOOTPROTO="static"

HWADDR="08:00:27:FF:73:49"

NM_CONTROLLED="yes"

ONBOOT="yes"

TYPE="Ethernet"

IPADDR=192.168.0.130

NETMASK=255.255.255.0

GATEWAY=172.16.0.1


VIP设置:

(1).不同网络:

[root@lvs network-scripts]#ifconfig eth0:0 172.16.31.54/16 up

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

[root@lvs network-scripts]#ifconfig eth0:0 172.16.31.54 netmask 255.255.255.255 broadcast 172.16.31.54 up

 

配置路由:

[root@lvs network-scripts]# route add -host 172.16.31.54 dev eth0:0

 

 

2.Real Server设置:

RS1的网卡的ip配置:


[root@node1 network-scripts]# pwd

/etc/sysconfig/network-scripts

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

DEVICE="eth0"

BOOTPROTO="static"

HWADDR="08:00:27:41:D4:C9"

NM_CONTROLLED="yes"

ONBOOT="yes"

TYPE="Ethernet"

IPADDR=192.168.0.31

NETMASK=255.255.255.0

GATEWAY=172.16.0.1

 

需要指定网关:

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

 

3.在RS上配置arptables:

[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/eth0/arp_announce

[root@node1 network-scripts]#echo 1 >/proc/sys/net/ipv4/conf/eth0/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.16.31.54 netmask 255.255.255.255 broadcast 172.16.31.54 up

 

在RS上添加路由:

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

 

4.启动web服务;此处安装了LAMP架构+wordpress,可以参考我前面写的文章,这里就不重复了。

#service httpd start

#curl http://192.168.0.31

#curl http://172.16.100.8

 

5.RS2的配置:跟RS1一致的哦!

设置RIP地址: 

#ifconfig eth0 192.168.0.131/24 up

#route add default gw 192.168.0.254

配置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.16.31.54 netmask 255.255.255.255 broadcast 172.16.31.54 up

  

添加路由:

#route add -host 172.16.31.54 dev lo:0

  

#启动web服务

#service httpd start

#curl http://192.168.0.131

#curl http://172.16.31.54

 

 

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

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

#ipvsadm  –a  -t 172.16.31.54:80 -r 192.168.0.31 -g

#ipvsadm  –a  -t 172.16.31.54:80 -r 192.168.0.131 –g

 

设置完成后访问网页测试:

http://www.stu31.com/wp/


我们在LVS上查看一下连接状态:

[root@lvs ~]# ipvsadm -A -t 172.16.31.54:80 -s rr

[root@lvs ~]# ipvsadm -a -t 172.16.31.54:80 -r 192.168.0.31 -g

[root@lvs ~]# ipvsadm -a -t 172.16.31.54:80 -r 192.168.0.131 -g

[root@lvs ~]# ipvsadm -L -n

至此:LVS-DR模式的负载均衡实验完成!!!



本文转自 dengaosky 51CTO博客,原文链接:http://blog.51cto.com/dengaosky/1964534,如需转载请自行联系原作者

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
4月前
|
缓存 网络协议 安全
【网络工程师】<软考中级>解析协议ARP&路由协议RIP/OSPF/BGP
【1月更文挑战第27天】【网络工程师】<软考中级>解析协议ARP&路由协议RIP/OSPF/BGP
|
10月前
|
负载均衡 应用服务中间件 Linux
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
731 0
|
4月前
|
负载均衡 网络协议 算法
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
|
1月前
|
负载均衡 网络协议
使用LVS搭建集群实现负载均衡(二)安装使用
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡(二)安装使用
39 4
|
1月前
|
存储 负载均衡 算法
使用LVS搭建集群实现负载均衡(一)
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡
44 4
|
15天前
|
网络协议 算法 网络架构
|
16天前
|
缓存 负载均衡 算法
在Linux中, LVS负载均衡有哪些策略?
在Linux中, LVS负载均衡有哪些策略?
|
2月前
|
网络协议 数据安全/隐私保护 网络架构
网络工程师:RIP常用命令
【7月更文挑战第4天】
55 1
网络工程师:RIP常用命令
|
2月前
|
负载均衡 网络协议 算法
使用IPVSADM配置LVS负载均衡
使用IPVSADM配置LVS负载均衡
|
4月前
|
负载均衡 网络协议
NAT模式 LVS负载均衡部署
NAT模式 LVS负载均衡部署
下一篇
DDNS