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

【LVS实战】02 搭建一个LVS-NAT模式实验

一、网络结构

用虚拟机搭建如下的几台机器,并配置如下的ip
在这里插入图片描述

关于虚拟机网卡和网络的配置,可以参考 iptables章节,05节:网络转发实验

主机A模拟外网的机器
B为负载均衡的机器
C和D为 RealServer

二、C和D主机的网关设置

C和D机器要设置B为网关,这样C和D的数据,才能通过B,返回到C
在这里插入图片描述
在这里插入图片描述

三、C和D上安装上nginx

本实验为C和D安装好的docker应用:nginx。安装过程,略。启动好后,占用暴露为80端口。
修改一下nginx的首页,输出其IP,如:

cd /usr/share/nginx/html/
cat > index.html << EOF
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>10.1.0.9 </h1>
</body>
</html>
EOF

四、ipvsadm命令设置LVS

如果我们想要配置一个LVS-NAT集群,可以在角色为调度器的主机上执行如下ipvsadm命令。

ipvsadm -A -t VIP:port -s rr
ipvsadm -a -t VIP:port -r RIP1 -m
ipvsadm -a -t VIP:port -r RIP2 -m
ipvsadm -a -t VIP:port -r RIPN -m

在机器B上执行下面的命令
-m表示nat模式

[root@localhost ~]# ipvsadm -A -t 192.168.56.106:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.56.106:80 -r 10.1.0.9 -m
[root@localhost ~]# ipvsadm -a -t 192.168.56.106:80 -r 10.1.0.10 -m[root@localhost ~]# ipvsadm -Ln
[root@localhost ~]# 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.56.106:80 rr-> 10.1.0.9:80                  Masq    1      0          0         -> 10.1.0.10:80                 Masq    1      0          0 

注意:上面的设置会在重启系统后失效

五、负载均衡请求效果

在主机A上执行curl命令,可以看到,是轮循访问两台主机

[root@localhost ~]# curl -X GET http://192.168.56.106
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>10.1.0.9 </h1>
</body>
</html>
[root@localhost ~]# curl -X GET http://192.168.56.106
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>10.1.0.10 </h1>
</body>
</html>

六、常用命令

  1. ipvsadm管理工具介绍(操作均基于centos6操作系统)

6.1 安装

ipvsadm可以直接使用yum安装

yum -y install ipvsadm

6.2 基本命令格式

虚拟服务器:

ipvsadm 选项 虚拟服务器地址 -s 算法

真实服务器:

ipvsadm 选项 虚拟服务器地址 -r 真实服务器地址 -w 权重值工作模式

6.3 常用参数

-A 添加一个虚拟服务器,可跟ip或者ip:80(端口)
-E  编辑一个虚拟服务器
-D 删除一个虚拟服务器
-C 清空虚拟服务器
-R 还原规则-s保存规则
-a  添加一个真实服务器(RS)
-e  编辑一个真实服务器
-d  删除一个真实服务器
-t   使用tcp
-u   使用udp
-L  list 查看虚拟服务器列表
-s   指定算法
-r   指定真实服务器RIP
-g   指定工作模式为DR模式
-i   指定工作模式为tunl模式
-m  指定工作模式为NAT模式
-w  指定RS权重不能超过100
-c   查看连接状态可与L使用
-n   以数字的形式显示输出结果

6.4 实例

6.4.1 添加虚拟服务器

添加一个虚拟服务器IP地址为192.168.153.188,tcp服务,端口为80,算法为rr

[root@localhost ~]# ipvsadm -A -t 192.168.153.188:80 -s rr

6.4.2 添加真实服务器

添加一个真实服务器地址为192.168.153.163,端口为80,权重为1,工作模式为nat模式

[root@localhost ~]# ipvsadm -a -t 192.168.153.188:80 -r 192.168.153.163:80  -w 1 -m

添加一个真实服务器地址为192.168.153.167,端口为80,权重为1,工作模式为nat模式

[root@localhost ~]# ipvsadm -a -t 192.168.153.188:80 -r 192.168.153.167:80  -w 1 -m

6.4.3 使用 ipvsadm -Ln 命令查看添加结果

[root@localhost ~]# 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.153.188:80 rr-> 192.168.153.163:80           Local   1      0          0         -> 192.168.153.167:80           Masq    1      0          0        

6.4.4 保存配置结果(不然重启之后配置会丢失)

[root@localhost ~]# ipvsadm-save > /etc/sysconfig/ipvsadm

6.4.5 查看保存配置的文件

[root@localhost ~]# cat /etc/sysconfig/ipvsadm
-A -t 192.168.153.188:80 -s rr
-a -t 192.168.153.188:80 -r 192.168.153.163:80 -g -w 1
-a -t 192.168.153.188:80 -r 192.168.153.167:80 -m -w 1

6.4.6 删除真实服务器

删除上面添加的163真实服务器

[root@localhost ~]# ipvsadm -d -t 192.168.153.188:80 -r 192.168.153.163:80

6.4.7 使用 ipvsadm -Ln 命令查看删除结果

163真实服务器已经被删除

[root@localhost ~]# 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.153.188:80 rr-> 192.168.153.167:80           Masq    1      0          0  

6.4.8 删除虚拟服务器

[root@localhost ~]# ipvsadm -D -t 192.168.153.188:80

6.4.9 清空虚拟服务器

[root@localhost ~]# ipvsadm -C

6.4.10 重新读取保存的配置文件并查看

所有的配置已经恢复(上面的删除操作并没有保存)

[root@localhost ~]# service ipvsadm restart
ipvsadm: Clearing the current IPVS table:                  [  OK  ]
ipvsadm: Unloading modules:                                [  OK  ]
ipvsadm: Clearing the current IPVS table:                  [  OK  ]
ipvsadm: Applying IPVS configuration:                      [  OK  ][root@localhost ~]# 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.153.188:80 rr-> 192.168.153.163:80           Local   1      0          0         -> 192.168.153.167:80           Masq    1      0          0   

相关文章:

【LVS实战】02 搭建一个LVS-NAT模式实验

一、网络结构 用虚拟机搭建如下的几台机器&#xff0c;并配置如下的ip 关于虚拟机网卡和网络的配置&#xff0c;可以参考 iptables章节&#xff0c;05节&#xff1a;网络转发实验 主机A模拟外网的机器 B为负载均衡的机器 C和D为 RealServer 二、C和D主机的网关设置 C和D机…...

Word 将文档中的【第几条】批量加粗

目录预览 一、问题描述二、解决方案三、参考链接 一、问题描述 我要制作一份文档&#xff0c;关于法律条文的&#xff0c;然后需要将条文中的【第几条】字样进行加粗表示&#xff0c;格式刷是不可能格式刷的&#xff0c;这明显不适合此种批量的操作&#xff0c;浪费事件。所以…...

苹果AirTag固件更新

苹果公司针对其热销的物品追踪器 AirTag 于今天发布了新的固件更新&#xff0c;最新版本号为 2A61&#xff0c;但是这次更新苹果并未提供发布说明&#xff0c;所以目前还不知道这次更新有什么新内容。 关于这次更新&#xff0c;用户无法自己手动更新 AirTag 固件&#xff0c;因…...

04.Oracle的体系架构

Oracle的体系架构 一、主要组件 一、主要组件 下面是一张网图&#xff0c;大家可以了解一下oracle的体系架构 Oracle数据库的体系架构可以分为以下几个主要组件&#xff1a;实例&#xff08;Instance&#xff09;、数据库&#xff08;Database&#xff09;、表空间&#xff…...

01【保姆级】-GO语言特点和安装使用和hello

01-GO语言基本概念和安装使用 一、概念1.1 Go语言的诞生1.2 GO语言的特点&#xff1a; 二、安装go2.1 安装2.2 安装环境变量 三、下载&安装goland3.1 官网下载3.2 下载后&#xff0c;进行安装&#xff1a; 四、编写Hello&#xff08;详解&#xff09; 如何学习&#xff1a;…...

EVM6678L 开发教程: IBL-TFTP 引导 elf 文件

目录 EVM6678L 开发教程: IBL-TFTP 引导 elf 文件安装 Tftpd64测试工程测试说明 EVM6678L 开发教程: IBL-TFTP 引导 elf 文件 参考: "C:\ti\mcsdk_2_01_02_06\tools\boot_loader\examples\i2c\tftp\docs\README.txt" 此教程介绍如何在 EVM6678L 开发板上实现 IBL-…...

接口测试 —— Jmeter 之测试片段的应用

一、什么是测试片段&#xff1f; 控制器上一种特殊的线程组&#xff0c;它与线程组处于一个层级。与线程组不同的就是&#xff1a;测试片段不会执行。它是一个模块控制器或者被控制器应用时才会被执行。通常与Include Controller或模块控制器一起使用。 1.1 那它有啥作用&…...

接入文心一言实战(一):API申请与测试

大家好&#xff0c;我是豆小匠。 这期来介绍申请百度文心一言API的步骤。 第一步 注册百度智能云账号 网址&#xff1a;https://login.bce.baidu.com/new-reg?tplbceplat&fromportal 第二步&#xff1a;申请预置模型 网址&#xff1a;https://console.bce.baidu.com/qi…...

518抽奖软件,安全稳定,不怕手抖误按键

518抽奖软件简介 518抽奖软件&#xff0c;518我要发&#xff0c;超好用的年会抽奖软件&#xff0c;简约设计风格。 包含文字号码抽奖、照片抽奖两种模式&#xff0c;支持姓名抽奖、号码抽奖、数字抽奖、照片抽奖。(www.518cj.net) 防误按功能 入口&#xff1a; 主界面上点右…...

【STM32G431RBTx】备战蓝桥杯嵌入式汇总

文章目录 前言1.省赛模块总结 前言 蓝桥杯嵌入式要准备的模块还是有些数目的&#xff0c;做个目录方便查询 1.省赛模块 【STM32G431RBTx】备战蓝桥杯嵌入式→基本模块→LED 【STM32G431RBTx】备战蓝桥杯嵌入式→基本模块→LCD 【STM32G431RBTx】备战蓝桥杯嵌入式→基本模块→…...

【抽奖系统】

文章目录 1. DDD四层架构2. 项目搭建 1. DDD四层架构 技术&#xff1a;SpringBoot、Mybatis、Dubbo、MQ、Redis、Mysql、ELK、分库分表、Otter 架构&#xff1a;DDD 领域驱动设计、充血模型、设计模式 应用层{application} 应用服务位于应用层。用来表述应用和用户行为&#…...

如何在外SSH远程连接Ubuntu系统【无公网IP】

如何在外SSH远程连接Ubuntu系统【无公网IP】 文章目录 如何在外SSH远程连接Ubuntu系统【无公网IP】前言1. 在Ubuntu系统下安装cpolar软件2. 完成安装后打开cpolar客户端web—UI界面3. 创建隧道取得连接Ubuntu系统公网地址4. 打开Windows的命令界面并输入命令 前言 随着科技和经…...

在防御CC攻击上,高防CDN起着什么作用?

在当今数字化世界中&#xff0c;网络安全攻击已经成为普遍而严峻的威胁。特别是分布式拒绝服务攻击&#xff08;DDoS&#xff09;和CC攻击&#xff0c;它们有潜力使网络服务陷入完全瘫痪状态。为了应对这些威胁&#xff0c;采用高级防御CDN&#xff08;内容传递网络&#xff09…...

被这7款在线涂鸦画板惊艳到,手残也能画出涂鸦大片!

作为一名涂鸦爱好者或者手帐达人&#xff0c;你是否在寻找好用的在线涂鸦画板软件呢&#xff1f;涂鸦画板软件释放了创造性的无限可能&#xff0c;让你能够将想法转化为令人惊叹的视觉效果&#xff0c;并轻松地与客户、同行和全球观众分享你的作品。 在这篇文章中&#xff0c;…...

pt权重转onnx记录

方法: 1.一般YOLO 会自带一个权重pt转onnx模型的代码 export.py 2.打开export.py &#xff0c;我们运行该文件可以通过命令行运行&#xff0c;对照修改argument参数即可 3.运行命令行如下&#xff1a; python ./models/export.py --weights ./models/best.pt weights&#x…...

瑞数专题五

今日文案&#xff1a;焦虑&#xff0c;想象力过度发酵的产物。 网址&#xff1a;https://www.iyiou.com/ 专题五主要是分享瑞数6代。6代很少见&#xff0c;所以找理想哥要的&#xff0c;感谢感谢。 关于瑞数作者之前已经分享过4篇文章&#xff0c;全都收录在瑞数专栏中了&am…...

【Androidstudio学习笔记】设计引导页功能

设计引导页功能 主目录功能描述大致思路准备工作代码ActivityAdapter滑动动画 总结 主目录 功能描述 此功能用于新用户第一次进入应用时在部分较为复杂的功能使用前展示的操作流程&#xff0c;当然也可以在后续的其他功能键重新查看引导流程 展示指定数量的引导页&#xff0…...

【python】中位数(暴力+最大最小堆)

题目&#xff1a; """ 对给定长度为N的非负整数序列A&#xff0c;计算前奇数项的中位数。 输入&#xff1a;首行表示序列长度N。次行为N个正整数A1至AN。 输出&#xff1a;输出共(N1)/2行&#xff08;向下取整&#xff09;&#xff0c;第i行表示到第A1...2i-1项…...

Avro 如何生成java Bean

作为一种很犀利的序列化的格式&#xff0c;avro在大数据量传输的时候很有优势。记录下。 1&#xff1a; .avsc 文件 {"namespace": "com.avro.bean","type": "record","name": "UserBehavior3","fields&qu…...

EG4003-一颗为微波、红外信号放大及处理输出的数模混合芯片

产品描述&#xff1a; EG4003是一款特意为微波、红外信号放大及处理输出的数模混合芯片&#xff0c;内部集成了运算放大器、双门限电压比较器、参考电压源、延时时间定时器和封锁时间定时器及状态控制器等&#xff0c;专用于防盗报警系统、人体门控制装置、照明控制开关等场合。…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用&#xff1a; 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests&#xff1a;发送 …...

人工智能 - 在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型

在Dify、Coze、n8n、FastGPT和RAGFlow之间做出技术选型。这些平台各有侧重&#xff0c;适用场景差异显著。下面我将从核心功能定位、典型应用场景、真实体验痛点、选型决策关键点进行拆解&#xff0c;并提供具体场景下的推荐方案。 一、核心功能定位速览 平台核心定位技术栈亮…...

向量几何的二元性:叉乘模长与内积投影的深层联系

在数学与物理的空间世界中&#xff0c;向量运算构成了理解几何结构的基石。叉乘&#xff08;外积&#xff09;与点积&#xff08;内积&#xff09;作为向量代数的两大支柱&#xff0c;表面上呈现出截然不同的几何意义与代数形式&#xff0c;却在深层次上揭示了向量间相互作用的…...

41道Django高频题整理(附答案背诵版)

解释一下 Django 和 Tornado 的关系&#xff1f; Django和Tornado都是Python的web框架&#xff0c;但它们的设计哲学和应用场景有所不同。 Django是一个高级的Python Web框架&#xff0c;鼓励快速开发和干净、实用的设计。它遵循MVC设计&#xff0c;并强调代码复用。Django有…...