基于 openEuler 构建 LVS-DR 群集

news/2025/2/21 22:43:13/

一、对比 LVS 负载均衡群集的 NAT 模式和 DR 模式

1. NAT 模式

工作原理:

        客户端请求发送到负载均衡器(LVS)。

        LVS 修改请求的目标 IP 地址为后端服务器的 IP 地址,并将请求转发。

        后端服务器处理请求后,将响应返回给 LVS。

        LVS 再将响应的源 IP 地址修改为自己的 IP 地址,返回给客户端。

优势:

        配置简单:NAT 模式相对容易配置,适合初学者或简单场景。

        隐藏后端服务器:后端服务器的真实 IP 地址对客户端不可见,增强了安全性。

        支持跨网段:LVS 和后端服务器可以位于不同的网络段,适合分布式部署。

劣势:

        性能瓶颈:LVS 需要处理所有进出流量,可能成为性能瓶颈,尤其是在高流量场景下。

        单点故障:LVS 是唯一的入口和出口,一旦故障,整个系统将不可用。

        网络开销:LVS 需要修改每个数据包的 IP 地址,增加了网络开销。

2. DR 模式

工作原理:

        客户端请求发送到负载均衡器(LVS)。

        LVS 将请求转发给后端服务器,但不修改 IP 地址,仅修改 MAC 地址。

        后端服务器直接响应客户端,不经过 LVS。

优势:

        高性能:LVS 只处理入站流量,出站流量由后端服务器直接返回客户端,减少了 LVS 的负载,性能更高。

        低延迟:响应数据包不经过 LVS,减少了网络延迟。

        扩展性强:适合高流量、高并发的场景,能够轻松扩展后端服务器。

劣势:

        配置复杂:DR 模式需要后端服务器配置 VIP(Virtual IP),并且需要确保后端服务器不响应 ARP 请求,配置较为复杂。

        网络限制:LVS 和后端服务器必须在同一局域网(LAN)内,不能跨网段。

        暴露后端服务器:后端服务器的真实 IP 地址可能暴露给客户端,存在一定的安全风险。

二、基于 openEuler 构建 LVS-DR 群集

1、实验环境

主机名IP地址角色
openEuler-2192.168.183.11Director Server
openEuler-1192.168.183.12Real Server1
openEuler-3192.168.183.13Real Server2
openEuler-4192.168.183.14Client

2、安装nginx服务器并设置静态页面(两台RS上配置一致)

[root@openEuler-1 ~]# yum install nginx -y[root@openEuler-1 ~]# echo "web test page, ip is `hostname -I`." > /usr/share/nginx/html/index.html[root@openEuler-1 ~]# systemctl enable --now nginx[root@openEuler-1 ~]# curl localhost
web test page, ip is 192.168.183.12 .

3、添加VIP的相关配置

在两台RS和DS上:

[root@openEuler-2 ~]# nmcli con add type dummy ifname dummy1 ipv4.method manual ipv4.addresses 192.168.183.10/32
Connection 'dummy-dummy1' (c54d631d-3f2f-463c-b808-bd0f483e51fc) successfully added.
[root@openEuler-2 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:29:96:40 brd ff:ff:ff:ff:ff:ffinet 192.168.183.11/24 brd 192.168.183.255 scope global noprefixroute ens160valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe29:9640/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: dummy1: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000link/ether 52:0d:11:f4:39:6a brd ff:ff:ff:ff:ff:ffinet 192.168.183.10/32 scope global noprefixroute dummy1valid_lft forever preferred_lft foreverinet6 fe80::8a3f:23b2:85a2:66d6/64 scope link noprefixroute valid_lft forever preferred_lft forever

4、配置arp抑制(两台RS上配置)

[root@open-1 ~]# vim /etc/sysctl.conf 
在最后加上四行
> net.ipv4.conf.all.arp_ignore = 1
> net.ipv4.conf.all.arp_announce = 2
> net.ipv4.conf.dummy1.arp_ignore = 1
> net.ipv4.conf.dummy1.arp_announce = 2#使配置生效
[root@open-1 ~]# sysctl -p

5、LVS配置(DS上配置)

[root@openEuler-2 ~]# yum install ipvsadm -y
[root@openEuler-2 ~]# ipvsadm -At 192.168.183.10:80 -s rr
[root@openEuler-2 ~]# ipvsadm -at 192.168.183.10:80 -r 192.168.183.12:80 -g
[root@openEuler-2 ~]# ipvsadm -at 192.168.183.10:80 -r 192.168.183.13:80 -g
[root@openEuler-2 ~]# 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.183.10:80 rr-> 192.168.183.12:80            Route   1      0          0-> 192.168.183.13:80            Route   1      0          0

6、clinet上测试

[root@openEuler-4 ~]# for ((i=1;i<=6;i++))
> do
> curl 192.168.183.10
> done
web test page, ip is 192.168.183.13 .
web test page, ip is 192.168.183.12 .
web test page, ip is 192.168.183.13 .
web test page, ip is 192.168.183.12 .
web test page, ip is 192.168.183.13 .
web test page, ip is 192.168.183.12 .


http://www.ppmy.cn/news/1573191.html

相关文章

Vulhub靶机 ActiveMQ 反序列化漏洞(CVE-2015-5254)(渗透测试详解)

一、开启vulhub环境 docker-compose up -d 启动 docker ps 查看开放的端口 漏洞版本&#xff1a;Apache ActiveMQ 5.x ~ Apache ActiveMQ 5.13.0 二、访问靶机IP 8161端口 默认账户密码 admin/admin&#xff0c;登录 此时qucues事件为空 1、使用jmet-0.1.0-all.jar工具将…

PyQt6/PySide6 的 SQL 数据库操作(QtSql)

一、核心组件架构 1.1 QtSql模块构成 QSqlDatabase&#xff1a;数据库连接管理&#xff08;支持连接池&#xff09;QSqlQuery&#xff1a;SQL语句执行与结果遍历QSqlTableModel&#xff1a;可编辑的表格数据模型QSqlQueryModel&#xff1a;只读查询结果模型QSqlRelationalTab…

c#自动更新-源码

软件维护与升级 修复漏洞和缺陷&#xff1a;软件在使用过程中可能会发现各种漏洞和缺陷&#xff0c;自动更新可以及时推送修复程序&#xff0c;增强软件的稳定性和安全性&#xff0c;避免因漏洞被利用而导致数据泄露、系统崩溃等问题。提升性能&#xff1a;通过自动更新&#x…

【Linux】【进程】epoll内核实现总结+ET和LT模式内核实现方式

【Linux】【网络】epoll内核实现总结ET和LT模式内核实现方式 1.epoll的工作原理 eventpoll结构 当某一进程调用epoll_create方法时&#xff0c;Linux内核会创建一个eventpoll结构体&#xff0c;这个结构体中有两个成员与epoll的使用方式密切相关. struct eventpoll{..../*红…

结构型模式---代理模式

概念 代理模式是一种结构型模式&#xff0c;主要用于在客户端和接口之间添加一个中间层&#xff0c;用于在客户端和接口之间进行权限控制或者其他的中间层操作。 使用场景 1、延缓初始化&#xff0c;当我们偶尔需要使用一个重量级的服务对象&#xff0c;如果一直保持该对象的…

【Linux】:网络通信

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家带来网络通信相关的知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入门到精通 数据结…

Spring Boot框架知识总结(超详细)

前言 本篇文章包含Springboot配置文件解释、热部署、自动装配原理源码级剖析、内嵌tomcat源码级剖析、缓存深入、多环境部署等等&#xff0c;如果能耐心看完&#xff0c;想必会有不少收获。 一、Spring Boot基础应用 Spring Boot特征 概念&#xff1a; 约定优于配置&#…

nlp|微调大语言模型初探索(1),LLaMA-Factory

前言 微调模型通常比从零开始训练一个模型的技术要求低。公司不需要拥有大量的深度学习专家&#xff0c;利用现有的开源工具和库&#xff08;如Hugging Face的Transformers等&#xff09;&#xff0c;中小型公司可以轻松地使用和微调大型模型&#xff0c;从而快速实现AI能力的集…