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

使用LVS的 NAT 模式实现 3 台RS的轮询访问

节点规划

1、配置RS

RS的网络配置为NAT模式,三台RS的网关配置为192.168.10.8

1.1配置RS1

1.1.1修改主机名和IP地址

[root@localhost ~]# hostnamectl hostname rs1
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.10.7/24 ipv4.gateway 192.168.10.8 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160

1.1.2安装nginx,修改默认访问页,测试

[root@rs1 ~]# dnf install nginx -y
[root@rs1 ~]# echo $(hostname -I) > /usr/share/nginx/html/index.html
[root@rs1 ~]# systemctl start nginx
[root@rs1 ~]# curl localhost
192.168.10.7

1.2配置RS2 

1.2.1修改主机名和IP地址

[root@localhost ~]# hostnamectl hostname rs2
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.10.17/24 ipv4.gateway 192.168.10.8 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160

1.2.2 安装nginx,修改默认访问页,测试

[root@rs2 ~]# dnf install nginx -y
[root@rs2 ~]# echo $(hostname -I) > /usr/share/nginx/html/index.html
[root@rs2 ~]# systemctl start nginx
[root@rs2 ~]# curl localhost
192.168.10.17

1.3配置RS3 

1.3.1修改主机名和IP地址

[root@localhost ~]# hostnamectl hostname rs3
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.10.27/24 ipv4.gateway 192.168.10.8 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160

  1.3.2安装nginx,修改默认访问页,测试

[root@rs3 ~]# dnf install nginx -y
[root@rs3 ~]# echo $(hostname -I) > /usr/share/nginx/html/index.html
[root@rs3 ~]# systemctl start nginx
[root@rs3 ~]# curl localhost
192.168.10.27

2、配置LVS 

2.1修改虚拟网络

lvs服务器有两块网卡,第一块网卡采用仅主机模式,IP 地址为 192.168.20.200,第二块网卡采用 NAT 模式,IP 地址为192.168.10.8

2.1.1修改网络设备连接名称

查看网络设备连接设备

[root@localhost ~]# nmcli connection show 
NAME                UUID                                  TYPE      DEVICE 
ens160              7b6ddf1c-4c7b-3bfd-b415-ca96de17cc9f  ethernet  ens160 
Wired connection 1  267b4a09-717b-3c98-b9cd-f144a31f474e  ethernet  ens224 
lo                  5d77457a-166c-4646-b4ba-501cf54a8ef7  loopback  lo    

修改Wired connection 1 改为 ens224

[root@localhost ~]# nmcli c modify 'Wired connection 1' connection.id ens224
[root@localhost ~]# nmcli connection show 
NAME    UUID                                  TYPE      DEVICE 
ens160  7b6ddf1c-4c7b-3bfd-b415-ca96de17cc9f  ethernet  ens160 
ens224  267b4a09-717b-3c98-b9cd-f144a31f474e  ethernet  ens224 
lo      5d77457a-166c-4646-b4ba-501cf54a8ef7  loopback  lo     

2.1.2修改主机名并配置仅主机模式网卡 

[root@localhost ~]# hostnamectl hostname lvs
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.20.200/24 ipv4.gateway 192.168.20.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160

2.1.3安装ipvsadm软件

[root@lvs ~]# dnf install ipvsadm -y

2.1.4配置NET模式网卡

[root@lvs ~]# nmcli c modify ens224 ipv4.method manual ipv4.addresses 192.168.10.8/24 ipv4.gateway 192.168.10.2 connection.autoconnect yes
[root@lvs ~]# nmcli c up ens224

2.1.5查看配置完的网络设备 

[root@lvs ~]# 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:44:fb:7f brd ff:ff:ff:ff:ff:ffaltname enp3s0inet 192.168.20.200/24 brd 192.168.20.255 scope global noprefixroute ens160valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe44:fb7f/64 scope link noprefixroute valid_lft forever preferred_lft forever
3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:44:fb:89 brd ff:ff:ff:ff:ff:ffaltname enp19s0inet 192.168.10.8/24 brd 192.168.10.255 scope global noprefixroute ens224valid_lft forever preferred_lft foreverinet6 fe80::4c3e:c674:776a:8407/64 scope link noprefixroute valid_lft forever preferred_lft forever

3、配置客户端 

客户端网络采用仅主机模式

3.1修改主机名和IP地址

[root@localhost ~]# hostnamectl hostname client
[root@localhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.20.100/24 ipv4.gateway 192.168.20.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
[root@localhost ~]# nmcli c up ens160

4、功能测试 

4.1启动ipvsadm服务

[root@lvs ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@lvs ~]# systemctl start ipvsadm

4.2做LVS规则匹配

4.2.1配置一条规则

[root@lvs ~]# ipvsadm -A -t 192.168.20.200:80 -s rr

4.2.2为规则增加RS 

[root@lvs ~]# ipvsadm -a -t 192.168.20.200:80 -r 192.168.10.7:80 -m -w 2
[root@lvs ~]# ipvsadm -a -t 192.168.20.200:80 -r 192.168.10.17:80 -m -w 2
[root@lvs ~]# ipvsadm -a -t 192.168.20.200:80 -r 192.168.10.27:80 -m -w 2

4.2.3列出当前LPVS表

[root@lvs ~]# 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.20.200:80 rr-> 192.168.10.7:80              Masq    2      0          0         -> 192.168.10.17:80             Masq    2      0          0         -> 192.168.10.27:80             Masq    2      0          0        

 4.2.4重启服务

[root@lvs ~]# systemctl restart ipvsadm

4.2.5配置内核转发参数

[root@lvs ~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
[root@lvs ~]# sysctl -p
net.ipv4.ip_forward = 1

5、客户端测试 

[root@client ~]# curl 192.168.20.200
192.168.10.27
[root@client ~]# curl 192.168.20.200
192.168.10.17
[root@client ~]# curl 192.168.20.200
192.168.10.7
[root@client ~]# curl 192.168.20.200
192.168.10.27
[root@client ~]# curl 192.168.20.200
192.168.10.17
[root@client ~]# curl 192.168.20.200
192.168.10.7
[root@client ~]# curl 192.168.20.200
192.168.10.27
[root@client ~]# curl 192.168.20.200
192.168.10.17
[root@client ~]# curl 192.168.20.200
192.168.10.7

相关文章:

使用LVS的 NAT 模式实现 3 台RS的轮询访问

节点规划 1、配置RS RS的网络配置为NAT模式&#xff0c;三台RS的网关配置为192.168.10.8 1.1配置RS1 1.1.1修改主机名和IP地址 [rootlocalhost ~]# hostnamectl hostname rs1 [rootlocalhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 192.168.10.7/24…...

R 基础语法

R 基础语法 引言 R 是一种针对统计计算和图形表示而设计的编程语言和环境。它广泛应用于统计学、生物信息学、数据挖掘等领域。本文将为您介绍 R 语言的基础语法,帮助您快速上手。 R 的基本结构 R 语言的基本结构包括:变量、数据类型、运算符、控制结构、函数等。 变量 …...

MySQL实战(尚硅谷)

要求 代码 # 准备数据 CREATE DATABASE IF NOT EXISTS company;USE company;CREATE TABLE IF NOT EXISTS employees(employee_id INT PRIMARY KEY,first_name VARCHAR(50),last_name VARCHAR(50),department_id INT );DESC employees;CREATE TABLE IF NOT EXISTS departments…...

华为p10 plus 鸿蒙2.0降级emui9.1.0.228

需要用到的工具 HiSuite Proxy V3 华为手机助手11.0.0.530_ove或者11.0.0.630_ove应该都可以。 官方的通道已关闭&#xff0c;所以要用代理&#xff0c;127.0.0.1端口7777 https://www.firmfinder.ml/ https://professorjtj.github.io/v2/ https://hisubway.online/articl…...

C# Modbus RTU学习记录

继C# Modbus TCP/IP学习记录后&#xff0c;尝试串口通信。 操作步骤&#xff1a; 1.使用Visual Studio安装Nuget包NModbus.Serial。 2.使用Modbus Slave应用程序&#xff0c;工具栏Connection项&#xff0c;单击Connect&#xff0c;弹窗Connection Setup&#xff0c;修改Con…...

AI+Xmind自动生成测试用例(思维导图格式)

一、操作步骤: 步骤1:创建自动生成测试用例智能体 方式:使用通义千问/豆包智能体生成,以下两个是我已经训练好的智能体,直接打开使用即可 通义智能体: https://lxblog.com/qianwen/share?shareId=b0cd664d-5001-42f0-b494-adc98934aba5&type=agentCard 豆包智能…...

单片机 - 位运算详解(``、`|`、`~`、`^`、`>>`、`<<`)

单片机中的位运算详解&#xff08;&、|、~、^、>>、<<&#xff09; 位运算是单片机编程&#xff08;C/C&#xff09;中经常使用的技巧&#xff0c;用于高效地操作寄存器、I/O 端口和数据。以下是各位运算符的详细解析&#xff0c;并结合单片机实际应用举例。 …...

chrome插件开发之API解析-chrome.tabs.query

chrome.tabs.query 是 Chrome 扩展开发中用于查询浏览器标签页信息的 API。它允许你根据指定的条件获取当前浏览器中所有匹配的标签页。这个 API 返回一个 Promise&#xff0c;解析后会得到一个包含匹配标签页信息的数组。 常见用途 获取当前活动标签页&#xff1a;可以获取当…...

(二)手眼标定——概述+原理+常用方法汇总+代码实战(C++)

一、手眼标定简述 手眼标定的目的&#xff1a;让机械臂和相机关联&#xff0c;相机充当机械臂的”眼睛“&#xff0c;最终实现指哪打哪 相机的使用前提首先需要进行相机标定&#xff0c;可以参考博文&#xff1a;&#xff08;一&#xff09;相机标定——四大坐标系的介绍、对…...

3D点云的深度学习网络分类(按照作用分类)

1. 3D目标检测&#xff08;Object Detection&#xff09; 用于在点云中识别和定位目标&#xff0c;输出3D边界框&#xff08;Bounding Box&#xff09;。 &#x1f539; 方法类别&#xff1a; 单阶段&#xff08;Single-stage&#xff09;&#xff1a;直接预测3D目标位置&am…...

【Linux网络-NAT、代理服务、内网穿透】

一、NAT技术 1.NAT技术背景 之前我们讨论了&#xff0c;IPV4协议中&#xff0c;IP地址数量不充足的问题 NAT技术当前解决IP地址不够用的主要手段&#xff0c;是路由器的一个重要功能 NAT&#xff08;网络地址转换&#xff0c;Network Address Translation&#xff09;是一种…...

Windows 和 Linux 操作系统架构对比以及交叉编译

操作系统与架构兼容性详解 1. 可执行文件格式&#xff1a;PE vs ELF Windows: PE (Portable Executable) 格式 详细解释&#xff1a; PE 格式是 Windows 下的可执行文件标准 包含多个区段&#xff08;Sections&#xff09;&#xff0c;如代码段、数据段、资源段 文件头包含…...

heapq库的使用——python代码

Python中heapq库的基础使用方法和示例代码&#xff0c;包含详细注释说明&#xff1a; 1. 基本功能 heapq 实现的是最小堆&#xff08;父节点值 ≤ 子节点值&#xff09;&#xff0c;核心操作包括&#xff1a; 插入元素&#xff1a;heappush(heap, item)弹出最小值&#xff1a…...

新手村:逻辑回归-理解02:逻辑回归中的伯努利分布

新手村&#xff1a;逻辑回归-理解02&#xff1a;逻辑回归中的伯努利分布 伯努利分布在逻辑回归中的潜在含义及其与后续推导的因果关系 1. 伯努利分布作为逻辑回归的理论基础 ⭐️ 逻辑回归的核心目标是: 建模二分类问题中 目标变量 y y y 的概率分布。 伯努利分布&#xff08…...

golang Error的一些坑

golang Error的一些坑 golang error的设计可能是被人吐槽最多的golang设计了。 最经典的err!nil只影响代码风格设计&#xff0c;而有一些坑会导致我们的程序发生一些与我们预期不符的问题&#xff0c;开发过程中需要注意。 ​​ errors.Is​判断error是否Wrap不符合预期 ​…...

【干货,实战经验】nginx缓存问题

文章目录 案例背景出现的问题:定位到问题解决方式修改配置修改后的nginx配置 案例背景 有2个服务器A 和B&#xff0c;A是一个动态ip经常变公网ip&#xff0c;B是一个云服务器&#xff0c;公网ip固定. 于是我通过ddns &#xff0c;找了个域名C&#xff0c;动态解析A服务器上的公…...

分布式理论:CAPBASE理论

1 CAP理论 1.1 简介 CAP也就是Consistency&#xff08;一致性&#xff09;、Availability&#xff08;可用性&#xff09;、Partition Tolenrance&#xff08;分区容错性&#xff09;这三个单词首字母组合。 在理论计算机科学中&#xff0c;CAP定理&#xff08;CAP theorem&…...

大数据学习(86)-Zookeeper去中心化调度

&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一…...

uniapp再次封装uni-nav-bar导航栏组件

<!-- components/custom-nav-bar/custom-nav-bar.vue --> <template><view class"custom-nav" :style"{ backgroundColor: bgColor }"><!-- 状态栏占位 --><view class"status-bar" :style"{ height: statusBar…...

ngx_http_index_t

定义在 src\http\modules\ngx_http_index_module.c typedef struct {ngx_str_t name;ngx_array_t *lengths;ngx_array_t *values; } ngx_http_index_t; 该结构体用于 存储和解析 index 指令中单个索引文件的信息 &#xff0c;支持静态…...

深入解析Flink Kafka Connector的分布式流数据采集架构与底层实现

目录 1. Flink Kafka连接器的分布式流采集架构 1.1 架构组成 1.2 分布式流模型 2. 数据分区分配策略 3. 为什么重写序列化和偏移量管理 3.1 与Flink分布式架构集成 3.2 与Flink检查点机制集成同时承接多级并行架构 3.3 OffsetsInitializer与细粒度偏移量控制 3.4 与Fl…...

vcd波形转仿真激励

我们使用vivado的ila抓取波形后&#xff0c;常常希望用该波形作为激励参与仿真。稍微复杂的项目中手动输入的工作量巨大&#xff0c;几乎是不可能采取的方式。我的方法是保存ila波形为vcd格式文件&#xff0c;用python解析vcd文件&#xff0c;转换成仿真激励的代码。 python代码…...

【STM32】知识点介绍二:GPIO引脚介绍

文章目录 一、概述二、GPIO的工作模式三、寄存器编程 一、概述 GPIO&#xff08;英语&#xff1a;General-purpose input/output&#xff09;,即通用I/O(输入/输出)端口&#xff0c;是STM32可控制的引脚。STM32芯片的GPIO引脚与外部设备连接起来&#xff0c;可实现与外部通讯、…...

【AI】NLP

不定期更新&#xff0c;建议关注收藏点赞。 目录 transformer大语言模型Google Gemma疫情网民情绪识别 整体框架 baseline构建 模型调参、模型优化、其他模型 数据trick、指标优化、magic feature 数据增强、伪标签、迁移学习 模型融合sklearn中TFIDF参数详解 频率阈值可以去掉…...

Go 代理爬虫

现在注册&#xff0c;还送15美金注册奖励金 --- 亮数据-网络IP代理及全网数据一站式服务商 使用代理服务器&#xff0c;通过 Colly、Goquery、Selenium 进行网络爬虫的基础示例程序 本仓库包含两个分支&#xff1a; basic 分支包含供 Go Proxy Servers 这篇文章改动的基础代码…...

【NLP 43、大模型技术发展】

目录 一、ELMo 2018 训练目标 二、GPT-1 2018 训练目标 三、BERT 2018 训练目标 四、Ernie —— baidu 2019 五、Ernie —— Tsinghua 2019 六、GPT-2 2019 七、UNILM 2019 八、Transformer - XL & XLNet 2019 1.模型结构 Ⅰ、循环机制 Recurrence Mechanism Ⅱ、相对位置…...

在普通用户下修改root用户密码

1 从普通用户切换到root用户 sudo -s 再输入密码。 2 输入passwd ,会提醒你输入当前用户密码&#xff0c;验证后会提醒你输入root用户密码。 3 切换到root用户&#xff0c;使用修改过的密码登陆。 4 成功进入root用户。...

【每日算法】Day 6-1:哈希表从入门到实战——高频算法题(C++实现)

摘要 &#xff1a;掌握高频数据结构&#xff01;今日深入解析哈希表的核心原理与设计实现&#xff0c;结合冲突解决策略与大厂高频真题&#xff0c;彻底掌握O(1)时间复杂度的数据访问技术。 一、哈希表核心思想 哈希表&#xff08;Hash Table&#xff09; 是一种基于键值对的…...

go命令使用

查看配置信息 go env配置go国内源 export GO111MODULEon export GOPROXYhttps://goproxy.cn测试 go install github.com/jesseduffield/lazydockerlatesthttps://github.com/jesseduffield/lazydocker...

深入 SVG:矢量图形、滤镜与动态交互开发指南

1.SVG 详细介绍 SVG&#xff08;Scalable Vector Graphics&#xff09; 是一种基于 XML 的矢量图形格式&#xff0c;用于描述二维图形。 1. 命名空间 (Namespace) 命名空间 URI&#xff1a;http://www.w3.org/2000/svg 用途&#xff1a;在 XML 或 XHTML 中区分不同标记语言的…...