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

LVS—DR模式

LVS—DR模式

LVS DR 模式详细简介

一、模式定义与核心原理

LVS DR(Direct Routing)模式,即直接路由模式,是 Linux Virtual Server(LVS)实现负载均衡的经典模式之一,工作于网络四层(传输层)。其核心原理为:客户端向负载均衡调度器(Director Server,简称 DS)发起请求,DS 接收到数据包后,仅修改数据包的目标 MAC 地址为后端真实服务器(Real Server,简称 RS)的 MAC 地址,源 IP 和目标 IP 地址保持不变,随后将数据包转发至 RS;RS 处理完请求后,直接将响应数据返回给客户端,无需再次经过 DS,实现了请求与响应路径的分离。

二、数据流走向详解

(一)请求阶段

  1. 客户端(Client)发送请求,数据包的源 IP 为客户端 IP(CIP),目标 IP 为虚拟 IP(VIP,绑定在 DS 上),源 MAC 为客户端 MAC,目标 MAC 为 DS 的 MAC。

  2. 数据包到达 DS 后,经过 PREROUTING 链进入内核,IPVS 模块判断请求属于集群服务,将目标 MAC 地址修改为后端某台 RS 的 MAC 地址,源 MAC 改为 DS 的 MAC,IP 地址不变,然后通过 POSTROUTING 链将数据包转发给对应的 RS。

(二)响应阶段

  1. RS 接收到数据包后,由于目标 MAC 是自己的 MAC 地址,开始处理请求。处理完成后,RS 将响应数据包的源 IP 设置为 VIP(因为请求的目标 IP 是 VIP),目标 IP 设置为 CIP,源 MAC 为 RS 的 MAC,目标 MAC 为客户端 MAC。

  2. 响应数据包直接从 RS 发送回客户端,不经过 DS。

为更直观呈现,可用流程图展示:

三、核心优势

  1. 高吞吐量与低延迟:DS 仅负责请求调度,响应数据直接由 RS 返回客户端,减少了 DS 的处理压力,大幅提升系统的吞吐量和响应速度,能高效处理高并发请求。

  2. 灵活的 IP 配置:RS 可以使用私有地址,降低成本;也可使用公网地址,满足特定的访问需求,网络部署更加灵活。

  3. 良好的扩展性:通过增加 RS 的数量,可轻松扩展集群的处理能力,适应业务规模的增长。

  4. 资源利用率高:由于 DS 负载轻,无需配置高性能设备,降低硬件成本,同时充分利用 RS 的计算资源。

四、典型使用场景

  1. 大型网站与电商平台:在 “双十一” 等大促活动期间,面临海量用户访问,LVS DR 模式能快速分发请求,保障系统稳定运行,提升用户购物体验。

  2. 内容分发网络(CDN):用于将静态资源(如图片、视频、脚本文件等)缓存到分布在各地的 RS 上,用户请求时通过 DR 模式快速获取资源,加速网页加载速度。

  3. 在线游戏服务器:游戏在线人数众多,对实时性要求高,DR 模式可实现高效的流量分发,确保游戏服务器稳定运行,减少玩家延迟卡顿现象。

  4. 企业内部应用系统:企业内部的 ERP、OA 等系统,在多人同时访问时,LVS DR 模式能均衡负载,提高系统可用性和响应效率。

示例

环境配置

101 =nfs

102=web1

103=web2

104=lvs

105=客户端

配置lvs

[root@bogon ~]# cd /etc/sysconfig/network-scripts/
[root@bogon network-scripts]# ls
ifcfg-ens160
[root@bogon network-scripts]# cp ifcfg-ens160 ifcfg-ens160:0
[root@bogon network-scripts]# ls
ifcfg-ens160  ifcfg-ens160:0
[root@bogon network-scripts]# vim ifcfg-ens160:0
[root@bogon network-scripts]# nmcli c reload
[root@bogon network-scripts]# nmcli c up ens160
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)
###编辑虚拟网卡配置地址为vip 192.168.10.172
[root@bogon network-scripts]# ipvsadm -A -t 192.168.10.172:80 -s wrr
[root@bogon network-scripts]# ipvsadm -a -t 192.168.10.172:80 -r 192.168.10.102 -g -w 1
[root@bogon network-scripts]# ipvsadm -a -t 192.168.10.172:80 -r 192.168.10.103 -g -w 1
[root@bogon network-scripts]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.10.172:80 wrr-> 192.168.10.102:80            Route   1      0          0         -> 192.168.10.103:80            Route   1      0          0         

配置web

[root@bogon ~]#  ip addr add 192.168.10.172/32 dev lo label  lo:0
[root@bogon ~]# ifconfig
[root@bogon ~]# ip route add local 192.168.10.172/32 dev lo[root@bogon ~]# vim /etc/rc.local #!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.touch /var/lock/subsys/local
ip addr add 192.168.10.172/32 dev lo label lo:0
ip route add local 192.168.10.172/32 deb lo
~                                                  [root@bogon ~]# chmod +x /etc/rc.local 
###重启查看是否生效
[root@bogon ~]# vim /etc/sysctl.conf 
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=1
[root@bogon ~]# sysctl -p

代码解释

# 添加一个回环接口别名,绑定IP地址192.168.10.172到lo:0
ip addr add 192.168.10.172/32 dev lo label  lo:0# 查看网络接口配置(ifconfig为旧版命令,推荐使用ip addr)
ifconfig# 添加一条本地路由规则,确保该IP地址的流量通过回环接口处理
ip route add local 192.168.10.172/32 dev lo# 编辑系统启动脚本,设置开机自动执行网络配置
vim /etc/rc.local #!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
# ...(原有注释保持不变)...# 创建锁文件标记脚本已执行
touch /var/lock/subsys/local# 开机自动添加回环接口别名
ip addr add 192.168.10.172/32 dev lo label lo:0# 开机自动添加本地路由(注意:原命令中"deb"为拼写错误,已修正为"dev")
ip route add local 192.168.10.172/32 dev lo# 赋予启动脚本执行权限
chmod +x /etc/rc.local ###重启查看是否生效# 编辑系统内核参数配置文件
vim /etc/sysctl.conf # ARP优化参数配置说明:
# arp_ignore=1: 仅在接收到的ARP请求所请求的IP地址
# 配置在接收网卡上时,才给予响应
net.ipv4.conf.all.arp_ignore=1# arp_announce=2: 总是使用最合适的本地地址来响应对端的ARP请求
# (确保从正确的网卡发送ARP响应)
net.ipv4.conf.all.arp_announce=2# 对默认接口应用相同的ARP优化策略
net.ipv4.conf.default.arp_ignore=1
net.ipv4.conf.default.arp_announce=2# 对回环接口应用ARP优化策略(注意:此处arp_announce设为1,
# 表示尽量使用合适的本地地址响应,与all/default的策略略有不同)
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=1# 使sysctl配置立即生效
sysctl -p

配置nfs

[root@bogon wwwroot]# vim /etc/exports
/opt/wwwroot 192.168.10.0/24(rw,sync,no_root_squash)

在两台web上

[root@bogon html]# mount 192.168.10.101:/opt/wwwroot /var/www/html/

验证

[root@bogon html]# df -hT
文件系统                    类型      大小  已用  可用 已用% 挂载点
/dev/mapper/openeuler-root  ext4      191G  1.9G  180G    1% /
devtmpfs                    devtmpfs  4.0M     0  4.0M    0% /dev
tmpfs                       tmpfs     1.7G     0  1.7G    0% /dev/shm
tmpfs                       tmpfs     4.0M     0  4.0M    0% /sys/fs/cgroup
tmpfs                       tmpfs     675M  9.1M  666M    2% /run
tmpfs                       tmpfs     1.7G     0  1.7G    0% /tmp
/dev/nvme0n1p2              ext4      974M  174M  733M   20% /boot
192.168.10.101:/opt/wwwroot nfs4      191G  1.8G  180G    1% /var/www/html

客户端访问lvs

[root@localhost ~]# curl 192.168.10.172
web1
[root@localhost ~]# curl 192.168.10.172
web2

相关文章:

  • 最新FVCOM 潮流、波浪、泥沙、水质、温盐、染色剂、粒子示踪、嵌套、背景流、自动化全流程
  • 在线教育平台敏捷开发项目
  • CppCon 2017 学习:C++ in Academia
  • ModbusTcp使用
  • Qt事件处理机制
  • Transformer推理拓扑关系
  • 2025年06月18日Github流行趋势
  • Jenkins审核插件实战:实现流水线审批控制的最佳实践
  • 经典风格的免费wordpress模板
  • 网页后端开发(基础3--Springboot框架)
  • Github的使用
  • 自力更生式养老VS三大新型养老:在时代裂变中重构银发生存法则
  • 【网工】华为配置专题进阶篇②
  • MySQL 8.0 OCP 题库完整版
  • UVa1408/LA4018 Flight Control
  • RT Thread CAN驱动框架分析
  • 【LeetCode】每日一题 —— No.3405
  • Linux设备框架:kset与kobject基本介绍
  • Vue3 + TypeScript + Element Plus + el-input 输入框列表按回车聚焦到下一行
  • 【微信小程序】4、SpringBoot整合WxJava生成小程序码
  • 网站建设找哪家公司好/看网站搜什么关键词
  • 连云港网站制作/b2b网站
  • 云端做效果图的网站/广州优化公司哪家好
  • 网站建设主机耗电量/seo排名专业公司
  • 什么是网络建站/2345网址导航中国最好
  • 网站吗/网站推广的6个方法是什么