LVS负载均衡-DR模式

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
应用型负载均衡 ALB,每月750个小时 15LCU
简介:

环境:

DIR:eth0   172.16.115.100     eth0:0   172.16.115.200(vip)

RS1:eth0   172.16.115.157         lo:0   172.16.115.200(vip)

RS2:eth0   172.16.115.202         lo:0   172.16.115.200(vip)

   wKioL1izoKWAfutAAAA3AzQDZhY541.png

DIR主机

1. 安装lvs软件包ipvsadm和nginx,编辑hosts文件/etc/hosts,修改hostname为dr

    阿里云扩展源wget http://mirrors.aliyun.com/repo/epel-6.repo  -P /etc/yum.repos.d/

    命令 yum install -y ipvsadm  nginx


2. 编写DR模式的脚本vim /usr/local/sbin/lvs_dr.sh

    内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
   #! /bin/bash
     #开启转发规则
     echo  1 >  /proc/sys/net/ipv4/ip_forward
      
     #定义变量参数
     ipv= /sbin/ipvsadm
     vip=172.16.115.200
     rs1=172.16.115.157
     rs2=172.16.115.202
     
     #配置虚拟IP,添加路由
     ifconfig  eth0:0 $vip broadcast $vip netmask 255.255.255.255 up
     route add -host $vip dev eth0:0
     
     #设置dr和rs主机,g表示DR模式
     $ipv -C
     $ipv -A -t $vip:80 -s rr
     $ipv -a -t $vip:80 -r $rs1:80 -g -w 1
     $ipv -a -t $vip:80 -r $rs2:80 -g -w 1


3. 执行脚本/usr/local/sbin/lvs_dr.sh;查看ipvsadm生成的转发规则

    命令 sh /usr/local/sbin/lvs_dr.sh

    命令 ipvsadm -ln

 wKioL1iziZPRyCKOAAAiaS_M9y8301.png

  

RS1/RS2主机

1. 编写脚本vim /usr/local/sbin/lvs_rs.sh

    内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
   #! /bin/bash
     #指定vip是在回环地址地址上;子网掩码全设255,表明只发不回
     vip=172.16.115.200
     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_ignore,接受来自其他主机arp请求的响应级别

              当主机有两块网卡1.1.1.1和2.2.2.2,客户机通过1.1.1.1访问2.2.2.2时:

              1)arp_ignore=0,客户机可以收到响应,源IP为2.2.2.2,但是MAC是1.1.1.1的

              2)arp_ignore=1,主机拒绝,客户机无法收到响应

              本实验中:dir的两块网卡,共用在eth0上;rs的两块网卡分别为eth0和lo,参数被拒绝;所以只有dir能收到vip的请求


     arp_announce,arp通告级别

               每台主机加入网络之后,就会向网络中通告自己的IP和mac对应信息,方便其他主机和自己通信:

               1)arp_announce=0,告知网络中本机所有接口的任何地址信息

               2)arp_announce=2,只向目标网络通告与其网络相匹配的地址信息

               本实验中:rs的vip只处理来自DR转发响应,所以设置为2


2. RS1和RS2分别启动脚本/usr/local/sbin/lvs_rs.sh

    说明:执行成功之后,会在回环地址网卡上生产一个虚拟ip 172.16.115.200

    命令 sh  /usr/local/sbin/lvs_rs.sh

 wKiom1izicmgYVYiAABr8BAxmuw799.png



测试

1.  分别修改rs1和rs2首页内容,并启动Nginx

     rs1:echo "hello,rs1" > /usr/share/nginx/html/index.html

     rs2:echo "hello,rs2" > /usr/share/nginx/html/index.html

     命令 /etc/init.d/nginx start


2. 用客户机curl测试虚拟ip172.16.115.200

    命令 curl 172.16.115.200

    结果:权重1:1交替出现RS1和RS2内容

 wKiom1izifajIfImAAAizI9CXUU809.pngspacer.gif


3. dir上修改配置文件/usr/local/sbin/lvs_dr.sh,设置权重

    说明:配置文件需先down掉eth0:0,再开启

    内容:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
   #! /bin/bash
     echo  1 >  /proc/sys/net/ipv4/ip_forward
     
     ipv= /sbin/ipvsadm
     vip=172.16.115.200
     rs1=172.16.115.157
     rs2=172.16.115.202
     
     ifconfig  eth0:0 down
     ifconfig  eth0:0 $vip broadcast $vip netmask 255.255.255.255 up
     route add -host $vip dev eth0:0
     
     $ipv -C
     $ipv -A -t $vip:80 -s wrr
     $ipv -a -t $vip:80 -r $rs1:80 -g -w 4
     $ipv -a -t $vip:80 -r $rs2:80 -g -w 1


    结果:4次rs1和1次rs2交替出现

 wKiom1izihiycM60AAAiRgJ78Y4739.pngspacer.gif










本文转自 huangzp168 51CTO博客,原文链接:http://blog.51cto.com/huangzp/1901552,如需转载请自行联系原作者
相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
15天前
|
运维 负载均衡 网络协议
LVS+Keepalived 负载均衡
LVS+Keepalived 负载均衡
44 8
LVS+Keepalived 负载均衡
|
13天前
|
域名解析 运维 负载均衡
LVS+Keepalived 负载均衡(二)28-1
【8月更文挑战第28天】LVS+Keepalived 负载均衡 配置 LVS VIP
36 5
|
5月前
|
负载均衡 网络协议 算法
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
|
2月前
|
负载均衡 网络协议 Linux
在Linux中, LVS三种模式的工作过程是什么?
在Linux中, LVS三种模式的工作过程是什么?
|
2月前
|
负载均衡 网络协议
使用LVS搭建集群实现负载均衡(二)安装使用
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡(二)安装使用
48 5
|
2月前
|
存储 负载均衡 算法
使用LVS搭建集群实现负载均衡(一)
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡
88 5
|
2月前
|
负载均衡 监控 网络协议
在Linux中,LVS-DR模式原理是什么?
在Linux中,LVS-DR模式原理是什么?
|
2月前
|
负载均衡 算法 Linux
在Linux中,LVS-NAT模式的原理是什么?
在Linux中,LVS-NAT模式的原理是什么?
|
2月前
|
缓存 负载均衡 算法
在Linux中, LVS负载均衡有哪些策略?
在Linux中, LVS负载均衡有哪些策略?
|
3月前
|
负载均衡 网络协议 算法
使用IPVSADM配置LVS负载均衡
使用IPVSADM配置LVS负载均衡