LVS的NAT及DR模式

news/2025/2/13 15:57:52/

DR模式:

原理:负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标MAC地址改成后端真实服务器的MAC地址(R-MAC)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。

优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。

缺点:需要负载均衡器与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。

 NAT模式:

原理:负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP)。真实服务器响应完请求后,查看默认路由,把响应后的数据包发送给负载均衡器,负载均衡器在接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。

优点:集群中的服务器可以使用任何支持TCP/IP的操作系统,只要负载均衡器有一个合法的IP地址。

缺点:扩展性有限,当服务器节点增长过多时,由于所有的请求和应答都需要经过负载均衡器,因此负载均衡器将成为整个系统的瓶颈。

 基于open Euler构建LVS-DR群集

##Web服务器操作#安装nginx
[root@192 ~]# yum install nginx -y##为下载的nginx默认网页添加不同的内容以便于区分
[root@192 ~]# echo "web的测试内容,这个主机ip是`hostname -I`" > /usr/share/nginx/html/index.html 
##启动nginx服务
[root@192 ~]# systemctl enable nginx --now
#验证
[root@192 ~]# curl localhost
web的测试内容,这个主机ip是192.168.198.141 
#增加VIP的相关配置
[root@192 ~]# nmcli connection add type dummy ifname dummy1 ipv4.method  manual ipv4.addresses 192.168.198.100/32
连接 "dummy-dummy1" (d14240ca-6c86-4b51-bfcc-745d2661d0ff) 已成功添加。#查看是否成功配置
[root@192 ~]# ip address 
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:fa:5e:23 brd ff:ff:ff:ff:ff:ffinet 192.168.198.141/24 brd 192.168.198.255 scope global dynamic noprefixroute ens160valid_lft 1103sec preferred_lft 1103secinet6 fe80::20c:29ff:fefa:5e23/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 3a:8e:3a:fd:75:33 brd ff:ff:ff:ff:ff:ffinet 192.168.198.100/32 scope global noprefixroute dummy1valid_lft forever preferred_lft foreverinet6 fe80::1091:1d7d:7d79:968e/64 scope link noprefixroute valid_lft forever preferred_lft forever#修改arp内核配置
[root@192 ~]# tail -5 /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@192 ~]# sysctl -p

 

#代理服务器操作
[root@192 ~]# nmcli connection add type dummy ifname dummy1 ipv4.method  
连接 "dummy-dummy1" (bddd0a51-8add-4705-ad87-003e289769f1) 已成功添加。#安装管理工具
[root@192 ~]# yum install ipvsadm -y#添加LVS配置
[root@192 ~]# ipvsadm -At 192.168.198.100:80 -s rr
[root@192 ~]# ipvsadm -at 192.168.198.100:80 -r 192.168.198.141:80 -g
[root@192 ~]# ipvsadm -at 192.168.198.100:80 -r 192.168.198.142:80 -g#查看配置
[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.198.100:80 rr-> 192.168.198.141:80           Route   1      0          0         -> 192.168.198.142:80           Route   1      0          0  

验证:

###客户端[root@localhost ~]# for ((i=1;i<=10;i++)); do curl 192.168.198.100; doneweb的测试内容,这个主机ip是192.168.198.141 
web的测试内容,这个主机ip是192.168.198.142 
web的测试内容,这个主机ip是192.168.198.141 
web的测试内容,这个主机ip是192.168.198.142 
web的测试内容,这个主机ip是192.168.198.141 
web的测试内容,这个主机ip是192.168.198.142 
web的测试内容,这个主机ip是192.168.198.141 
web的测试内容,这个主机ip是192.168.198.142 
web的测试内容,这个主机ip是192.168.198.141 
web的测试内容,这个主机ip是192.168.198.142 


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

相关文章

408-数据结构

数据结构在学什么&#xff1f; 1.用代码把问题信息化 2.用计算机处理信息 ch1 数据&#xff1a;数据是信息的载体&#xff0c;是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。 ch2 //假设线性表…

北京青蓝智慧科技: 2025年ITSS IT服务项目经理的转型与挑战

2025年&#xff0c;随着信息技术的持续快速发展&#xff0c;IT服务管理&#xff08;ITSS&#xff09;在企业运营中的关键作用将进一步凸显。作为一位资深IT行业分析师&#xff0c;我预测2025年的IT服务经理将面临诸多挑战&#xff0c;同时也将迎来新的发展机遇。 人工智能&…

鸿蒙HarmonyOS NEXT开发:横竖屏切换开发实践

文章目录 一、概述二、窗口旋转说明1、配置module.json5的orientation字段2、调用窗口的setPreferredOrientation方法 四、性能优化1、使用自定义组件冻结2、对图片使用autoResize3、排查一些耗时操作 四、常见场景示例1、视频类应用横竖屏开发2、游戏类应用横屏开发 五、其他常…

C++ 相对的字符串,判断却不相对

一、场景 在做项目的时候&#xff0c;有这样一个场景&#xff0c;根据字符串名称&#xff0c;给对应的变量赋值。传递的字符串跟对比的字符串是一样的&#xff0c;判断的时候却不相等&#xff0c;导致变量未正确附上值。 二、解决 经过查找&#xff0c;发现是字符串编码的问题…

碳纤维复合材料制造的六西格玛管理实践:破解高端制造良率困局的实战密码

碳纤维复合材料制造的六西格玛管理实践&#xff1a;破解高端制造良率困局的实战密码 在全球碳中和与高端制造升级的双重驱动下&#xff0c;碳纤维复合材料行业正经历前爆发式增长。航空航天、新能源汽车、风电叶片等领域对碳纤维产品的性能稳定性提出近乎苛刻的要求&#xff0…

Go语言构建微服务:从入门到实战

引言 在云原生时代&#xff0c;微服务架构已成为构建复杂分布式系统的首选方案。Go语言凭借其卓越的并发支持、简洁的语法和高效的运行时&#xff0c;成为微服务开发的利器。本文将深入探讨如何用Go构建健壮的微服务系统&#xff0c;并通过完整案例演示关键实现细节。 一、微…

基于SpringBoot+Vue的求职招聘管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 在数字化和信息化的时代背景下&#xff0c;求职招聘管理系统作为一种高效的线上服务平台&#xff0c;正逐渐改变着传统的招聘方式。随着互联网的普及和技术的不断进步&#xff0c;求职者与企业之间的信息交互变得越来越频繁和复…

Java面试题简答(整理)

文章目录 1、String 和StringBuffer的区别&#xff1f;2、抽象类和接口的区别&#xff1f;3、 运行时异常和一般异常有何异同&#xff1f;4、hashMap和hashTable的区别&#xff1f;5、Connection和Connections的区别&#xff1f;6、什么是servlet的生命周期&#xff1f;7、slee…