LVS实验的三模式总结

news2024/11/27 18:29:57

文章目录

    • 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.coloradmin.cn/o/2035036.html

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

相关文章

RCE漏洞复现

PHP命令执行常用函数 回调函数必须是命令执行和代码执行的函数,有两个条件 必须是函数,而且需要有函数运行的参数 危害:可以直接删除文件,添加文件,甚至可以添加用户 system --执行外部程序,并且显示输…

Ubuntu操作系统的基础操作和设置(详细且全面)(1)

前言 当Ubuntu系统被搭建完成以后,为了方便大家更容易上手,所以对常见的基础操作和设置进行讲解 1.支持中文显示,中文输入设置 1.1:支持中文显示 Ubuntu操作系统默认显示和输入的语言是英文。所以,如果你的英…

《虚拟之旅:开启无限可能的机器世界》简介:

1.Ubonto的介绍: Ubuntu 是一个流行的开源操作系统,基于 Linux 内核。 它具有以下一些特点和优势: 开源免费:任何人都可以免费使用、修改和分发。丰富的软件库:通过软件包管理器可以方便地安装各种应用程序。良好的…

Linux系统移植——开发板烧写(二)

目录: 目录: 一、什么是EMMC分区? 1.1 eMMC分区 1.2 分区的管理 二、相关命令介绍: 2.1 mmc 2.1.1 主要功能 2.1.2 示例用法 2.2 fdisk 2.2.1 基本功能 2.2.2 交互模式常用命令 2.2.3 注意事项 三、U-BOOT烧写 3.1 mmc命令 3.2 f…

Java并发面试题汇总

文章目录 线程什么是线程和进程?请简要描述线程与进程的关系,区别及优缺点?程序计数器、虚拟机栈、虚拟机栈、堆和方法区如何创建线程?线程的生命周期什么是线程上下文切换?Thread#sleep() 方法和 Object#wait() 方法对比为什么 wait() 方法不定义在 Thread 中?为什么 sle…

【解压即玩】PC端最好用最漂亮的前端CoinOPS整合包186G 复古带遮罩和滤镜,怀旧拉满

这是大神做的一个整合包,让游戏界面更加的漂亮,如图,下面是游戏选择画面,右侧是滚动的圆盘,左侧显示游戏的画面: 实际游戏时的界面是这样的: 应当是目前最漂亮的游戏界面了。之前有人说在电脑上…

sp eric靶机

扫描IP 端口扫描 nmap 192.168.111.146 -p- -sV 目录扫描 # 使用命令 dirsearch -u "http://192.168.111.146" 访问靶机IP地址 拼接访问 admin.php ,发现登录框界面,尝试sql注入,弱口令等,没有结果 看看 .git &#…

【C语言篇】C语言常考及易错题整理DAY2

文章目录 C语言常考及易错题整理选择题编程题至少是其他数字两倍的最大数两个数组的交集图片整理寻找数组的中心下标多数元素除自身以外数组的乘积不使用加减乘除求两个数的加法 C语言常考及易错题整理 选择题 下列 for 循环的次数为( ) for(int i 0…

高可用keepalived详解---干货满满(企业应用示例)

目录 一、master/master 的 Keepalived 双主架构 1.1 ka1部署 1.2 ka2部署 1.3 重启测试 二、实现ipvs高可用 (keepalivedlvs) 2.1 ipvs的相关配置 2.1.1 虚拟服务器配置架构 2.1.2 virtual server (虚拟服务器)的定义格式 2.1.3 虚拟服务器…

四十、大数据技术之Kafka3.x(3)

🌻🌻 目录 一、Kafka Broker1.1 Kafka Broker工作流程1.1.1 Zookeeper 存储的Kafka信息1.1.2 Kafka Broker 总体工作流程1.1.3 Broker 重要参数 1.2 生产经验——节点服役和退役1.2.1 服役新节点1.2.2 退役旧节点 1.3 Kafka 副本1.3.1 副本基本信息1.3.2…

线程知识及编程

线程定义 在Python中,想要实现多任务还可以使用多线程来完成。 为什么使用多线程? 进程是分配资源的最小单位 , 一旦创建一个进程就会分配一定的资源 , 就像跟两个人聊QQ就需要打开两个QQ软件一样是比较浪费资源的 . 线程是程序执行的最小单位 , 实际…

企业应该如何准备 EcoVadis 审核?

企业准备 EcoVadis 审核可以参考以下步骤: 注册:在网上注册并提供公司的相关信息,包括法律实体名称、国家和地区、企业规模和行业等。如果是受客户邀请参加评估,需按照邀请邮件中的链接进行注册,并确保客户能随时获知评…

【ML】强化学习(Reinforcement Learning)及其拆解

【ML】强化学习(Reinforcement Learning) 1. RL Outline 强化学习(Reinforcement Learning)概述1.1 RL的基本框架 2. RL 引入:从这个小游戏开始3. Policy Gradient 方法4. Actor-Critic 方法5. [奖励塑形(R…

(第二十六天)

上午 1、web01与web02服务器搭建 ip:10.0.0.11 systemctl stop filewalld systemctl disable firewalld setenforce 0 vim /etc/selinux/config SELINUX disabled yum -y install nginx echo "web----------01" > /usr/share/nginx/html/index.h…

力扣热题100_二叉树_230_二叉搜索树中第K小的元素

文章目录 题目链接解题思路解题代码 题目链接 230. 二叉搜索树中第K小的元素 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。 示例 1: 输入&#xff1a…

图论:欧拉路

欧拉路是什么 什么?你对这个名字感到很陌生?再看看是图论的内容,感觉是不是很难?其实一点也不难,这就是生活中的一笔画问题,也就是不重复的经过每一条边并可以访问所有的点,先看看这个图&#…

Python字符串格式化方法输出到控制台

python打印是这样的,我希望resource_id能够对齐输出: 3种格式化方法 %格式化 >>> pi3.141592653589793 >>> e2.718281828459045 >>> print("pi%.2f e%.3f" % (pi, e) ) pi3.14 e2.718“”.format()格式化 >…

操作系统(线程管理-通过条件变量实现消费者与生产者模型)

生产者与消费者模型 生产者:生产数据的线程,这类的线程负责从用户端、客户端接收数据,然后把数据Push到存储中介。 消费者:负责消耗数据的线程,对生产者线程生产的数据进行(判断、筛选、使用、响应、存储&…

x264 编码器 SSIM 算法源码分析

SSIM SSIM(Structural Similarity Index)是一种用于衡量两幅图像之间视觉相似度的指标。它不仅考虑了图像的亮度、对比度和饱和度,还考虑了图像的结构信息。SSIM的值介于-1到1之间,值越接近1表示两幅图像越相似。 SSIM是基于以下三个方面来计算的: 亮度(Luminance):比…

【Hot100】LeetCode—560. 和为 K 的子数组

目录 1- 思路前缀和 2- 实现⭐560. 和为 K 的子数组——题解思路 3- ACM 实现 原题链接:560. 和为 K 的子数组 1- 思路 前缀和 ① 借助 HashMap 存储前缀和:Key 为对应的前缀和,Value 为对应的出现次数 hm 初始化放入 (0,1) 代表和为 0 的情…