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

简介:

2503a0288e717dad285e8c34223acc87.png-wh_

实验前准备

均已关闭防火墙

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中配置网段


442551a3a5e41078059fb7f01bacbda3.png-wh_

客户端

2044974b1d2c014326496c62847adf1f.png-wh_


路由端

b0dbd638ad60961d6d241c316d4eeb23.png-wh_



lvs server

c7a705382d25cc832cd82d4d41ef75af.png-wh_

web1同web2

e77e4f6cae6f74436b74cd53da9e4ef2.png-wh_ 


 

一.实验环境介绍

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均衡负载

3ff6d8a86e45473e3b605ca738ab4d92.png-wh_ 


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



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

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1月前
|
负载均衡 算法 应用服务中间件
面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
字节跳动面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
64 0
|
1月前
|
缓存 网络协议 安全
【网络工程师】<软考中级>解析协议ARP&路由协议RIP/OSPF/BGP
【1月更文挑战第27天】【网络工程师】<软考中级>解析协议ARP&路由协议RIP/OSPF/BGP
|
7月前
|
负载均衡 算法 5G
m基于5G通信的超密集网络多连接负载均衡和资源分配算法matlab仿真
m基于5G通信的超密集网络多连接负载均衡和资源分配算法matlab仿真
140 4
|
8月前
|
负载均衡 应用服务中间件 Linux
企业实战(13)LVS负载均衡NAT(网络地址转换)模式实战详解(一)
企业实战(13)LVS负载均衡NAT(网络地址转换)模式实战详解(一)
121 0
|
7月前
|
负载均衡 应用服务中间件 Linux
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
289 0
|
17天前
|
负载均衡 网络协议 算法
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
|
17天前
|
负载均衡 网络协议
NAT模式 LVS负载均衡部署
NAT模式 LVS负载均衡部署
|
1月前
|
负载均衡 算法 网络协议
【专栏】网络高可用性和负载均衡关键在于VRRP、VGMP和HRP协议
【4月更文挑战第28天】网络高可用性和负载均衡关键在于VRRP、VGMP和HRP协议。VRRP实现路由器冗余,保证流量转发;VGMP优化多播流量传输,适合多媒体服务;HRP提供无缝故障转移,适用于电信级网络。选择需考虑网络环境和业务需求,VRRP简单易部署,VGMP处理多播流量,HRP适合高稳定性场景。理解协议特点,确保网络最佳性能和可用性。
|
1月前
|
负载均衡 算法 网络协议
LVS、Nginx和HAProxy负载均衡器对比总结
LVS、Nginx和HAProxy负载均衡器对比总结
|
1月前
|
负载均衡 算法 安全
一文带你了解LVS负载均衡模式与F5负载均衡
一文带你了解LVS负载均衡模式与F5负载均衡
325 0