LVS负载均衡部署-NAT

文章目录

  • LVS-NAT模式配置
    • 原理
    • 实验环境
    • DR添加网卡
    • 准备两台Real Server
      • 134:
      • 145:
      • 测试:
    • 修改RS网关
    • 配置DR:
      • 开启路由转发
      • 下载软件
      • 配置
        • 查看配置
    • 测试

LVS-NAT模式配置

原理

当客户端访问DR时即访问的外网接口然后由DR将流量在本地转发到内网接口,通过在DR上开启路由转发将流量通过内网接口转发至后端的Web服务器。具体由哪一台服务器相应由算法决定,然后通过DR将流量返回给客户端;即流量的请求与返回需要在DR的内外接口上进行转发两次才能完成请求到页面加载完成。

image-20230808171015844

实验环境

IP角色
192.168.110.135DR内网网关
192.168.110.134RS1内网服务器
192.168.110.137RS2内网服务器
172.25.254.129DR外网接口
172.25.254.130外网客户端

DR添加网卡

这里需要注意添加的网卡需要与之前不同如:之前所有主机是NAT,则需要添加仅主机模式的网卡(用于模拟外网)

hostname -I
NAT:192.168.110.135 仅主机:172.25.254.129(模拟外网)

准备两台Real Server

134:

yum install httpd
echo "Web Test Of `hostname -I` " > /var/www/html/index.html 

145:

#下载
yum install httpd
echo "Web Test Of `hostname -I` " > /var/www/html/index.html 

测试:

curl localhost
Web Test Of 192.168.110.134 
curl localhost
Web Test Of 192.168.110.145

修改RS网关

#修改网关
nmcli connection modify ens160 ipv4.gateway 192.168.110.135
#重启网卡
nmcli connection up ens160 
#查看路由
route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.110.135 0.0.0.0         UG    100    0        0 ens160
192.168.110.0   0.0.0.0         255.255.255.0   U     100    0        0 ens160

此操作两台RS都需要做。

配置DR:

开启路由转发

#查看 
cat /proc/sys/net/ipv4/ip_forward
0
#为0则表示未开启
#临时开启
echo 1 > /proc/sys/net/ipv4/ip_forward
#查看
cat /proc/sys/net/ipv4/ip_forward
1
#第二种临时开启方法
sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1
#永久开启需修改文件
vim /etc/sysctl.conf
net.ipv4.ip_forward=1 #(将改内容写入文件)

下载软件

yum install ipvsadm -y

配置

#添加一个负载交头器并指定调度算法
ipvsadm -A -t 172.25.254.129:80 -s rr
#添加realServer并指定工作模式 -m NAT模式
ipvsadm -a -t 172.25.254.129:80 -r 192.168.110.134:80  -m
ipvsadm -a -t 172.25.254.129:80 -r 192.168.110.145:80  -m

查看配置

ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.25.254.129:80 rr-> 192.168.110.134:80           Masq    1      0          0         -> 192.168.110.145:80           Masq    1      0          0 

测试

miziguo@linux:~$ for ((i=0;i<10;i++))
> do
> curl 172.25.254.129
> done
Web Test Of 192.168.110.145
Web Test Of 192.168.110.134
Web Test Of 192.168.110.145
Web Test Of 192.168.110.134 
Web Test Of 192.168.110.145
Web Test Of 192.168.110.134 
Web Test Of 192.168.110.145
Web Test Of 192.168.110.134
Web Test Of 192.168.110.145
Web Test Of 192.168.110.134

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

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

相关文章

C++:模拟堆

模拟堆 维护一个集合&#xff0c;初始集合为空&#xff0c;支持如下几种操作&#xff1a; 1.“I x”&#xff0c;插入一个数x 2.“PM” &#xff0c;输出当前集合中的最小值 3.“DM”&#xff0c;删除当前集合中的最小值&#xff08;当最小值不唯一时&#xff0c;删除最早插入…

番外13:使用ADS进行容差分析(蒙特卡洛分析、灵敏度分析、良率分析、良率优化),以带通滤波器设计为例

番外13&#xff1a;使用ADS进行容差分析&#xff08;蒙特卡洛分析、灵敏度分析、良率分析、良率优化&#xff09;&#xff0c;以带通滤波器设计为例 资源下载 https://download.csdn.net/download/weixin_44584198/88210327 技术背景 容差分析是当前电子可靠性设计中最先进…

Runloop 的五种mode

1.runloop是一个事件驱动的循环,收到事件就去处理,没有事件就进入睡眠. 2.应用一启动主线程被创建后,主线程对应的runloop也被创建,runloop也保证了程序能够一直运行.之后创建的子线程默认是没有runloop的,只有当调用[NSRunLoop currentRunLoop]去获取的时候才被创建. 3.runloo…

【C#】获取已安装的NETFramework版本集合

代码 /// <summary>/// Windows信息/// </summary>public partial class WindowsInfo{/// <summary>/// 获取已安装的NETFramework版本集合/// </summary>/// <returns></returns>public static List<string> GetInstalledNETFramew…

Docker源码阅读 - goland环境准备

docker 源码分为两部分 cli 和 moby&#xff08;docker&#xff09; tips: docker是从moby拷贝过去的&#xff1b;docker整体是一个C-S架构&#xff0c;cli客户端&#xff0c;docker服务端 docker-ce&#xff1a;https://github.com/docker/docker-ce cli&#xff1a;https://…

linux下离线安装docker

linux下离线安装docker 一、安装docker Docker 官网离线安装文档 https://docs.docker.com/engine/install/binaries/ 整理步骤如下&#xff1a; 官网下载 docker 安装包&#xff0c;地址为 https://download.docker.com/linux/static/stable/&#xff0c;如果是x86就选择x…

【数据结构与算法】十大经典排序算法-选择排序

&#x1f31f;个人博客&#xff1a;www.hellocode.top &#x1f3f0;Java知识导航&#xff1a;Java-Navigate &#x1f525;CSDN&#xff1a;HelloCode. &#x1f31e;知乎&#xff1a;HelloCode &#x1f334;掘金&#xff1a;HelloCode ⚡如有问题&#xff0c;欢迎指正&#…

C语言属刷题训练【第八天】

文章目录 &#x1fa97;1、如下程序的运行结果是&#xff08; &#xff09;&#x1f4bb;2、若有定义&#xff1a; int a[2][3]; &#xff0c;以下选项中对 a 数组元素正确引用的是&#xff08; &#xff09;&#x1f9ff;3、在下面的字符数组定义中&#xff0c;哪一个有语法错…

美团软件测试工程师高频面试题和答案

前言 8月底了&#xff0c;马上到了大家的找工作的高峰期了&#xff01;为了帮助大家更好的备战面试和跳槽&#xff0c;可以在众多求职者中脱颖而出&#xff0c;我帮大家准备了丰富的企业真实面试题&#xff0c;大家赶紧收藏吧&#xff01; 1、说下你最近做的项目&#xff0c;你…

DatawhaleAI夏令营第三期机器学习用户新增预测挑战赛baseline新手教程

本教程会带领大家项目制学习&#xff0c;由浅入深&#xff0c;逐渐进阶。从竞赛通用流程与跑通最简的Baseline&#xff0c;到深入各个竞赛环节&#xff0c;精读Baseline与进阶实践技巧的学习。 千里之行&#xff0c;始于足下&#xff0c;从这里&#xff0c;开启你的 AI 学习之旅…

python——案例17:判断某年是否是闰年

案例17&#xff1a;判断某年是否是闰年 判断依据&#xff1a;闰年就是能被400整除&#xff0c;或者能被4整除的年份numint(input(输入年份&#xff1a;))if num%1000: if num%4000: #整百年份的判断print("%s年是闰年"%num) #…

java基础面试

Hashmap和Treemap的区别 1、HashMap无序&#xff0c;TreeMap有序。都不是线程安全的。 2、HashMap覆盖了equals&#xff08;&#xff09;方法和hashcode&#xff08;&#xff09;方法&#xff0c;这使得HashMap中两个相等的映射返回相同的哈希值&#xff1b;TreeMap则是实现了…

rust学习-json的序列化和反序列化

由于 serde 库默认使用 JSON 格式进行序列化和反序列化 因此程序将使用 JSON 格式对数据进行序列化和反序列化 社区为 Serde 实现的部分数据格式列表: JSON:广泛使用的 JavaScript 对象符号,用于许多 HTTP APIPostcard:no_std 和嵌入式系统友好的紧凑二进制格式。CBOR:用…

容器虚拟化基础之NameSpace

“只想从这无边的寂寞中逃出来。” 一、什么是虚拟化、容器化&#xff1f; 物理机:实际的服务器或者计算机。 这是相对于虚拟机而言的对实体计算机的称呼&#xff0c;物理机提供虚拟机以硬件环境&#xff0c;有时候也称为"宿主"或"寄主"。 虚拟机: 指通过软…

nlohmann json:通过for begin/end 遍历object和array

nlohmann json:通过for遍历object和array_风静如云的博客-CSDN博客 介绍了通过for基于元素迭代的方式进行遍历。 还可以通过begin/end迭代器对object/array进行遍历: #include <iostream> #include <nlohmann/json.hpp> using namespace std; using json = nlo…

JDK、JRE、JVM:揭秘Java的关键三者关系

文章目录 JDK&#xff1a;Java开发工具包JRE&#xff1a;Java运行环境JVM&#xff1a;Java虚拟机关系概述 案例示例&#xff1a;Hello World结语 在Java世界中&#xff0c;你可能经常听到JDK、JRE和JVM这几个概念&#xff0c;它们分别代表了Java开发工具包、Java运行环境和Java…

Java类型转换

总是忘&#xff0c;总是记混&#xff0c;气气气&#xff01; 基本类型 4整型、2浮点型、1布尔、1字符 关键字大小取值范围包装类型byte8-27~27-1Byteshort16-215~215-1Shortint32-231~231-1Integerlong64-263~263-1Longfloat323.4e-38~3.4e38Floatdouble641.7e-38~1.7e38Dou…

3.5 Spring MVC参数传递

Spring MVC的Controller接收请求参数的方式有多种&#xff0c;本节主要介绍Spring MVC下的HttpServletRequest、基本数据类型、Java Bean、数组、List、Map、JSON参数传递方式&#xff0c;同时解决POST请求中文乱码问题。 1. HttpServletRequest参数传递 Controller RequestM…

Easy Rules规则引擎(1-基础篇)

目录 一、序言二、Easy Rules介绍三、定义规则(Rules)1、规则介绍2、编程式规则定义3、声明式规则定义 四、定义事实(Facts)五、定义规则引擎(Rules Engine)1、规则引擎介绍2、InferenceRulesEngine规则引擎示例(1) 定义触发条件(2) 定义规则触发后的执行行为(3) 测试用例 一、…

【CSH 入门基础 5 -- csh 文件监控脚本实现】

文章目录 背景CSHLL 代码实现cshell 中 unset 的介绍bash 中监控文件的方法 背景 由于开发代码是在外网编译&#xff0c;而镜像的烧写是在内网中的EDA工具中进行的&#xff0c;所以就需要先将代码在外网编译好后&#xff0c;再通过FTP工具将镜像传输到内网中&#xff0c;然后在…