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,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
10月前
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
405 11
|
网络协议 网络虚拟化 网络架构
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(上)
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(上)
507 150
|
负载均衡 安全 算法
slb网络性能瓶颈
【11月更文挑战第2天】
338 7
|
负载均衡 网络协议 算法
OSPF 中的负载均衡:优化网络流量分布
OSPF 中的负载均衡:优化网络流量分布
744 0
|
网络协议 数据安全/隐私保护 网络架构
网络工程师:RIP常用命令
【7月更文挑战第4天】
797 1
网络工程师:RIP常用命令
|
网络协议 数据安全/隐私保护 网络虚拟化
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(下)
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(下)
310 0
|
负载均衡 网络协议 安全
解析网络流量管理方案:简化基于云的DNS负载均衡
解析网络流量管理方案:简化基于云的DNS负载均衡
296 1
|
缓存 负载均衡 算法
(四)网络编程之请求分发篇:负载均衡静态调度算法、平滑轮询加权、一致性哈希、最小活跃数算法实践!
先如今所有的技术栈中,只要一谈关于高可用、高并发处理相关的实现,必然会牵扯到集群这个话题,也就是部署多台服务器共同对外提供服务,从而做到提升系统吞吐量,优化系统的整体性能以及稳定性等目的。
568 2
|
网络协议 算法 网络架构
|
负载均衡 监控 前端开发
在Linux中,如何配置负载均衡器以分配网络流量?
在Linux中,如何配置负载均衡器以分配网络流量?

热门文章

最新文章

相关实验场景

更多