LVS-DR 群集部署

一、LVS-DR 核心知识点补充

1. 什么是 LVS-DR

LVS-DR(Linux Virtual Server - Direct Routing,直接路由模式)是生产环境最常用 的 LVS 工作模式,通过二层 MAC 地址改写实现流量分发,响应流量直接由后端 Real Server 返回客户端,不经过调度器,性能极高、延迟极低。

2. LVS-DR 关键特性

  • 调度器与后端节点必须在同一物理网段
  • 仅请求流量经过调度器,响应流量直连客户端
  • 调度器与后端节点共用同一个 VIP
  • 后端节点网关不能指向调度器
  • 通过arp_ignore/arp_announce避免 VIP 的 ARP 冲突

3. 核心参数说明

  • arp_ignore=1:仅响应目标 IP 为本网卡物理 IP的 ARP 请求,拒绝 VIP 的 ARP 请求
  • arp_announce=2:发送 ARP 时仅使用物理网卡主 IP,不使用 VIP
  • send_redirects=0:关闭 ICMP 重定向,防止调度器发送错误路由信息
  • -g:ipvsadm 指定 DR 模式;-s rr:轮询调度算法

一、实验环境说明

  • LVS 调度器(Director):192.168.10.101
  • Web 节点服务器 1(Real Server):192.168.10.102
  • Web 节点服务器 2(Real Server):192.168.10.103
  • 虚拟 IP(VIP):192.168.10.172
  • 工作模式:DR(直接路由)
  • 调度算法:rr(轮询)
  • 对外服务:HTTP 80 端口

二、所有节点统一初始化操作(调度器 + Web 节点均执行)

bash

运行

复制代码
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

📘 知识点LVS-DR 依赖二层网络通信与 ARP 协议,防火墙会拦截转发报文,SELinux 会限制内核参数修改,实验环境必须关闭,保障集群正常通信。


三、LVS 调度器(Director)配置

1. 配置虚拟 IP(VIP)

bash

运行

复制代码
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0
vim ifcfg-ens33:0

写入配置内容:

plaintext

复制代码
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.10.172
NETMASK=255.255.255.0

bash

运行

复制代码
nmcli connection reload
nmcli connection up ens33

📘 知识点

  1. VIP 是集群对外统一访问入口,采用子接口 ens33:0 配置,不影响主网卡。
  2. DR 模式核心要求:调度器与所有后端节点必须配置同一个 VIP

2. 关闭内核重定向报文

bash

运行

复制代码
vim /etc/sysctl.conf

末尾添加参数:

plaintext

复制代码
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

bash

运行

复制代码
sysctl -p

📘 知识点

  1. 内核默认会发送重定向报文,导致数据包路由紊乱,无法正常转发。
  2. DR 模式下调度器仅负责转发请求,禁止发送重定向报文,保障流量路径稳定。

3. 安装 ipvsadm 并配置负载均衡策略

bash

运行

复制代码
yum -y install ipvsadm
ipvsadm -C

ipvsadm -A -t 192.168.10.172:80 -s rr
ipvsadm -a -t 192.168.10.172:80 -r 192.168.10.102 -g -w 1
ipvsadm -a -t 192.168.10.172:80 -r 192.168.10.103 -g -w 1

ipvsadm-save
systemctl enable ipvsadm
systemctl start ipvsadm

📘 知识点

  1. ipvsadm:LVS 核心管理工具,负责定义集群规则、分发流量。
  2. 参数解释:
    • -A:添加虚拟服务
    • -t:指定 TCP 协议服务
    • -s rr:采用轮询调度算法
    • -a:添加后端真实服务器
    • -r:指定后端服务器 IP
    • -g:启用 DR 直接路由模式
    • -w 1:设置服务器权重为 1
  3. DR 模式仅修改数据包目标 MAC 地址,不修改 IP 地址,转发效率极高。

4. 查看 LVS 集群状态

bash

运行

复制代码
ipvsadm -ln

📘 知识点可查看虚拟服务、后端节点、转发模式(Route 代表 DR 模式)、连接数等信息,验证规则是否生效。


四、Web 节点服务器配置(两台节点均执行)

1. 回环接口配置 VIP 与本地路由

bash

运行

复制代码
# 临时配置 VIP(重启失效)
ip addr add 192.168.10.172/32 dev lo label lo:0
ip route add local 192.168.10.172/32 dev lo

# 永久配置(写入开机自启脚本)
vim /etc/rc.local

添加内容:

plaintext

复制代码
ip addr add 192.168.10.172/32 dev lo label lo:0
ip route add local 192.168.10.172/32 dev lo

bash

运行

复制代码
chmod +x /etc/rc.local

📘 知识点

  1. VIP 配置在 lo 回环接口,不会对外广播,避免 IP 冲突。
  2. 本地路由确保访问 VIP 的报文仅在本机内部处理,防止路由紊乱。
  3. /etc/rc.local 需添加执行权限,否则重启后配置失效。

2. 调整 ARP 内核参数(DR 模式核心)

bash

运行

复制代码
vim /etc/sysctl.conf

添加参数:

plaintext

复制代码
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

bash

运行

复制代码
sysctl -p

📘 知识点

  1. arp_ignore=1:仅当请求 IP 属于当前网卡时,才响应 ARP 请求。
  2. arp_announce=2:发送 ARP 报文时,仅使用物理网卡主 IP,不使用 VIP。
  3. 核心作用:禁止后端节点抢占 VIP,保证只有调度器响应 VIP 的 ARP 请求。

3. 安装 HTTP 服务并创建测试页面

bash

运行

复制代码
yum -y install httpd

# Web 节点 1 执行
echo "<h1>LVS-DR Web Server 01 -- 192.168.10.102</h1>" > /var/www/html/index.html

# Web 节点 2 执行
echo "<h1>LVS-DR Web Server 02 -- 192.168.10.103</h1>" > /var/www/html/index.html

systemctl start httpd
systemctl enable httpd

📘 知识点

  1. 后端节点提供真实 Web 服务,处理客户端请求。
  2. DR 模式下,响应报文直接返回给客户端,不经过调度器,大幅降低调度器压力。

五、客户端测试集群

bash

运行

复制代码
# 单次访问
curl http://192.168.10.172

# 循环 10 次访问,验证负载均衡
for i in $(seq 10); do curl http://192.168.10.172; done

📘 知识点

  1. 频繁刷新或循环访问,页面会交替显示两台 Web 节点内容,说明轮询调度生效。
  2. 若仅显示一台节点内容,需检查 ARP 参数、ipvsadm 规则、防火墙状态。

六、LVS-DR 核心知识总结

  1. 工作原理:请求流量经调度器转发,响应流量由后端节点直接返回客户端,调度器仅修改 MAC 地址。
  2. 模式优势:性能远高于 NAT 模式,适合高并发、大流量 Web 服务,生产环境首选。
  3. 部署前提 :调度器与后端节点必须在同一物理网段
  4. 关键配置:ARP 参数抑制、回环接口 VIP、内核重定向关闭,缺一不可。
  5. 适用场景:电商网站、API 服务、短视频平台等高并发业务。
相关推荐
Ava的硅谷新视界3 小时前
TypeScript 中用判别联合类型替代 instanceof 检查
前端·javascript·typescript
ZC跨境爬虫3 小时前
海南大学交友平台开发实战 day9(头像上传存入 SQLite+BLOB 存储 + 前后端联调避坑全记录)
前端·数据库·python·sqlite
落魄江湖行3 小时前
基础篇六 Nuxt4 状态管理:useState 的正确用法
前端·vue.js·typescript·nuxt4
jerrywus3 小时前
手机控制 AI 编程?Paseo 让你随时随地跑 Claude Code / Codex
前端·agent·claude
GISer_Jing3 小时前
前端视频技术全解析:从编解码到渲染优化
前端·音视频·状态模式
LIO4 小时前
Vue3 + Pinia 完整使用教程(企业级)
前端·vue.js
军军君014 小时前
数字孪生监控大屏实战模板:智慧城市大屏
前端·vue.js·typescript·前端框架·echarts·智慧城市·大屏展示
CDN3604 小时前
高防切换后网站打不开?DNS 解析与回源路径故障排查
前端·网络·数据库
信也科技布道师4 小时前
把7个页面变成1段对话:AI如何重构借款流程
前端·人工智能·重构·架构·交互·用户体验