【LVS实战】03 LVS负载均衡-DR模式实验

news2025/2/26 15:09:40

本文介绍,如何通过ipvsadm配置负载均衡,并且转发模式为DR直接路由模式

一、网络拓扑

如下图:
在这里插入图片描述
LVS负载均衡的机器,配置了一个VIP:10.1.0.7

二、前置准备

每台机器关闭防火墙

systemctl stop firewalld

RS装好nginx,我测试时用的docker来装的
为以验证结果,对应的nginx首页面,设置如下:

root@cd7e26aa7159:~# cat /usr/share/nginx/html/index.html 
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>10.1.0.9 </h1>
</body>
</html>

分别输出两台机器的IP10.1.0.9 和10.1.0.10

三、配置过程

1、配置LVS虚拟IP(VIP)

在这里插入图片描述

[root@localhost ~]# ifconfig enp0s8:0 10.1.0.7/16

配置后的检查结果

[root@localhost ~]# ifconfig enp0s8:0
enp0s8:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.1.0.7  netmask 255.255.0.0  broadcast 10.1.255.255
        ether 08:00:27:b8:e6:5d  txqueuelen 1000  (Ethernet)

在宿主机或者同局域网的机器上ping 10.1.0.7

C:\Users\Administrator>ping 10.1.0.7
正在 Ping 10.1.0.7 具有 32 字节的数据:
来自 10.1.0.7 的回复: 字节=32 时间<1ms TTL=64
来自 10.1.0.7 的回复: 字节=32 时间=1ms TTL=64
来自 10.1.0.7 的回复: 字节=32 时间<1ms TTL=64

2、手工执行配置添加LVS服务并增加两台RS

[root@localhost ~]# ipvsadm -C #清空ipvs历史设置
[root@localhost ~]# ipvsadm --set 30 5 60 #设置超时时间(tcp tcpfin udp)
[root@localhost ~]# ipvsadm -A -t 10.1.0.7:80 -s rr -p 20

#说明:

#-A:添加一个虚拟路由主机(LB)
#-t:指定虚拟路由主机的VIP地址和监听端口
#-s:指定负载均衡算法
# -p:指定会话保持时间

[root@localhost ~]# ipvsadm -a -t 10.1.0.7:80 -r 10.1.0.10:80 -g -w 1
[root@localhost ~]# ipvsadm -a -t 10.1.0.7:80 -r 10.1.0.9:80 -g -w 1

#说明:
#-a:添加RS节点
#-t:指定虚拟路由主机的VIP地址和监听端口
#-r:指定RS节点的RIP地址和监听端口
#-g:指定DR模式
#-w:指定权值

查看lvs配置结果

[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.1.0.7:80 rr persistent 20
  -> 10.1.0.9:80                  Route   1      0          0         
  -> 10.1.0.10:80                 Route   1      0          0  

ipvs配置删除方法

[root@lvs01 ~]# #ipvsadm -D -t 10.1.0.7:80 -s rr       #删除虚拟路由主机
[root@lvs01 ~]# #ipvsadm -d -t 10.1.0.7:80 -r 10.1.0.9:80     #删除RS节点

此时,可以打开浏览器访问http://10.1.0.8体验结果,如果没意外,是无法访问的。(RS将包丢弃了)

[root@localhost ~]# curl -X GET http://10.1.0.7
#无法请求

3、手工在RS端绑定lo网卡及抑制ARP

在每台realServer上设置

[root@localhost ~]#  ifconfig lo:0 10.1.0.7/32 up
[root@localhost ~]# ifconfig lo:0
lo:0: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 10.1.0.7  netmask 0.0.0.0
        loop  txqueuelen 1000  (Local Loopback)

上面的配置,重启后就掉了,工作中得写在配置文件里面
todo 上述配置,如何保存到配置文件?

vim /etc/sysconfig/network-scripts/ifcfg-lo:0

添加路由

[root@localhost ~]# route add -host 10.1.0.7 dev lo
[root@localhost ~]# route -n | grep 10.1.0.7
10.1.0.7        0.0.0.0         255.255.255.255 UH    0      0        0 lo

4、手工在RS端抑制ARP响应

执行下面四句命令

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

5、测试一下效果

在10.1.0.11机器,即上图中的机器B上执行命令

[root@localhost ~]# curl -X GET http://10.1.0.7
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>10.1.0.9 </h1>
</body>
</html>
[root@localhost ~]# curl -X GET http://10.1.0.7
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>10.1.0.10 </h1>
</body>
</html>

在LVS机器上抓包
可以看到只有请求(10.1.0.11)进来(10.1.0.7),并没有返回报文
在这里插入图片描述

在RS机器上抓包
可以看到请求的ip是client ip(10.1.0.11),而不是LVS的IP,同时返回报文,是直接返回给client
在这里插入图片描述

6、删除RS,试下负载均衡效果

由于现在没有健康检查功能,所以删除实例我们手工来操作一下

删除一台RS,再试着请求

[root@localhost ~]# ipvsadm -d -t 10.1.0.7:80 -r 10.1.0.10:80
[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.1.0.7:80 rr persistent 20
  -> 10.1.0.9:80                  Route   1      0          0    

可以看到现在每次都只能请求到10.1.0.9的那台服务了

[root@localhost ~]# curl -X GET http://10.1.0.7
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>10.1.0.9 </h1>
</body>
</html>

最后再把RS加回去

 ipvsadm -a -t 10.1.0.7:80 -r 10.1.0.10:80 -g -w 1

7、保存LVS规则到配置文件,保证重启不丢失

[root@localhost ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@localhost ~]# cat /etc/sysconfig/ipvsadm
-A -t localhost.localdomain:http -s rr -p 20
-a -t localhost.localdomain:http -r 10.1.0.9:http -g -w 1
-a -t localhost.localdomain:http -r 10.1.0.10:http -g -w 1
[root@localhost ~]# service ipvsadm restart ##重启ipvsadm看看
Redirecting to /bin/systemctl restart ipvsadm.service
[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  127.0.0.1:80 rr persistent 20
  -> 10.1.0.9:80                  Route   1      0          0         
  -> 10.1.0.10:80                 Route   1      0          0  

todo 两个问题

  • 1是VIP设置,重启后丢失了
  • 2是ipvsadm配置的东西重启后也丢失了,第7步配置没生效

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1158633.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

01【保姆级】-GO语言特点和安装使用和hello

01-GO语言基本概念和安装使用 一、概念1.1 Go语言的诞生1.2 GO语言的特点&#xff1a; 二、安装go2.1 安装2.2 安装环境变量 三、下载&安装goland3.1 官网下载3.2 下载后&#xff0c;进行安装&#xff1a; 四、编写Hello&#xff08;详解&#xff09; 如何学习&#xff1a;…

AI视频监控汇聚平台EasyCVR增加算法功能小tips

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等&#xff0c;能对外…

【原理】循环水系统【组件介绍】

目录 前言一、工作原理二、主要组件2-1、 保温水箱2-2、 热水泵2-3、 电加热器2-4、 管式换热器2-5、 开关阀、流量阀和调节阀2-6、 冷却塔2-7、 冷水泵 总结 前言 循环水系统是一种用于维持恒定温度或温度范围的工业或建筑设施中的热力控制系统。该系统通过循环水来传递热量&a…

智慧公厕:科技赋予公共卫生新生命,提升城市管理品质

在现代化城市中&#xff0c;公共卫生设施的发展与提升一直是对城市管理者和市民的共同期望。然而&#xff0c;传统的公共厕所常常令人困扰&#xff0c;脏乱臭成为难题。为了解决这一难题&#xff0c;广州中期科技科技有限公司全新升级的智慧公厕整体解决方案&#xff0c;补誉为…

配音软件怎么选择?(简单又实用)

随着短视频、自媒体的普及推广越来越好&#xff0c;想必大家都了解到配音软件的重要性了&#xff0c;用对配音软件&#xff0c;借助AI的力量让我们的作品达到事半功倍是效果&#xff0c;目前市面上有很多不同类型的配音软件&#xff0c;从专业的录音室级别的软件到简单易用的家…

Videos

文章目录 Video ClassificationEarly Fusion, Late Fusion, 3D CNN,Recognizing Actions from Motion 从动作中识别行为接下来介绍新技术回顾一下&#xff1a;非常多的video工作 Video Classification Early Fusion, Late Fusion, 3D CNN, Recognizing Actions from Motion 从…

谷歌浏览器升级http强转https解决

mac电脑有点卡&#xff0c;重启以后&#xff0c;谷歌浏览器默认升级 后续访问公司http网址&#xff0c;自动跳转为https网址&#xff0c;导致进入不了平台 网上找了很多方案都是&#xff0c;地址栏中输入【chrome://net-internals/#hsts】&#xff0c;在最下面的【Delete dom…

软件测试常见1000道面试题(答案+文档)

软件测试面试百题 1、问&#xff1a;你在测试中发现了一个bug&#xff0c;但是开发经理认为这不是一个bug&#xff0c;你应该怎样解决? 首先&#xff0c;将问题提交到缺陷管理库里面进行备案。 然后&#xff0c;要获取判断的依据和标准&#xff1a; 根据需求说明书、产品说…

利用移动互联、物联网、智能算法、地理信息系统、大数据分析等信息技术开发的智慧工地云平台源码

智慧工地是指利用移动互联、物联网、智能算法、地理信息系统、大数据挖掘分析等信息技术&#xff0c;提高项目现场的“人•机•料•法•环•安”等施工要素信息化管理水平&#xff0c;实现工程施工可视化智能管理&#xff0c;并逐步实现绿色生态建造。 技术架构&#xff1a;微…

ELK 日志分析实践

一 ELK 1 ELK 概述 ELK是一整套解决方案&#xff0c;是三个软件产品的首字母缩写&#xff0c;很多公司都在使用&#xff0c;如:Sina、携程、华为、美团等 Elasticsearch&#xff1a;负责日志检索和储存 Logstash&#xff1a;负责日志的收集和分析、处理 Kibana&#xf…

瑞明达:脚踏实地,为实体经济贡献“瑞明达”力量

实体经济是指以实际物质生产和经营为主要特征的经济形态&#xff0c;是经济发展的基础和主体。瑞明达团队一直关注着实体经济的发展&#xff0c;也在不断探索如何运用科技手段和管理经验助力实体经济的发展。团队将从几个方面介绍瑞明达团队的看法和实践经验。 实体经济在国家经…

缺失的第一个正数

题目链接 缺失的第一个正数 题目描述 注意点 实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案 解答思路 关键是要实现时间复杂度为 O(n) 并且只使用常数级别额外空间&#xff0c;需要将数字出现情况存储再原数组上&#xff0c;思路为&#xff1a;假设数组的长…

Instagram 运营技巧,这4个基本设置很重要!

ins这个平台相信很多跨境卖家都不陌生&#xff0c;但想要运营好这个平台却不是那么容易的。想要在ins上获得更多的自然流量&#xff0c;基本设置和功能就要搞懂&#xff0c;今天就给大家分享4个基本的ins设置&#xff0c;以及如何更好地使用 Hashtag&#xff01; Instagram Bio…

在防御CC攻击上,高防CDN起着什么作用?

在当今数字化世界中&#xff0c;网络安全攻击已经成为普遍而严峻的威胁。特别是分布式拒绝服务攻击&#xff08;DDoS&#xff09;和CC攻击&#xff0c;它们有潜力使网络服务陷入完全瘫痪状态。为了应对这些威胁&#xff0c;采用高级防御CDN&#xff08;内容传递网络&#xff09…

Navicat连接postgresql数据库 -->华为云服务器

Navicat连接postgresql数据库 -->华为云服务器 2.开放服务器端口&#xff1a;54323.Navicat连接postgresql数据库 2.开放服务器端口&#xff1a;5432 1-1.选择安全组 1-2. 添加规则 1-3.开放5432端口规则 1-4.查看规则 3.Navicat连接postgresql数据库

自动化测试入门 —— 自动化测试概论

整篇论述总的来讲会很长&#xff0c;从自动化的思维、模型、工具&#xff0c;到各层次的自动化测试技术、测试框架、测试平台&#xff0c;包括面向未来的自动化技术都将涉及&#xff0c;因此打算拆成几个部分去写。此外&#xff0c;由于涉及的范围比较广泛&#xff0c;部分内容…

英飞凌TC3xx-Overlay

目录 1.数据访问重定向 2.寄存器说明 3.Overlay功能配置 3.1 确认用于重定向的CPU 3.2 配置重定向Block大小 3.3 配置目标地址和重定向地址 4.结果验证 5.小结 今天说要开个专栏讲讲XCP标定&#xff0c;但在将标定之前&#xff0c;先把英飞凌专门为标定功能设计overlay…

应用RFID标签实现工业智能制造生产线的可视化管理

随着自动化和信息化的不断推广&#xff0c;工业智能化成为了备受关注的话题&#xff0c;对于企业来说&#xff0c;生产线上的工艺流程和各个环节的信息是至关重要的&#xff0c;在物联网感知层中&#xff0c;RFID作为重要的核心组成部分&#xff0c;通过非接触式的无感知识别和…

WebSocket协议在java中的应用

文章目录 一、WebSocket介绍1.Http和WebSocket比较&#xff1a;2.应用场景 二、WebSocket使用步骤1.客户端搭建2.导入maven坐标3.导入WebSocket服务端组件WebSocketServer&#xff0c;用于和客户端通信1.ServerEndpoint2.OnOpen3.OnMessage4.OnClose 4.导入配置类WebSocketConf…

直流高压发生器技术特点

武汉凯迪正大直流高压发生器产品技术特点&#xff1a; 1、体积更小、重量更轻、更美观、更可靠、操作简便、功能齐全&#xff0c;便于野外使用。 2、采用PWM中频脉宽调制技术、脉冲串逻辑阵列调制&#xff0c;采用大功率IGBT器件和电压大反馈&#xff0c;从而使输出高压稳定度…