lvs DR模式负载均衡实操

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

ps:做 dr 模式 之前,先把之前做过的操作清空掉

1、ipvsadm -ln 查看规则

2、ipvsadm -C 清空规则

3、ipvsadm -ln 确认

4、iptables -t nat -F: 清空iptables的nat规则

5、master和slave把网卡所对应的网关(GATEWAY)改回来

vim /etc/sysconfig/network-scripts/ifcfg-ens33

6、dr用不到ens37这个网卡(192.168.56.128)

ifdown ens37

[root@www ~]# ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

 -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.0.133:80 rr

 -> 192.168.0.134:80             Route   1      0          4        

 -> 192.168.0.140:80             Route   1      0          4      

[root@www ~]# ipvsadm -C      //清空规则

[root@www ~]# ipvsadm -ln      //确认是否清空

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

 -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

[root@www ~]# iptables -t nat -F    //清空iptables的nat规则

5、master和slave把网卡所对应的网关(GATEWAY)改回来

vim /etc/sysconfig/network-scripts/ifcfg-ens33

[root@master ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

[root@master ~]# systemctl restart network

[root@slave ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

[root@slave ~]# systemctl restart network

一、DR  模式 VS  NAT 模式

缺点:比较浪费公网ip,每一个rs都必须要有一个独立的公网 ip

优点:用户的请求直接吐给客户端,不借助于分发器dir

 

实验环境:

(1)lvs_dir:192.168.0.139

(2)master:192.168.0.134

(3)slave:192.168.0.140

都看成对外的公网 ip

   另外,

   (a)还需要一个虚拟ip(192.168.0.133)

   (b)测试机器:192.168.0.130

二、分发器 dir 设置

1、编辑脚本

vim  /usr/local/sbin/lvs_dr.sh

#打开端口转发

echo 1 > /proc/sys/net/ipv4/ip_forward

ipv=/sbin/ipvsadm

vip=192.168.0.133

dengserver1=192.168.0.134

dengserver2=192.168.0.140

ifconfig ens33:0 $vip broadcast $vip netmask 255.255.255.255 up

#增加一条路由

route add -host $vip dev ens33:0

$ipv -C

$ipv -A -t $vip:80 -s rr

$ipv -a -t $vip:80 -r $dengserver2:80 -g -w 1

$ipv -a -t $vip:80 -r $dengserver1:80 -g -w 1

参数说明:

-g:表示 dr 模式

-m:表示 nat 模式

2、执行脚本 sh !$

3、ipvsadm -ln  多出一个vip 192.168.0.133

[root@www ~]# ipvsadm -ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

 -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.0.133:80 rr

 -> 192.168.0.134:80             Route   1      0          0        

 -> 192.168.0.140:80             Route   1      0          0    

三、真实服务器 real server 设置

1、rs1,rs2都写脚本: vim /usr/local/sbin/lvs_rs.sh

(1)配置vip,绑定的网卡不是eth0,而是在回环地址 lo 上

(2)增加路由,调整arp相关的内核参数

写入:

#!/bin/bash

vip=192.168.0.133

ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up

route add -host $vip lo:0

#调整内核参数

echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore

echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

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

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

调整arp内核参数的意义:

百度:

(a)ARP广播会产生的问题

 

当客户端发起访问VIP 对应的域名的请求(curl 192.168.131.100)时,根据网络通信原理会产生ARP 广播,因为负载均衡器dir和真实的服务器rs在同一网络并且VIP设置在集群中的每个节点上,此时集群内的真实服务器会尝试回答来自客户端计算机的查找VIP的ARP广播,这就会产生问题,大家都说我是"VIP"。

 

(b)为了达到负载均衡的目的,必须想法办让真实服务器忽略来自客户端计算机的ARP广播请求 ——》 调整arp内核参数

 

问题:lvs有vip,real server也有vip,但client请求只访问lvs的vip?

 ——》 在所有real server上要关闭所有arp请求,导致不能响应client发出的arp请求(相当于哑巴),只有lvs可以响应,这样请求就会传到lvs的vip中,这就是为什么要禁止real server 的 arp请求和响应

 

 

##############################

 

2、rs1,rs2执行脚本: sh  /usr/local/sbin/lvs_rs.sh

 

四、测试

1、浏览器访问vip :192.168.0.133 ——》 不精准(刷新无数次都是master,然后等一段时间,刷新无数次也是slave = =,所以才说不精准咯~~)

2、在另外一台linux服务器上进行测试:

[root@dengserver2 ~]# curl 192.168.0.133

this is master server

[root@dengserver2 ~]# curl 192.168.0.133

this is slave server

[root@dengserver2 ~]# curl 192.168.0.133

this is master server

[root@dengserver2 ~]# curl 192.168.0.133

this is slave server

[root@dengserver2 ~]# curl 192.168.0.133

this is master server

[root@dengserver2 ~]# curl 192.168.0.133

this is slave server



本文转自 IT_外卖小哥  51CTO博客,原文链接:http://blog.51cto.com/jinlong/1956187
相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
3月前
|
负载均衡 网络协议 算法
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
|
12天前
|
负载均衡 网络协议
使用LVS搭建集群实现负载均衡(二)安装使用
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡(二)安装使用
30 4
|
12天前
|
存储 负载均衡 算法
使用LVS搭建集群实现负载均衡(一)
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡
35 4
|
1月前
|
负载均衡 网络协议 算法
使用IPVSADM配置LVS负载均衡
使用IPVSADM配置LVS负载均衡
|
2月前
|
负载均衡 运维 监控
负载均衡与容错性:集群模式在分布式系统中的应用
本文由小米分享,解释了分布式系统中的集群模式。集群模式是通过组合多个服务器节点,共同提供服务,实现高可用性、负载均衡和扩展性。文章介绍了主控节点的角色及其高可用性策略,如主备模式和选举机制,并以Zookeeper为例详细阐述了其工作机制。集群模式的优势在于高可用性、负载均衡、扩展性和数据一致性,但也面临节点通信、数据一致性、故障检测和管理等挑战。最后,作者鼓励读者讨论和交流相关技术问题。
250 5
|
3月前
|
负载均衡 网络协议
NAT模式 LVS负载均衡部署
NAT模式 LVS负载均衡部署
|
3月前
|
负载均衡 算法 网络协议
LVS、Nginx和HAProxy负载均衡器对比总结
LVS、Nginx和HAProxy负载均衡器对比总结
|
10月前
|
负载均衡 应用服务中间件 Linux
企业实战(13)LVS负载均衡NAT(网络地址转换)模式实战详解(一)
企业实战(13)LVS负载均衡NAT(网络地址转换)模式实战详解(一)
145 0
|
10月前
|
存储 负载均衡 网络协议
企业实战(13)LVS负载均衡DR(直接路由)模式实战详解(二)
企业实战(13)LVS负载均衡DR(直接路由)模式实战详解(二)
173 0
|
9月前
|
负载均衡 应用服务中间件 Linux
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
629 0