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

LVS -DR

目录

LVS—DR集群

请求与响应流程

数据包流向分析

特点与优势

LVS-DR模式特点

典型应用场景

路由模式(LVS—DR)


LVS—DR集群

LVS(Linux Virtual Server)的DR(Direct Routing,直接路由)模式是一种高性能的负载均衡技术,其核心原理是通过修改数据包的MAC地址实现请求分发,同时让后端服务器直接响应客户端,避免响应流量经过负载均衡器。

请求与响应流程

  • 请求路径
    1. 客户端发送请求到VIP,数据包到达负载均衡器。
    2. 负载均衡器根据调度算法选择后端服务器,修改数据包的目标MAC地址为后端服务器的MAC地址,但源IP和目标IP(VIP)保持不变
    3. 修改后的数据包通过二层网络(数据链路层)直接转发到后端服务器。
  • 响应路径
    1. 后端服务器接收到请求后,发现目标IP(VIP)与本地配置的VIP匹配,处理请求并生成响应。
    2. 后端服务器直接将响应报文发送给客户端,源IP为VIP,目标IP为客户端IP,响应报文绕过负载均衡器。

数据包流向分析

  • 客户端发送请求到 Director Server,请求的数据报文(源 IP是 CIP,目标IP 是 VIP)到达内核空间。
  • Director Server 和 Real Server 在同一个网络中,数据通过二层数据链路层来传输。
  • 内核空间判断数据包的目标IP是本机 VIP,此时 IPVS 比对数据包请求的服务是否是集群服务,是集群服务就重新封装数据包。修改源MAC地址为Director Server 的 MAC 地址,修改目标 MAC 地址为 Real Server 的 MAC 地址,源 IP 地址与目标 IP 地址没有改变,然后将数据包发送给 Real Server。
  • 到达 Real Server 的请求报文的 MAC 地址是自身的 MAC 地址,就接收此报文。数据包重新封装报文(源 IP 地址为 VIP,目标IP为 CIP),将响应报文通过 10 接口传送给物理网卡然后向外发出。
  • Real Server 直接将响应报文传送到客户端。

特点与优势

  • 高性能
    响应流量不经过负载均衡器,显著减轻其压力,适用于高并发、低延迟场景。
  • 网络要求
    负载均衡器和后端服务器必须在同一局域网(二层网络),因为DR模式通过修改MAC地址实现转发。
  • 不支持端口映射
    后端服务器需直接监听VIP对应的端口,无法修改端口号。
  • 无需开启IP转发
    后端服务器无需配置IP转发功能(ip_forward=0)。

LVS-DR模式特点

  • Director Server 和 Real Server 必须在同一个物理网络中。
  • Real Server 可以使用私有地址,也可以使用公网地址。如果使用公网地址,可以通过互联网对 RIP 进行直接访问。
  • 所有的请求报文经由 Director Server,但回复响应报文不能经过 DirectorServer.
  • Real Server 的网关不允许指向 Director Server IP,即不允许数据包经寸 Director Server.
  • Real Server 上的 1o 接口配置 VIP 的 IP 地址。

典型应用场景

  • Web服务
    如Nginx、Apache等,通过DR模式实现高并发访问的负载均衡。
  • 数据库服务
    对延迟敏感的数据库集群,可通过DR模式优化响应速度。
  • 大规模集群
    支持上百台后端服务器,适合大型互联网应用。

路由模式(LVS—DR)

案例环境:

一台调度器、两台WEB服务器、一台客户端

调度器设置VIP

​
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0    将33网卡配置信息复制出来
[root@localhost network-scripts]# vim ifcfg-ens33:0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.10.172		#设置VIP
NETMASK=255.255.255.0
GATEWAY=192.168.10.254
DNS1=114.114.114.114
DNS2=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=ens33:0			#修改名称
DEVICE=ens33:0			#同上
ONBOOT=yes​

重载网卡信息

[root@localhost network-scripts]# nmcli c reload		#重载
[root@localhost network-scripts]# nmcli c up ens33

查看是否生效 

[root@localhost ~]# ifconfig    #查看是否生效
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.10.101  netmask 255.255.255.0  broadcast 192.168.10.255inet6 fe80::20c:29ff:fe14:7990  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:14:79:90  txqueuelen 1000  (Ethernet)RX packets 56161  bytes 78551237 (74.9 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 6659  bytes 546400 (533.5 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.10.172  netmask 255.255.255.0  broadcast 192.168.10.255ether 00:0c:29:14:79:90  txqueuelen 1000  (Ethernet)

 下载ipvsadm并关闭防火墙及内核

[root@localhost ~]# dnf -y install ipvsadm
[root@localhost ~]# systemctl stop firewalld		#关闭防火墙
[root@localhost ~]# setenforce 0			#关闭系统内核

添加虚拟服务器

[root@localhost ~]# ipvsadm -A -t 192.168.10.172:80 -s wrr	#添加虚拟服务器
[root@localhost ~]# ipvsadm -a -t 192.168.10.172:80 -r 192.168.10.102 -g -w 1	#添加真实服务器
[root@localhost ~]# ipvsadm -a -t 192.168.10.172:80 -r 192.168.10.103 -g -w 2	#同上
[root@localhost ~]# ipvsadm -ln			#查看规则

配置两台Web服务

配置内容都一样只有网站内容不同

下载httpd

[root@localhost ~]# dnf -y install httpd

关闭防火墙及系统内核

[root@localhost ~]# systemctl stop firewalld			#关闭防火墙
[root@localhost ~]# setenforce 0				#关闭内核

配置网站内容

[root@localhost ~]# echo "2222222">/var/www/html/index.html	#02网站内容
[root@localhost ~]# echo "333333">/var/www/html/index.html	#03网站内容

启动httpd服务

[root@localhost ~]# systemctl satart httpd			#启动httpd

配置回环口ip

[root@localhost ~]# ip addr add 192.168.10.172/32 dev lo label lo:0	#回环口ip

修改配置文件让系统开机自行运行命令

[root@bogon ~]# vim /etc/rc.local		
ip addr add 192.168.10.172/32 dev lo label lo:0
ip route add local 192.168.10.172/32 dev 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 = 2

如果不生效就重启

reboot

05访问VIP

[root@bogon ~]# curl 192.168.10.172
333333
[root@bogon ~]# curl 192.168.10.172
333333
[root@bogon ~]# curl 192.168.10.172
2222222

相关文章:

  • Vue3对接deepseek实现ai对话
  • 数据结构-排序(1)
  • Spring AI 多模型智能协作工作流实现指南
  • Cookie与Session简介-笔记
  • 漫画Android:Handler机制是怎么实现的?
  • 机器学习:线性回归、损失函数、导数、偏导
  • EC800GCN 华系列 DTU 开发板介绍
  • 挖o心得(4)
  • PINN是否需要对空间进行网格化
  • 前端识别用户在某些页面的停留时间过长,提示可能存在问题
  • Python 包管理工具 uv的一些常用指令
  • 体育智能认知革命:当AI阅读器遇上实时数据API—— 打造体育产业的「数据消化中枢」
  • Dify案例实战之智能体应用构建(二)
  • 音视频解码基础知识
  • 高并发计数器LongAdder 实现原理与使用场景详解
  • LeetCode 543 二叉树的直径
  • 【模型显著性分析】配对样本 t 检验
  • uniapp小程序开发,判断跳转页面是否需要登录方法封装
  • 从SEO到GEO:搜索范式迁移的三大断层
  • 教师申报书课题——项目名称: 基于DeepSeek-R1与飞书妙记的课堂话语智能分析实践计划
  • 外贸网站如何做外链/百度手机点击排名工具
  • 重庆企业的网站建设/营销推广的主要方法
  • 响应式网站建设精英/网站推广方法
  • 淘宝客网站建设/今日新闻最新10条
  • 提卡的网站怎么做/永久免费的电销外呼系统
  • 乐陵森林面积/山西seo优化公司