当前位置: 首页 > article >正文

深入解析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.kler.cn/a/552602.html

相关文章:

  • MybaitsPlus学习笔记(三)常用注解
  • 【科研绘图系列】R语言绘制时间序列图(time series plot)
  • 【Linux】Socket编程—TCP
  • 数据驱动的自动化本体构建过程包含3个阶 段
  • 编译安装php
  • 深拷贝和浅拷贝的区别
  • 笔试题笔记#7 根据int类型标记判断的BFS和区间覆盖复习
  • 【go语言规范】关于setter和 getter
  • 【Mysql索引在什么情况下会失效?】
  • Diff3Dformer:利用切片序列扩散通过 Transformer 网络增强 3D CT 分类
  • Spring 动态代理 JDK代理和GGLIB代理
  • 前端编程基础开发规范
  • 【练习】【滑动窗口】力扣热题100 438. 找到字符串中所有字母异位词
  • 从插入排序到希尔排序
  • A与B组件自动对齐与组装,无映射直接补偿。
  • SpingBoot-Vue 前后端分离—实现钉钉免登功能(2025)
  • 【Spring+MyBatis】_图书管理系统(中篇)
  • c# -01新属性-模式匹配、弃元、析构元组和其他类型
  • spark大数据分析
  • python-leetcode-最小路径和