基于LVS负载均衡练习

news2025/2/15 7:15:39

对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势。

NAT模式,全称是网络地址转换模式。NAT模式下,负载均衡器(Director)会修改请求和响应的IP地址。客户端的请求先到达Director,Director将请求的目标地址改成后端真实服务器的地址,然后转发给后端服务器。后端服务器处理完请求后,将响应返回给Director,Director再将响应的源地址改回自己的虚拟IP(VIP),最后返回给客户端。这样的话,对于客户端来说,它只知道Director的地址,不知道后端服务器的存在。

DR模式,即直接路由模式。DR模式下,Director和后端服务器都配置了同一个虚拟IP地址。当客户端请求到达Director时,Director通过修改请求的目标MAC地址,将请求转发给选中的后端服务器。后端服务器处理请求后,直接通过自己的网络接口将响应返回给客户端,而不需要经过Director。这样响应数据可以直接从服务器到客户端,减少了Director的负担。

1. NAT模式(Network Address Translation)

  • 优势

    • 网络拓扑灵活

      • 后端服务器(Real Server)可使用私有IP地址,无需暴露公网IP。

      • 支持跨子网部署,Real Server可位于不同网络环境中(如云服务器跨可用区)。

    • 配置简单

      • Real Server无需特殊配置,只需设置默认网关为Director(负载均衡器)。

      • 无需修改Real Server的内核参数(如ARP抑制)。

    • 安全性较高

      • Real Server隐藏在Director后,对外不可见,避免直接暴露于公网。

    • 支持端口映射

      • Director可修改目标端口,实现灵活的端口转换(如将80端口请求转发到后端8080端口)。

  • 适用场景

    • 中小规模流量场景。

    • 需要跨子网或混合云部署。

    • 对后端服务器安全性要求较高。


2. DR模式(Direct Routing)

  • 优势

    • 高性能与低延迟

      • 响应数据直接由Real Server返回客户端,无需经过Director,避免带宽瓶颈。

      • 吞吐量高,适合高并发、大流量场景(如视频流、大规模Web应用)。

    • 扩展性强

      • Director仅处理入站请求,后端服务器数量增加时性能影响较小。

    • 资源利用率高

      • Real Server直接使用公网带宽,减轻Director的网络负载。

  • 适用场景

    • 高并发、大流量场景(如电商大促、在线游戏)。

    • 对吞吐量和延迟敏感的服务。

    • 需充分利用Real Server的公网带宽。

关键对比总结

特性NAT模式DR模式
网络拓扑支持跨子网,Real Server可私有IP必须同一局域网,Real Server需公网IP
性能受限于Director的带宽和处理能力高性能,Real Server直接响应客户端
配置复杂度简单(Real Server无需特殊配置)复杂(需配置ARP抑制、VIP绑定等)
安全性高(Real Server隐藏)较低(Real Server暴露公网IP)
端口映射支持不支持
适用规模中小规模大规模、高并发

选择建议

  • NAT模式:适合网络环境复杂、对安全性要求高、流量适中的场景。

  • DR模式:适合追求极致性能、大流量且网络环境可控的场景。

实际部署中,可结合两者优势,例如在DR模式下通过Keepalived实现Director的高可用,进一步提升系统可靠性。

 基于 openEuler 构建 LVS-DR 群集

1. 环境准备

  • 操作系统:openEuler 20.03 LTS 或更高版本。

  • 网络拓扑

    • Director:1台,配置双网卡(一个公网IP,一个内网IP)。

    • Real Server:至少2台,配置内网IP。

    • 客户端:1台,用于测试。

  • IP规划

    • Director:

      • 公网IP(VIP):192.168.234.10

      • 内网IP(DIP):192.168.234.11

    • Real Server 1:

      • 内网IP(RIP):192.168.234.14

    • Real Server 2:

      • 内网IP(RIP):192.168.234.15

    • 客户端:

      • 公网IP:192.168.234.13

 配置 Real Server(后端服务器)

在 Real Server 上启动 Web 服务

在两个Real Server上安装并启动nginx服务:

yum install nginx -y
systemctl start nginx
systemctl enable nginx

在Real Server 1上创建测试页面

echo "web test page,ip is `hostname -I`"  > /usr/share/nginx/html/index.html


在Real Server 2上创建测试页面

echo "web test page,ip is `hostname -I`"  > /usr/share/nginx/html/index.html

在两个Real Server上都绑定VIP

nmcli connection add type dummy ifname dummy1 ipv4.method manual ipv4.addresses 192.168.234.10/32

ip address查看:

配置 ARP 抑制

防止Real Server响应VIP的ARP请求:

vim  /etc/sysctl.conf,添加以下内容:

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

应用配置:

sysctl -p

配置 Director(负载均衡器)

1.安装 LVS 工具

yum install ipvsadm -y

2.配置 VIP

nmcli connection add type dummy ifname dummy1 ipv4.method manual ipv4.addresses 192.168.234.10/32

3. 配置 LVS 规则

使用 ipvsadm 配置负载均衡规则:

ipvsadm -A -t 192.168.234.10:80 -s rr
ipvsadm -a -t 192.168.234.10:80 -r 192.168.234.14:80 -g
ipvsadm -a -t 192.168.234.10:80 -r 192.168.234.15:80 -g
 

4.在Director上查看LVS状态:

ipvsadm -Ln

5.从客户端访问 VIP

在客户端使用 curl 或浏览器访问VIP:

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

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

相关文章

FreeRTOS低功耗总结

前言 Cortex-M核的MCU一般支持以下三种低功耗方式: ● 睡眠(Sleep)模式 ● 停止(Stop)模式 ● 待机(Standby)模式 睡眠模式 进入睡眠模式有两种指令:WFI(等待中断)和WFE(等待事件), WFI进入睡眠模式后,任意中断都可唤醒。 WFE进…

【IC】AI处理器核心--第二部分 用于处理 DNN 的硬件设计

第 II 部分 用于处理 DNN 的硬件设计 第 3 章 关键指标和设计目标 在过去的几年里,对 DNN 的高效处理进行了大量研究。因此,讨论在比较和评估不同设计和拟议技术的优缺点时应考虑的关键指标非常重要,这些指标应纳入设计考虑中。虽然效率通常…

【python】向Jira测试计划下,附件中增加html测试报告

【python】连接Jira获取token以及jira对象 # 往 jira 测试计划下面,上传测试结果html def put_jira_file(plain_id):# 配置连接jiraconn ConnJira()jira conn.jira_login()[2]path jira.issue(O45- plain_id)attachments_dir os.path.abspath(..) \\test_API…

STM32自学记录(九)

STM32自学记录 文章目录 STM32自学记录前言一、DMA杂记二、实验1.学习视频2.复现代码 总结 前言 DMA 一、DMA杂记 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预&…

【C++】C++-教师信息管理系统(含源码+数据文件)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 【C】C教师信息管理系统(含源码&#x…

Java Swing-5.jar 使用 jpackage 打包成 windows 可安装应用(exe,msi,免安装版exe)

环境 jdk17 (jdk14 以后自带将jar 打安装包工具 jpackage,版本从1.8调整到17) Maven:3.2.5 效果 对比 exe4j :免费版在启动的时候总是先弹出一个弹框,告诉用户你在用他们的免费版Launch4j:无法把jre环境打到exe文件中,用户需要单独…

ADC入门准备(十):信号与系统知识回顾

4.7系统函数零极点分布决定时域特性 4.7.1 H(s)极点分布与h(t)的对应图解 4.7.2 H(s)、E(s)极点分布与自由响应、强迫响应特征的对应 4.8 H(s)零极点分布决定频域特性 4.8.1 s平面几何分析法 4.8.2 高通滤波器的频率特性 4.8.3 低通滤波器的频率特性 4.9 二阶谐振系…

wx060基于springboot+vue+uniapp的宿舍报修系统小程序

开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…

CCF-GESP 等级考试 2024年9月认证C++二级真题解析

2024年9月真题 一、单选题(每题2分,共30分) 正确答案:A 考察知识点:计算机存储 解析:磁心存储元件是早期计算机中用于存储数据的部件,它和现代计算机中的内存功能类似,都是用于临时…

第二天:工具的使用

每天上午9点左右更新一到两篇文章到专栏《Python爬虫训练营》中,对于爬虫有兴趣的伙伴可以订阅专栏一起学习,完全免费。 键盘为桨,代码作帆。这趟为期30天左右的Python爬虫特训即将启航,每日解锁新海域:从Requests库的…

HarmonyOS:使用List实现分组列表(包含粘性标题)

一、支持分组列表 在列表中支持数据的分组展示,可以使列表显示结构清晰,查找方便,从而提高使用效率。分组列表在实际应用中十分常见,如下图所示联系人列表。 联系人分组列表 在List组件中使用ListItemGroup对项目进行分组&#…

Django5的新特征

Django是一个用Python编写的高级Web框架,它的目标是让开发人员能够快速高效地构建复杂的Web应用程序。自从2008年首次发布以来,Django已经成为开源Web框架中的佼佼者,被广泛应用于各种规模的项目中。Django 提供了一套强大且全面的工具&#…

JVM类加载和垃圾回收(详细)

文章目录 JVM介绍JDK/JRE/JVM的关系 内存结构堆程序计数器虚拟机栈本地方法栈本地内存 类文件字节码文件结构 类加载类的生命周期加载类加载器双亲委派模型 链接初始化类卸载 垃圾回收堆空间的基本结构内存分配和回收原则死亡对象判断方法垃圾收集算法垃圾收集器 JVM 介绍 JD…

基于Flask的影视剧热度数据可视化分析系统的设计与实现

【FLask】基于Flask的影视剧热度数据可视化分析系统的设计与实现(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 随着互联网技术的飞速发展,影视剧行业的数据量呈爆炸性增长&#x…

Docker Desktop如何恢复出厂设置

在测试dify、ragfow等几个模型过程中,各种拉镜像建容器,导致错误提示“AssertionError(Can t access Redis. Please check the Redis status.)”,两个模型都无法使用,如何清空重建?请参照下面操作: 1、Win…

Android Studio:键值对存储sharedPreferences

一、了解 SharedPreferences SharedPreferences是Android的一个轻量级存储工具,它采用的存储结构是Key-Value的键值对方式,类似于Java的Properties,二者都是把Key-Value的键值对保存在配置文件中。不同的是,Properties的文件内容形…

国自然专项项目申请:AI赋能的急性心肌梗死预警研究|基金申请·25-02-14

小罗碎碎念 急性心肌梗死严重威胁生命健康,因其起病隐匿、发病机制复杂,早期预警困难。现在,转机来了!国自然“AI赋能的急性心肌梗死预警研究”专项项目2025年度指南重磅发布。 该项目致力于攻克难题,通过多学科交叉…

【鸿蒙开发】第二十八章 应用状态的讲解、状态持久化、网络管理、应用数据持久化、文件上传下载

目录 1 应用状态 1.1 LocalStorage:页面级UI状态存储 1.1.1 两个页面共享一个对象 1.1.2 页面间共享 1.1.3 应用逻辑中使用 1.2 AppStorage:应用全局的UI状态存储 1.2.1 概述 1.2.2 基本用法 1.2.3 经常使用的方法 1.3 PersistentStorage&#x…

学习threejs,使用HemisphereLight半球光

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.HemisphereLight 二、…

数仓:核心概念,数仓系统(ETL,数仓分层,数仓建模),数仓建模方法(星型模型,雪花模型,星座模型)和步骤

数仓建模的核心概念 事实表(Fact Table): 存储业务过程的度量值(如销售额、订单数量等)。 通常包含外键,用于关联维度表。 维度表(Dimension Table): 存储描述性信息&…