LVS实验的三模式总结

文章目录

    • LVS的概念叙述
    • NAT工作模式实战案例
        • **思想:**
        • NAT工作模式的优点
          • NAT工作模式的缺点
        • NAT工作模式的应用场景
          • 大致配置
        • route:
          • 打开路由内核功能
    • 部署DR模式集群案例
        • 工作思想:
        • 大致工作图如下
        • 思路模型
      • 具体配置与事实步骤
        • 补充
    • 防火墙标签解决轮询错误
        • 工作思想:
          • 具体思想介绍
        • **防火墙标签的优点**
        • 防火墙标签的缺点
        • 第二部分命令解释
    • 常用命令选项信息

LVS的概念叙述

LVS(Linux Virtual Server)是一种基于Linux操作系统的负载均衡技术,它通过IP负载均衡和NAT(Network Address Translation)技术,将多个服务器组成一个虚拟服务器集群,从而实现高可用性和高性能的网络服务。以下是LVS的基本原理:

  1. 负载均衡调度器(Director Server)

    • LVS的核心组件是负载均衡调度器,它负责接收客户端的请求,并将这些请求分发到后端的真实服务器(Real Server)上。
    • 调度器根据一定的算法(如轮询、最少连接、IP Hash等)选择一个合适的后端服务器来处理请求。
  2. IP负载均衡

    • LVS通过修改数据包的目标IP地址,将原本发往虚拟IP地址(VIP)的请求转发到后端的真实服务器上。
    • 这种方式使得多个服务器可以共享同一个虚拟IP地址,从而对外部客户端透明地提供服务。
  3. NAT(Network Address Translation)

    • LVS利用NAT技术,在调度器上完成源地址转换(SNAT)和目的地址转换(DNAT),以实现请求的负载均衡。
    • DNAT用于将请求的目标地址从虚拟IP地址转换为后端服务器的实际IP地址,而SNAT用于将响应的源地址从后端服务器的实际IP地址转换为虚拟IP地址,以便客户端能够正确接收响应。
  4. 三种工作模式

    • NAT模式(Network Address Translation)
      • 调度器负责所有的IP报文转发,后端服务器只需要处理TCP/UDP请求。
      • 适用于后端服务器数量较少且地理位置集中的场景。
    • DR模式(Direct Routing)
      • 调度器和后端服务器位于同一个物理网络,通过MAC地址替换实现请求的直接路由。
      • 适用于后端服务器数量较多且地理位置分散的场景。
    • TUN模式(IP Tunneling)
      • 调度器和后端服务器通过IP隧道进行通信,后端服务器负责解封装和处理请求。
      • 适用于后端服务器分布在不同物理网络的场景。
  5. 健康检查和故障恢复

    • LVS支持对后端服务器的健康检查,确保只有健康的服务器参与负载均衡。
    • 当某个后端服务器出现故障时,LVS可以自动将其从服务池中移除,直到其恢复正常。

通过以上机制,LVS能够有效地实现服务器集群的负载均衡,提高系统的可用性和性能。

NAT工作模式实战案例

思想:

在我看来,nat工作模式其核心思想是通过修改数据包的源地址来实现负载均衡。在NAT模式下,LVS的调度器(Director)会接收到客户端发送的请求数据包。调度器会根据负载均衡策略选择一个后端服务器(Real Server),并将请求数据包转发给这个后端服务器。在这个过程中,调度器会修改数据包的源地址,将其改为调度器自身的IP地址。

在这里插入图片描述

NAT工作模式的优点

灵活性:NAT模式允许后端服务器使用私有IP地址,不需要每个后端服务器都有公网IP地址。这使得IP地址资源的利用更加高效。

安全性:由于后端服务器的IP地址不会暴露给外部客户端,NAT模式可以提供更好的安全性,保护后端服务器免受外部攻击。

NAT工作模式的缺点

性能损耗:NAT模式需要额外的网络地址转换操作,这会增加调度器的处理负担,可能导致一定的性能损耗。

扩展性限制:由于所有请求和响应数据包都需要通过调度器进行地址转换,NAT模式在高并发场景下的扩展性受到一定限制。
首先,两个web客户机必须安装httpd服务 ,且两台web服务器的网卡为仅主机模式,route有两个网卡一个仅主机,一个NAT

NAT工作模式的应用场景

NAT模式适用于中小型规模的负载均衡场景,特别是在后端服务器数量不多且不需要太高性能的情况下。

大致配置

web1:
在这里插入图片描述
在这里插入图片描述
(WEB2配置一样的,只是ip变一下就行)

route:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

打开路由内核功能

在这里插入图片描述
查看是否打开成功并测试httpd服务,然后下载lvs
在这里插入图片描述
开始编辑lvs的策略
在这里插入图片描述
测试:
在这里插入图片描述

部署DR模式集群案例

工作思想:

简述:其核心思想是通过直接路由技术实现负载均衡,避免了NAT模式中需要修改数据包地址的开销。
具体分析

DR模式的基本思想
数据包的直接路由: 在DR模式下,LVS的调度器(Director)和后端服务器(Real Server)通常位于同一个物理网络中。当调度器接收到客户端发送的请求数据包时,它不会修改数据包的地址,而是根据负载均衡策略选择一个后端服务器,并直接将数据包路由到这个后端服务器。

虚拟IP地址(VIP)的共享:在DR模式下,所有调度器和后端服务器都会共享一个虚拟IP地址(VIP)。这意味着客户端只需要知道VIP,就可以发送请求到LVS集群,而不需要关心具体的后端服务器地址。

ARP协议的使用: 为了实现直接路由,DR模式利用了ARP(Address Resolution Protocol)协议。当调度器接收到请求数据包时,它会发送一个ARP响应包到后端服务器,告诉后端服务器VIP对应的硬件地址是调度器的MAC地址。这样后端服务器就可以直接将响应数据包发送回客户端,而不需要通过调度器中转。

DR模式的优点
高性能: 由于DR模式不需要修改数据包的地址,避免了NAT模式中的额外开销,因此具有更高的性能。

扩展性强:DR模式可以支持大规模的负载均衡场景,因为数据包的路由操作相对简单,不会随着后端服务器数量的增加而产生显著的性能损耗。

**灵活的后端服务器配置:**在DR模式下,后端服务器可以使用私有IP地址,也可以使用公网IP地址,具有较高的灵活性。

DR模式的缺点
复杂的网络配置: DR模式需要确保调度器和后端服务器位于同一个物理网络中,并且需要配置ARP协议的相关参数,这可能需要更多的网络配置和管理。

**不支持跨网段的负载均衡:**由于DR模式依赖于直接路由技术,它不支持跨网段的负载均衡,这在某些复杂网络环境中可能会成为一个限制。

DR模式的应用场景
DR模式适用于需要高性能和高扩展性的大型负载均衡场景,特别是在后端服务器数量较多且网络环境允许的情况下。如果网络环境较为复杂或者需要跨网段进行负载均衡,可以考虑使用其他负载均衡模式,如NAT模式或TUN(IP
Tunneling)模式。

大致工作图如下

在这里插入图片描述

在这里插入图片描述

思路模型

在这里插入图片描述
(上下二选一参考即可)
在这里插入图片描述

在这里插入图片描述

具体配置与事实步骤

lvs:
在这里插入图片描述
route:
在这里插入图片描述
在这里插入图片描述
客户端:
在这里插入图片描述

web:两个web服务器的内容差不多
在这里插入图片描述在这里插入图片描述

LVS配置:

在这里插入图片描述

补充

在执行完以上操作之后,就执行
在lvs 和 rs 中设定vip
[root@lvs ~]# ip addr add dev lo 192.168.0.100/32
[root@rs1 ~]# ip addr add dev lo 192.168.0.100/32
[root@rs2 ~]# ip addr add dev lo 192.168.0.100/32
rs1代表web1,rs2代表web2
原因
之所以将环回网卡设置为一样的IP地址,是因为:
在LVS的DR模式(Direct Routing)集群部署中,将调度器(LVS)和所有后端服务器(Real Server)的环回网卡(lo)的IP地址设置为相同的虚拟IP地址(VIP)是因为DR模式的工作原理要求所有的节点都能响应同一个VIP的ARP请求。

以下是具体原因:

  1. 直接路由(Direct Routing):在DR模式下,调度器和后端服务器都位于同一个物理网络中,客户端的请求直接发送到后端服务器,而不需要通过调度器进行NAT转换。因此,所有的节点都需要能够响应同一个VIP的ARP请求,以便客户端能够直接访问后端服务器。

  2. ARP响应:ARP协议用于将IP地址解析为物理地址(MAC地址)。当客户端发送一个ARP请求来查询某个IP地址对应的MAC地址时,所有接收到这个ARP请求的设备都会检查自己是否有这个IP地址。在DR模式下,调度器和后端服务器都需要能够响应这个VIP的ARP请求,以便客户端能够建立连接。

  3. 环回网卡(lo):环回网卡是一个特殊的网络接口,用于本机的网络回环。在DR模式下,通过在环回网卡上绑定VIP,可以确保每个节点都能够正确处理发往这个VIP的请求,而不是依赖于物理网络接口。

通过将调度器和所有后端服务器的环回网卡的IP地址设置为相同的虚拟IP地址,可以确保在DR模式下,所有的节点都能正确响应ARP请求,从而实现高效且透明的负载均衡。

防火墙标签解决轮询错误

工作思想:

这个策略在我看来,其核心思想就是通过在数据包上打上标签,以便LVS调度器能够识别和处理这些数据包

具体思想介绍

**数据包的标记:**在数据包通过防火墙时,防火墙可以根据一定的规则对数据包进行标记。这些标记可以用来标识数据包的特定属性,如源地址、目的地址、协议类型等。

LVS调度器的识别:LVS调度器可以通过检查数据包上的标记来识别这些数据包,并根据标记进行相应的处理。例如,调度器可以根据标记选择合适的后端服务器进行负载均衡。

负载均衡策略的实施:通过使用防火墙标签,LVS调度器可以更精确地实施负载均衡策略,避免轮询错误问题。例如,调度器可以确保来自同一客户端的请求数据包始终被转发到相同的后端服务器,从而实现会话保持。

防火墙标签的优点

灵活性:防火墙标签提供了一种灵活的方式来标识和处理数据包。通过调整防火墙的规则,可以方便地改变数据包的标记,从而影响负载均衡的策略。

可扩展性:防火墙标签可以用于支持大规模的负载均衡场景。由于标记是在数据包通过防火墙时进行的,不会对LVS调度器造成额外的负担,因此具有较高的可扩展性。

易于管理:通过使用防火墙标签,可以在防火墙层面进行数据包的管理和控制,简化了LVS调度器的配置和管理。

防火墙标签的缺点

依赖防火墙:防火墙标签的使用依赖于防火墙的功能,如果防火墙不支持数据包的标记功能,就无法使用这种方法。

额外的配置:使用防火墙标签需要进行额外的防火墙配置,可能需要调整现有的防火墙规则,增加了管理的复杂性。

防火墙标签的应用场景
防火墙标签适用于需要高灵活性和可扩展性的负载均衡场景,特别是在需要进行精细的负载均衡控制和会话保持的情况下。如果防火墙不支持数据包的标记功能,或者不需要进行复杂的负载均衡控制,可以考虑使用其他方法,如基于IP地址的负载均衡或基于URL的负载均衡。

在LVS的运维中,选择合适的负载均衡策略和方法需要根据具体的业务需求和系统架构来进行综合评估,以确保系统的高可用性和高性能。

大致配置:
其环境和DR部署模式一样,仅仅只需要在web服务器上面装上mod_ssl,然后再到lvs进行配置
在配置之前,需要先执行 ipvsadm -C将所有策略都进行清空
lvs更改的配置:
在这里插入图片描述

在这里插入图片描述
命令解释:

iptables -t mangle -A PREROUTING -d 172.25.254.200 -p tcp -m
multiport --dports 80,443 -j MARK --set-mark 99

这段命令是在向iptables的mangle表中添加一个新的规则,具体解释如下:

  • iptables: 这是用于配置Linux内核防火墙规则的命令行工具。
  • -t mangle: 指定要操作的表为mangle。iptables有多个表,mangle表用于修改数据包的IP头信息,比如改变TOS(Type of
    Service)或者设置标记(MARK)。
  • -A PREROUTING: 指定要添加规则的链为PREROUTINGPREROUTING链是数据包进入主机后,路由判断之前的第一个链。
  • -d 172.25.254.200: 指定目标IP地址为172.25.254.200的数据包。
  • -p tcp: 指定协议为TCP。
  • -m multiport --dports 80,443: 使用multiport模块来指定多个目标端口,这里是HTTP服务的端口80和HTTPS服务的端口443。
  • -j MARK --set-mark 99: 指定动作(jump)为MARK,即对匹配的数据包设置一个内核路由决策使用的标记(mark),这里设置的标记值为99。
    在LVS(Linux Virtual Server)的运维中,这种标记通常用于负载均衡的调度决策。通过设置标记,可以在LVS的调度器上实现更复杂的负载均衡策略。例如,根据数据包的源IP、目标IP、端口等特征,决定如何将数据包分发到后端服务器。对于标记为99的数据包,后续可以通过其他iptables规则或LVS的配置来进一步处理这些数据包,实现特定的负载均衡策略。
    如果添加多了或者错误,将-A '换成-D即可
第二部分命令解释

第一条命令:
ipvsadm -A -f 99 -s rr ipvsadm: 这是用于管理IPVS的命令行工具。
-A: 指定操作为添加(add)。
-f 99: 指定数据包的标记(firewall mark)为99。这与前面提到的iptables命令中的标记值对应。
-s rr: 指定调度算法为轮询(round-robin)。这意味着IPVS将按照轮询的方式将数据包分发到后端服务器。 这条命令的作用是添加一个新的虚拟服务到IPVS中,该服务会处理那些被iptables标记为99的数据包,并且使用轮询算法来调度这些数据包到后端服务器。

第二条命令:
ipvsadm -a -f 99 -r 172.25.254.20 -g ipvsadm:
同上,是用于管理IPVS的命令行工具。
-a: 指定操作为添加(add)。
-f 99: 同上,指定数据包的标记为99。
-r 172.25.254.20: 指定后端服务器的IP地址为172.25.254.20。
-g: 指定该后端服务器为网关(gateway)模式。这意味着数据包将被直接转发到这个后端服务器,而不是通过NAT(网络地址转换)方式。 这条命令的作用是将一个后端服务器(IP地址为172.25.254.20)添加到IPVS的虚拟服务中,该服务处理那些被iptables标记为99的数据包,并且使用网关模式直接将数据包转发到这个后端服务器。

在LVS的运维中,这些命令用于动态地管理和配置负载均衡策略,确保系统的高可用性和高性能。

测试:
在客户机上进行测试
在这里插入图片描述

常用命令选项信息

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++编程(20)——类与对象(6)继承

欢迎来到博主的专栏——c编程 博主ID:代码小豪 文章目录 继承继承与权限访问 基类和派生类基类和派生类的赋值兼容转换基类与派生类的类作用域派生类与基类的构造函数基类与派生类拷贝构造函数 继承与静态成员final关键字 面向对象编程的核心思想是封装、继承和多态…

计算机网络408考研 2021

2021 计算机网络408考研2021年真题解析_哔哩哔哩_bilibili 1 1 11 1 1 11

解决No module named ‘tensorflow‘

import tensorflow as tf ModuleNotFoundError: No module named tensorflow 安装合适的tensorflow版本 先查看自己的python版本 或者输入指令;python --version 安装兼容的tensorflow版本,安装指定版本的tensorflow pip install tensorflow-gpu2.3.0…

Qt | QSQLite内存数据库增删改查

点击上方"蓝字"关注我们 01、演示 参数随便设置 查询 修改 右键菜单是重点 手动提交,点击Submit All

【Docker】基础篇

系列综述: 💞目的:本系列是个人整理为了云计算学习的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:材料主要源于–Docker视频教程从入门到进阶,docker视频教程详解–…

【云原生】高可用集群KEEPALIVED(理论篇)

一、高可用集群 1.1 集群类型 LB:Load Balance 负载均衡 LVS/HAProxy/nginx(http/upstream, stream/upstream)HA:High Availability 高可用集群数据库、RedisSPoF: Single Point of Failure,解决单点故障HPC: High Performance computing 高性能集群 1.2 系统可用…

车身域测试学习、CANoe工具实操学习、UDS诊断测试、功能安全测试、DTC故障注入测试、DBC数据库、CDD数据库、CAN一致性测试、ECU刷写测试

每日直播时间:(直播方式:腾讯会议)周一到周五:20:00-23:00周六与周日:9:00-17:00 进腾讯会议学习的,可以关注我并后台留言 直播内容:&…

OKnews加密货币资讯:现货比特币ETF市场动荡,价格大幅下跌

OKnews加密货币资讯网8月13日讯:现货比特币ETF 市场近期的动荡给加密货币行业带来了冲击,导致比特币 (BTC) 未能维持其在关键的60,000美元大关之上的地位。该数字货币在过去24 小时内下跌了 3.65%,跌至58,515 美元。市场波动加剧以及对美国经…

人脸操作:从检测到识别的全景指南

人脸操作:从检测到识别的全景指南 在现代计算机视觉技术中,人脸操作是一个非常重要的领域。人脸操作不仅包括检测图像中的人脸,还涉及到人脸识别、表情分析、面部特征提取等任务。这些技术在各种应用中发挥着关键作用,从社交媒体…

中国科技统计年鉴,数据覆盖1991-2022年多年份

基本信息. 数据名称: 中国科技统计年鉴 数据格式: excel 数据时间: 1991-2022年 数据几何类型: xlsx 数据坐标系: WGS84 数据来源:国家统计局 数据预览: 数据可视化.

(kali关怀版)kali调整字体图标显示大小

字体大小调整(图标字体) 字体在左上角搜apprence 图标大小调整 图标在桌面右键点apprence 任务栏大小调整 任务栏在上面右键,选择panel preference 终端字体大小调整 终端字体用ctrl和加号减号进行缩放 属于是kali关怀版了:) 还可指定锁屏和休眠时间&#…

waveInAddBuffer死锁的大雷解决

项目场景: 从来没有一个bug让我这么抓狂,足足查了3天3夜,官方文档翻了一遍说的基本无用。具体项目就是使用waveIn系列函数获取windows系统麦克风数据,虽然windows上有好几种方法获取麦克风数据,我最终还是选择了它。 …

Springboot整合hutool验证码

在 Spring Boot 中&#xff0c;你可以将 Hutool 生成验证码的功能集成到 RESTful API 接口中。 依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.14</version> <!-- 使用最新版…

pytorch,用lenet5识别cifar10数据集(训练+测试+单张图片识别)

目录 LeNet-5 LeNet-5 结构 CIFAR-10 pytorch实现 lenet模型 训练模型 1.导入数据 2.训练模型 3.测试模型 测试单张图片 代码 运行结果 LeNet-5 LeNet-5 是由 Yann LeCun 等人在 1998 年提出的一种经典卷积神经网络&#xff08;CNN&#xff09;模型&#xff0c;主要…

Solana真假繁荣调查:机器人横行占7成交易,Meme数据下滑严重

随着Solana链上数据全面赶超以太坊&#xff0c;关于Solana将超越以太坊的讨论逐渐升温。然而&#xff0c;与此同时&#xff0c;关于Solana真实繁荣度的争议也引发了广泛关注。本文将深入探讨Solana生态中机器人泛滥、交易量数据虚高、MEV问题、财务亏损问题&#xff0c;以及SOL…

从零搭建xxl-job(四):xxljob进行一些性能优化

之前的代码这部分并没有补充完毕&#xff0c;假如调度中心如果判断有定时任务要执行了&#xff0c;该怎么远程通知给执行定时任务的程序呢&#xff1f;当定时任务要把自己的信息发送给调度中心时&#xff0c;是通过一个RegistryParam对象发送的。该对象内部封装了定时任务相关的…

【C#】explicit、implicit与operator

字面解释 explicit&#xff1a;清楚明白的;易于理解的;(说话)清晰的&#xff0c;明确的;直言的;坦率的;直截了当的;不隐晦的;不含糊的。 implicit&#xff1a;含蓄的;不直接言明的;成为一部分的;内含的;完全的;无疑问的。 operator&#xff1a;操作人员;技工;电话员;接线员;…

HarmonyOS应用开发者高级认证(一)

1、依次点击A、B、C、D四个按钮&#xff0c;其中不会触发UI刷新的是&#xff1a; 答案&#xff1a; Button("C").onClick(() > {this.nameList[0].name "Jim"})分析&#xff1a;直接更新非一级数据不会触发UI刷新 2、如果要实现Row组件内的子元素均匀…

基于JSP的个性化影片推荐系统

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;JSP 数据库&#xff1a;MySQL 技术&#xff1a;JSP技术 工具&#xff1a;MyEclipse、Tomcat、MySQL 系统展示 首页 管理员功能模块 用户功能模块 …

Rancher的RKE和RKE2部署K8s集群kube-proxy开启strictARP

kube-proxy配置strictARPtrue 1、非RKE部署的K8s集群&#xff1a;配置首先&#xff0c;需要为kube-proxy启动strictARP&#xff0c;以便Kubernetes集群中的所有网卡停止响应其他网卡的ARP请求&#xff0c;而由OpenELB来处理ARP请求。 $ kubectl edit configmap kube-proxy -n…