深入解析LVS命令参数及DR模式下的ARP抑制原理

深入解析LVS命令参数及DR模式下的ARP抑制原理


一、LVS简介

Linux Virtual Server (LVS) 是基于Linux内核的高性能负载均衡解决方案,支持NAT、DR(Direct Routing)和TUN(IP Tunneling)三种模式。其中,ipvsadm 是管理LVS配置的核心命令行工具。本文将详解 ipvsadm 的常用参数,并探讨DR模式下ARP抑制的必要性。


二、ipvsadm命令参数详解
1. 虚拟服务管理
  • 添加虚拟服务
    -A:添加虚拟服务(VIP),-t 指定TCP协议,-s 指定调度算法(如轮询rr、加权轮询wrr)。
    示例

    ipvsadm -A -t 192.168.1.100:80 -s rr
    
  • 修改/删除虚拟服务
    -E 修改,-D 删除。
    示例

    ipvsadm -E -t 192.168.1.100:80 -s wrr  # 修改调度算法
    ipvsadm -D -t 192.168.1.100:80         # 删除虚拟服务
    
2. 真实服务器管理
  • 添加真实服务器(RS)
    -a:添加RS,-r 指定RS地址,-g|i|m 指定模式(DR/NAT/TUN),-w 设置权重。
    示例

    ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.2:80 -g -w 1
    
  • 修改/删除真实服务器
    -e 修改,-d 删除。
    示例

    ipvsadm -e -t 192.168.1.100:80 -r 192.168.1.2:80 -w 5  # 修改权重为5
    ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.2:80       # 删除RS
    
3. 查看与清空配置
  • 查看当前规则
    -ln 以数字格式显示,--stats 显示统计信息。
    示例

    ipvsadm -ln          # 查看所有规则
    ipvsadm -ln --stats  # 查看流量统计
    
  • 清空所有配置

    ipvsadm -C
    
4. 持久化配置
  • 保存配置
    ipvsadm-save > /etc/sysconfig/ipvsadm
    
  • 恢复配置
    ipvsadm-restore < /etc/sysconfig/ipvsadm
    

三、DR模式下的ARP抑制
1. 为什么需要ARP抑制?

在DR模式下,负载均衡器(Director)和真实服务器(RS)共享同一个VIP。客户端请求首先到达Director,但响应数据由RS直接返回客户端(不经过Director)。此时若RS的网卡响应了VIP的ARP请求,会导致以下问题:

  • ARP冲突:客户端可能直接与RS通信,绕过负载均衡器。
  • 流量混乱:多台RS同时响应ARP,导致MAC地址漂移。
2. 如何配置ARP抑制?

通过修改Linux内核参数,禁止RS响应VIP的ARP请求。

  • 配置步骤
    a. 在RS上设置VIP到lo接口
    ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 up
    
    b. 修改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
    
    参数解释
    • arp_ignore=1:仅响应目标IP为本机接口的ARP请求(忽略lo接口的VIP)。
    • arp_announce=2:始终使用接口的本地IP作为ARP源地址(避免VIP暴露)。

四、完整DR模式配置示例
1. Director配置(负载均衡器)
# 添加虚拟服务
ipvsadm -A -t 192.168.1.100:80 -s rr# 添加真实服务器
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.2:80 -g
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.3:80 -g
2. 真实服务器配置
# 配置VIP到lo接口
ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 up# 启用ARP抑制
sysctl -w net.ipv4.conf.lo.arp_ignore=1
sysctl -w net.ipv4.conf.lo.arp_announce=2
sysctl -w net.ipv4.conf.all.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_announce=2

五、总结
  • ipvsadm命令:是LVS的核心管理工具,需熟练掌握虚拟服务和真实服务器的增删改查。
  • DR模式ARP抑制:通过限制RS的ARP响应,确保流量经过负载均衡器,避免数据链路层混乱。

通过合理配置LVS,可构建高性能、高可用的负载均衡集群,而理解底层原理(如ARP抑制)是避免“坑”的关键。

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

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

相关文章

阿里云一键部署DeepSeek-V3、DeepSeek-R1模型

目录 支持的模型列表 模型部署 模型调用 WebUI使用 在线调试 API调用 关于成本 FAQ 点击部署后服务长时间等待 服务部署成功后&#xff0c;调用API返回404 请求太长导致EAS网关超时 部署完成后&#xff0c;如何在EAS的在线调试页面调试 模型部署之后没有“联网搜索…

Win10环境借助DockerDesktop部署大数据时序数据库Apache Druid

Win10环境借助DockerDesktop部署最新版大数据时序数据库Apache Druid32.0.0 前言 大数据分析中&#xff0c;有一种常见的场景&#xff0c;那就是时序数据&#xff0c;简言之&#xff0c;数据一旦产生绝对不会修改&#xff0c;随着时间流逝&#xff0c;每个时间点都会有个新的…

【第13章:自监督学习与少样本学习—13.1 自监督学习最新进展与实现方法】

凌晨三点的实验室,博士生小王盯着屏幕里正在"自娱自乐"的神经网络——这个没有吃过一张标注图片的模型,正在通过旋转、拼图、填色等游戏任务,悄悄掌握着理解世界的秘诀。这种魔法般的修炼方式,正是当今AI领域最炙手可热的技术:自监督学习。 一、打破数据枷锁:自…

数据库报错1045-Access denied for user ‘root‘@‘localhost‘ (using password: YES)解决方式

MySQL 报错 1045 表示用户root从localhost连接时被拒绝访问&#xff0c;通常是因为密码错误、权限问题或配置问题。以下是解决该问题的常见方法&#xff1a; 方法一&#xff1a;检查用户名和密码 • 确认用户名和密码是否正确&#xff1a; 确保输入的用户名和密码完全正确&am…

八大排序——简单选择排序

目录 1.1基本操作&#xff1a; 1.2动态图&#xff1a; 1.3代码&#xff1a; 代码解释 1. main 方法 2. selectSort 方法 示例运行过程 初始数组 每轮排序后的数组 最终排序结果 代码总结 1.1基本操作&#xff1a; 选择排序&#xff08;select sorting&#xff09;也…

与传统光伏相比 城电科技的光伏太阳花有什么优势?

相比于传统光伏&#xff0c;城电科技的光伏太阳花有以下优势&#xff1a; 一、发电效率方面 智能追踪技术&#xff1a;光伏太阳花通过内置的智能追踪系统&#xff0c;采用全球定位跟踪算法&#xff0c;能够实时调整花瓣&#xff08;即光伏板&#xff09;的角度&#xff0c;确…

FPGA的星辰大海

编者按 时下风头正盛的DeepSeek,正值喜好宏大叙事的米国大统领二次上岗就业,OpenAI、软银、甲骨文等宣布投资高达5000亿美元“星际之门”之际,对比尤为强烈。 某种程度上,,是低成本创新理念的直接落地。 包括来自开源社区的诸多赞誉是,并非体现技术有多“超越”,而是…

Elasticsearch:15 年来致力于索引一切,找到重要内容

作者&#xff1a;来自 Elastic Shay Banon 及 Philipp Krenn Elasticsearch 刚刚 15 岁了&#xff01;回顾过去 15 年的索引和搜索&#xff0c;并展望未来 15 年的相关内容。 Elasticsearch 刚刚成立 15 周年。一切始于 2010 年 2 月的一篇公告博客文章&#xff08;带有标志性的…

嵌入式软件、系统、RTOS(高软23)

系列文章目录 4.2嵌入式软件、系统、RTOS 文章目录 系列文章目录前言一、嵌入式软件二、嵌入式系统三、嵌入式系统分类四、真题总结 前言 本节讲明嵌入式相关知识&#xff0c;包括软件、系统。 一、嵌入式软件 二、嵌入式系统 三、嵌入式系统分类 四、真题 总结 就是高软笔记…

数据结构 day02

3. 线性表 3.1. 顺序表 3.1.3. 顺序表编程实现 操作&#xff1a;增删改查 .h 文件 #ifndef __SEQLIST_H__ #define __SEQLIST_H__ #define N 10 typedef struct seqlist {int data[N];int last; //代表数组中最后一个有效元素的下标 } seqlist_t;//1.创建一个空的顺序表 seq…

数据恢复-01-机械硬盘的物理与逻辑结构

磁盘存储原理 磁盘存储数据的原理&#xff1a; 磁盘存储数据的原理是利用磁性材料在磁场作用下的磁化性质&#xff0c;通过在磁盘表面上划分成许多小区域&#xff0c;根据不同的磁化方向来表示0和1的二进制数据&#xff0c;通过读写磁头在磁盘上的移动&#xff0c;可以实现数据…

wordpress get_footer();与wp_footer();的区别的关系

在WordPress中&#xff0c;get_footer() 和 wp_footer() 是两个不同的函数&#xff0c;它们在主题开发中扮演着不同的角色&#xff0c;但都与页面的“页脚”部分有关。以下是它们的区别和关系&#xff1a; 1. get_footer() get_footer() 是一个用于加载页脚模板的函数。它的主…

DeepSeek 通过 API 对接第三方客户端 告别“服务器繁忙”

本文首发于只抄博客&#xff0c;欢迎点击原文链接了解更多内容。 前言 上一期分享了如何在本地部署 DeepSeek R1 模型&#xff0c;但通过命令行运行的本地模型&#xff0c;问答的交互也要使用命令行&#xff0c;体验并不是很好。这期分享几个第三方客户端&#xff0c;涵盖了桌…

跟着李沐老师学习深度学习(十一)

经典的卷积神经网络 在本次笔记中主要介绍一些经典的卷积神经网络模型&#xff0c;主要包含以下&#xff1a; LeNet&#xff1a;最早发布的卷积神经网络之一&#xff0c;目的是识别图像中的手写数字&#xff1b;AlexNet&#xff1a; 是第一个在大规模视觉竞赛中击败传统计算机…

使用JavaScript实现深浅拷贝

1. 拷贝的基本概念和必要性 在 JavaScript 中&#xff0c;数据类型分为基本数据类型&#xff08;如 Number、String、Boolean、Null、Undefined、Symbol&#xff09;和引用数据类型&#xff08;如 Object、Array&#xff09;。基本数据类型存储的是值本身&#xff0c;而引用数…

解析浏览器中JavaScript与Native交互原理:以WebGPU为例

引言 随着Web应用复杂度的提升&#xff0c;开发者对浏览器访问本地硬件能力的需求日益增长。然而&#xff0c;浏览器必须在开放性与安全性之间找到平衡——既不能放任JavaScript&#xff08;JS&#xff09;随意操作系统资源&#xff0c;又要为高性能计算、图形渲染等场景提供支…

T-Sql 打印所有用户表的建表脚本

-- 声明一个变量用于存储表名 DECLARE TableName NVARCHAR(128); -- 声明一个游标&#xff0c;用于遍历所有用户表 DECLARE TableCursor CURSOR FOR SELECT name FROM sys.tables WHERE type U; -- 打开游标 OPEN TableCursor; -- 从游标中获取第一行数据 FETCH NEXT FROM Ta…

25/2/16 <算法笔记> MiDas原理

MiDaS&#xff08;Monocular Depth Sensing&#xff09;是一种基于单目深度估计的技术&#xff0c;它通过深度学习方法使用单张RGB图像&#xff08;普通2D图像&#xff09;来估算场景的深度图&#xff08;Depth Map&#xff09;。相比于传统的依赖专用深度传感器&#xff08;如…

python+halcon 解读labelme标注生成marksimage

这一段代码封装了一个类&#xff0c;需要传统一个图片和标注后json文件所在的地址&#xff0c;标注的选项是polygon&#xff0c;主要是用于unet深度学习网络 在初始化时需要输入文件&#xff08;imagejeson&#xff09;路径&#xff0c;多分类任务的label_list。会在项目目录下…

从技术债务到架构升级,滴滴国际化外卖的变革

背 景 商家营销简述 在外卖平台的运营中&#xff0c;我们致力于通过灵活的补贴策略激励商家&#xff0c;与商家共同打造良好的合作关系&#xff0c;也会提供多样化的营销活动&#xff0c;帮助商家吸引更多用户下单。通过这些活动&#xff0c;不仅能够提高商家的销量&#xff0c…