你一定想看的LVS详细介绍及常见模式(NAT,DR,防火墙标记)实验详解

news2024/11/17 9:46:41

目录

一、什么是LVS

二、LVS的核心思想

三、 LVS的优势

四、LVS的调度算法

 4.1. LVS的调度算法类型

4.2. LVS静态调度算法

4.3. LVS动态调度算法

 4.4.在4.15版本内核以后新增调度算法

 五、LVS软件相关信息

六、ipvsadm命令

七、 LVS的NAT模式实验详解

7.1实验环境

7.2实验要求

7.3实验步骤

1.环境搭建

2. Lvs中打开内核路由功能

3.webserver1和webserver2配置

4.webserver1和webserver2下载httpd模块并写页面内容

5. LVS中测试,保证可以正常访问后端两台真实服务器

 6. LVS中安装软件

7. LVS添加服务和算法规则(-s rr表示调度算法是:轮询算法)

8.客户机访问测试

7.4 nat模式数据逻辑

八、LVS的DR模式实验详解

8.1实验环境

8.2实验要求

8.3实验步骤

1.环境搭建

2.路由器开启内核路由功能

3.配置rs主机中使vip不对外响应(webserver1和webserver2)

4.在LVS主机中和rs主机中添加VIP

5.客户机测试

6.Wireshark抓包查看MAC地址变化

8.4 DR模式数据逻辑

九、LVS-火墙mark标记解决调度问题

9.1实验环境:

9.2实验要求:

9.3实验步骤

1.RS安装mod_ssl模块,让RS支持https

2.查看端口,确保端口都存在

3.LVS主机中为端口做标记

 4.客户端访问测试

十、LVS的TUN模式(不常用了解一下)

10.1转发方式

10.2 TUN模式数据传输过程

10.3 TUN详解

十一、LVS的fullnet模式(了解)

11.1 fullnet模式简介

11.2 fullnet模式详解

十二、LVS各种模式之间的对比


一、什么是LVS

LVS是Linux Virtual Server的简写,‌也就是Linux虚拟服务器,‌是一个虚拟的服务器集群系统。‌这个项目在1998年5月由章文嵩博士成立,‌是中国国内最早出现的自由软件项目之一。‌LVS实际上相当于基于IP地址的虚拟化应用,‌为基于IP地址和内容请求分发的负载均衡提出了高效的解决方法。‌现在,‌LVS已经是Linux内核标准的一部分。‌使用LVS可以达到的技术目标是:‌通过LVS达到的负载均衡技术和Linux操作系统实现一个高性能高可用的Linux服务器集群,‌具有良好的可靠性、‌可扩展性和可操作性,‌从而以低廉的成本实现最优的性能。‌LVS是一个实现负载均衡集群的开源软件项目,‌LVS架构从逻辑上可分为调度层、‌Server集群层和共享存储层。

LVS基于4层的负载均衡技术,‌它是Linux内核的一个模块。‌LVS提供了四种模式,‌包括lvs-nat、‌lvs-fullnat、‌lvs-dr和lvs-tun。‌这些模式各有特点,‌例如,‌lvs-nat与lvs-fullnat模式下,‌请求和响应报文都经由Director;‌而lvs-dr与lvs-tun模式下,‌请求报文要经由Director,‌但响应报文由RS直接发往Client。

总的来说,‌LVS是一种高效的负载均衡解决方案,‌通过调度层将请求分发到Server集群层中的多个服务器上,‌以提高系统的可用性和性能。‌它是通过修改Linux内核来实现的,‌具有成本低、‌性能高、‌可靠性好等优点。

二、LVS的核心思想

LVS的核心思想是实现负载均衡和容错性。‌

LVS(‌Linux Virtual Server)‌是一种高性能的服务器负载均衡解决方案,‌它通过在Linux内核中集成ip_vs模块来实现四层负载均衡。‌LVS的核心思想主要体现在以下几个方面:‌

  1.  

    负载均衡:‌LVS通过调度器(‌Director Server)‌将客户端的请求分发到后端真实服务器(‌Real Server)‌,‌从而实现负载均衡。‌这种分发基于预设的算法进行,‌确保请求被均匀分配到各个真实服务器上,‌以提高服务器的整体处理能力和资源利用率。‌

  2.  

    容错性:‌LVS支持动态添加或删除真实服务器,‌允许在不影响服务的情况下进行扩展或缩减服务能力。‌这种动态调整的能力使得系统具有很好的容错性,‌能够应对真实服务器的宕机、‌升级或弹性伸缩等变化。‌

  3.  

    透明性:‌对于客户端而言,‌LVS提供了一个虚拟的IP地址(‌VIP)‌,‌用户通过访问这个虚拟IP地址来访问服务,‌而不需要知道背后真实的服务器结构和数量。‌这种透明性使得LVS能够保护后端服务器的隐私和安全性。‌

  4.  

    高性能:‌LVS利用IP负载均衡技术,‌通过调度器直接处理网络层的请求,‌避免了应用层代理的额外开销,‌从而提高了数据传输的效率和性能。‌

综上所述,‌LVS的核心思想是通过负载均衡和容错性来提高服务器的整体性能和可用性,‌同时保持对用户透明的访问方式,‌保护后端服务器的安全和隐私。

三、 LVS的优势

LVS的优势主要包括高性能、‌稳定性、‌广泛的协议支持、‌低成本和配置简单。‌

  • 高性能:‌LVS运行在Linux内核空间,‌具有较低的延迟和较高的吞吐量,‌能够提供高性能的网络服务。‌
  • 稳定性:‌作为内核模块,‌LVS可以提供较高的稳定性,‌具有强大的抗负载能力,‌并且自身有完整的双机热备方案,‌如LVS+Keepalived,‌确保了服务的稳定运行。‌
  • 广泛的协议支持:‌LVS几乎可以对所有应用做负载均衡,‌包括http、‌数据库、‌在线聊天室等,‌工作在4层网络协议上,‌提供了广泛的协议支持。‌
  • 低成本:‌LVS只需一台服务器即可免费部署使用,‌性价比极高,‌相对于硬件负载均衡器的成本要低得多。‌
  • 配置简单:‌LVS的配置非常简单,‌仅需几行命令即可完成配置,‌也可写成脚本进行管理,‌大大减少了人为出错的几率。‌

此外,‌LVS还支持多种负载均衡算法,‌包括轮询、‌加权轮询、‌最小连接数等,‌以及支持TCP、‌UDP等多种传输层协议,‌使其能够根据业务场景灵活调配使用。‌这些优势使得LVS在高性能网络服务中成为一个受欢迎的选择。‌

四、LVS的调度算法

 4.1. LVS的调度算法类型

ipvs scheduler:根据其调度时是否考虑各RS当前的负载状态被分为两种:静态方法动态方法

静态方法:仅根据算法本身进行调度,不考虑RS的负载情况

动态方法:主要根据每RS当前的负载状态及调度算法进行调度Overhead=value较小的RS将被调度

4.2. LVS静态调度算法

1、RR:roundrobin 轮询 RS分别被调度,当RS配置有差别时不推荐

2、WRR:Weighted RR,加权轮询根据RS的配置进行加权调度,性能差的RS被调度的次数少

3、SH:Source Hashing,实现session sticky,源IP地址hash;将来自于同一个IP地址的请求始终发往 第一次挑中的RS,从而实现会话绑定

4、DH:Destination Hashing;目标地址哈希,第一次轮询调度至RS,后续将发往同一个目标地址的请 求始终转发至第一次挑中的RS,典型使用场景是正向代理缓存场景中的负载均衡,如:宽带运营商

4.3. LVS动态调度算法

原理:

主要根据RS当前的负载状态及调度算法进行调度Overhead=value较小的RS会被调度

1、LC:least connections(最少链接发)

适用于长连接应用Overhead(负载值)=activeconns(活动链接数) x 256+inactiveconns(非活 动链接数)

2、WLC:Weighted LC(权重最少链接) 默认调度方法Overhead=(activeconns x 256+inactiveconns)/weight

3、SED:Shortest Expection Delay,

初始连接高权重优先Overhead=(activeconns+1+inactiveconns) x 256/weight 但是,当node1的权重为1,node2的权重为10,经过运算前几次的调度都会被node2承接

4、NQ:Never Queue,第一轮均匀分配,后续SED 5、LBLC:Locality-Based LC,动态的DH算法,使用场景:根据负载状态实现正向代理

6、LBLCR:LBLC with Replication,带复制功能的LBLC,解决LBLC负载不均衡问题,从负载重的复制 到负载轻的RS

 4.4.在4.15版本内核以后新增调度算法

1.FO(Weighted Fai Over)调度算法:常用作灰度发布 在此FO算法中,遍历虚拟服务所关联的真实服务器链表,找到还未过载(未设置IP_VS_DEST_F OVERLOAD标志)的且权重最高的真实服务器,进行调度 当服务器承接大量链接,我们可以对此服务器进行过载标记(IP_VS_DEST_F OVERLOAD),那么vs调度 器就不会把链接调度到有过载标记的主机中。

  2.OVF(Overflow-connection)调度算法基于真实服务器的活动连接数量和权重值实现。将新连接调度到权重值最高的真实服务器,直到其活动 连接数量超过权重值,之后调度到下一个权重值最高的真实服务器,在此OVF算法中,遍历虚拟服务相关 联的真实服务器链表,找到权重值最高的可用真实服务器。一个可用的真实服务器需要同时满足以下条 件:

未过载(未设置IP_VS_DEST_F OVERLOAD标志)

真实服务器当前的活动连接数量小于其权重值 其权重值不为零

 五、LVS软件相关信息

  • 程序包:ipvsadm Unit File: ipvsadm.service
  • 主程序:/usr/sbin/ipvsadm
  • 规则保存工具:/usr/sbin/ipvsadm-save
  • 规则重载工具:/usr/sbin/ipvsadm-restore
  • 配置文件:/etc/sysconfig/ipvsadm-config ipvs
  • 调度规则文件:/etc/sysconfig/ipvsadm

六、ipvsadm命令

核心功能:

  • 集群服务管理:增、删、改
  • 集群服务的RS管理:增、删、改
  • 查看

部分命令展示:

命令描述示例
ipvsadm -A添加一个新的虚拟服务ipvsadm -A -t 192.168.1.100:80 -s rr
ipvsadm -E修改已存在的虚拟服务ipvsadm -E -t 192.168.1.100:80 -s wrr
ipvsadm -D删除虚拟服务ipvsadm -D -t 192.168.1.100:80
ipvsadm -a添加一个真实服务器到虚拟服务中ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.200 -m
ipvsadm -e修改真实服务器的参数ipvsadm -e -t 192.168.1.100:80 -r 192.168.1.200 -g -w 10
ipvsadm -d从虚拟服务中删除真实服务器ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.200
ipvsadm -L查看 IPVS 表ipvsadm -L -n
ipvsadm -C清空 IPVS 表ipvsadm -C
ipvsadm -S保存 IPVS 表到指定文件ipvsadm -S > /etc/sysconfig/ipvsadm
ipvsadm -R从指定文件恢复 IPVS 表ipvsadm -R < /etc/sysconfig/ipvsadm

如果想要了解更多的ipvsadm命令可以访问下面链接学习:
https://www.cnblogs.com/rushiyi/p/12425905.htmlicon-default.png?t=N7T8https://www.cnblogs.com/rushiyi/p/12425905.html

七、 LVS的NAT模式实验详解

edea30092b824c00a0699ff6985ea7ea.png

7.1实验环境

前提:因为ipvs的作用点是在PREROUTING和INPUT链之间,所以如果在prerouting中设定规则会干扰ipvs的工 作。所以在做lvs时要把iptables的火墙策略全清理掉。

1.使用母盘主机克隆四台红帽9机子。

2.两台作为真实服务器,一台作为LVS负载调度器,一台作为客户端。

3.LVS负载调度器两张网卡,一张NAT,一张仅主机;NAT作为VIP连接客户端,仅主机作为DIP连接两台服务器,作为两台服务器的网关;NAT网卡在:172.25.254.0/24网段,IP地址是172.25.254.100/24;仅主机在192.168.0.0/24网段,IP地址是192.168.0.100。

4.两台真实服务器一张网卡,模式为仅主机,网段是192.168.0.0/24;webserver1的IP地址是192.168.0.10/24;webserver2的IP地址是192.168.0.20/24。

5.客户端一张网卡,模式为NAT模式,网段是172.25.254.0/24,IP地址是:172.25.254.200。

7.2实验要求

要求从客户端访问LVS能做到负载均衡

第一次如果是webserver1响应的,第二次就是webserver2响应。

7.3实验步骤

1.环境搭建

LVS主机两张网卡,一张NAT模式,一张仅主机模式。NAT作为VIP连接客户端,仅主机作为DIP连接两台服务器,作为两台服务器的网关。

68c1ec33342f4d2996beeaae50c09c0d.png

NAT网卡在:172.25.254.0/24网段;仅主机在192.168.0.0/24网段,对应的IP配置如下图:

NAT:

883881f7e5b44c7ab12d470989752bfb.png

仅主机:

41a1942444b04b529aaa902a6dc960e5.png

2. Lvs中打开内核路由功能

#查看打开内核路由功能的命令
[root@LVS ~]# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 0    # 0表示关闭,1表示打开
net.ipv4.ip_forward_update_priority = 1
net.ipv4.ip_forward_use_pmtu = 0

#修改配置文件
[root@LVS ~]# vim /etc/sysctl.conf 
[root@LVS ~]# cat /etc/sysctl.conf 
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.ip_forward = 1
[root@LVS ~]# sysctl -p
net.ipv4.ip_forward = 1

3.webserver1webserver2配置

webserver1:

#配置IP地址和网关,ipv4.method manual:表示为手动模式 connection.autoconnect yes:表示为自动连接
[root@webserver1 ~]# nmcli connection modify ens160 ipv4.addresses 192.168.0.10/24 ipv4.gateway 192.168.0.100 ipv4.method manual connection.autoconnect yes

#重启网卡
[root@webserver1 ~]#nmcli connection up ens160

webserver2:

#配置IP地址和网关,ipv4.method manual:表示为手动模式 connection.autoconnect yes:表示为自动连接
[root@webserver2 ~]# nmcli connection modify ens160 ipv4.addresses 192.168.0.20/24 ipv4.gateway 192.168.0.100 ipv4.method manual connection.autoconnect yes

#重启网卡
[root@webserver2 ~]#nmcli connection up ens160

4.webserver1webserver2下载httpd模块并写页面内容

webserver1:

[root@webserver1 ~]# yum install httpd -y
[root@webserver1 ~]# echo webserver1 192.168.0.10 > /var/www/html/index.html 
[root@webserver1 ~]# cat /var/www/html/index.html 
webserver1 192.168.0.10

webserver2:

[root@webserver2 ~]# yum install httpd -y
[root@webserver2 ~]# echo webserver1 192.168.0.20 > /var/www/html/index.html 
[root@webserver2 ~]# cat /var/www/html/index.html 
webserver1 192.168.0.20

注意:

在企业中两个服务器的页面应该是一致的,但是这里是实验环境,我们设不一致,方面我们观察实验结果。

5. LVS中测试,保证可以正常访问后端两台真实服务器

[root@LVS ~]# curl 192.168.0.10
webserver1 192.168.0.10
[root@LVS ~]# curl 192.168.0.20
webserver2 192.168.0.20

 6. LVS中安装软件

62e6b5abc0ef42cd80507c2899850e41.png

7. LVS添加服务和算法规则(-s rr表示调度算法是:轮询算法)

e2685f0b74f445c289fadeb2b3116a68.png

8.客户机访问测试

[root@localhost ~]# curl 172.25.254.100
webserver1 192.168.0.10
[root@localhost ~]# curl 172.25.254.100
webserver2 192.168.0.20
[root@localhost ~]# curl 172.25.254.100
webserver1 192.168.0.10
[root@localhost ~]# curl 172.25.254.100
webserver2 192.168.0.20

7.4 nat模式数据逻辑

1e962fb8f2a34d3bb98e8bcb6e884887.png

1.客户端发送访问请求,请求数据包中含有请求来源(cip),访问目标地址(VIP)访问目标端口 (9000port)

2.VS服务器接收到访问请求做DNAT把请求数据包中的目的地由VIP换成RS的RIP和相应端口

3.RS1相应请求,发送响应数据包,包中的相应保温为数据来源(RIP1)响应目标(CIP)相应端口 (9000port)

4.VS服务器接收到响应数据包,改变包中的数据来源(RIP1-->VIP),响应目标端口(9000-->80)

5.VS服务器把修改过报文的响应数据包回传给客户端

八、LVS的DR模式实验详解

f0b9ba8091764a2f8416371a29dd7f3d.png

8.1实验环境

1.母盘克隆五台红帽9机子

2.两台作为真实服务器,一台作为LVS负载调度器,一台作为路由器,一台作为客户端

3.webserver1和webserver2环境配置和上个实验一样。

4.LVS只需一张仅主机的网卡,IP地址为:192..168.0.50;禁用上个实验NAT那张网卡。

5.路由器两张网卡,一张NAT模式,IP地址为:172.25.254.100,作为客户端的网关;一张仅主机连接内网,IP地址为:192.168.0.100,作为内网的网关。

6.客户端IP地址为:172.25.254.200,网关为:172.25.254.100.

8.2实验要求

要求从客户端访问LVS能做到负载均衡,第一次如果是webserver1响应的,第二次就是webserver2响应。且服务器返回数据的时候是直接通过VIP返回给客户端,不经过交换机这些。

8.3实验步骤

1.环境搭建

IP配置与上一个实验操作相同,这里不细说。参考上一个实验配置IP的方式,将实验环境搭建完成。LVS记得禁用网卡和内核路由功能。

LVS中禁用网卡的命令格式为:

nmcli device disconnect 网卡名

2.路由器开启内核路由功能

与上一个实验相同,在配置文件中加入命令即可。

3.配置rs主机中使vip不对外响应(webserver1和webserver2)

webserver1:

a69ae68bb78f4cbbbd30807b6af81786.png

webserver2:

827cbeb1e6d1478291822a40f984f5c0.png

4.在LVS主机中和rs主机中添加VIP

在DR模式中,RS接收到访问请求后不需要回传给LVS调度器,直接把回传数据发送给client,所以RS和LVS上都要有vip

#配置环回网卡IP
[root@LVS ~]# ip a a 192.168.0.200/32 dev lo

rs主机配置相同,都是上面这一条命令。

注意:网段是/32,一定不要写错了,VIP要独立的应该网段。

5.客户机测试

[root@client ~]# curl 192.168.0.200
webserver2 192.168.0.20
[root@client ~]# curl 192.168.0.200
webserver2 192.168.0.20
[root@client ~]# curl 192.168.0.200
webserver1 192.168.0.10
[root@client ~]# curl 192.168.0.200
webserver2 192.168.0.20
[root@client ~]# curl 192.168.0.200
webserver2 192.168.0.20
[root@client ~]# curl 192.168.0.200
webserver1 192.168.0.10

6.Wireshark抓包查看MAC地址变化

将自己所有主机的MAC地址记录一下,然后用抓包工具抓包查看一下,注意,抓的是内网的包。

e650016c07304bfea49334073426ca4d.png

8.4 DR模式数据逻辑

这也是前面要抓包的原因,因为DR模式在传递的时候IP层是不变的,IP地址都一样,改变的第二层MAC地址,所有只有通过抓包查看MAC地址的变化来观察原理。 

1.客户端发送数据帧给vs调度主机帧中内容为客户端IP+客户端的MAC+VIP+VIP的MAC

2.VS调度主机接收到数据帧后把帧中的VIP的MAC该为RS1的MAC,此时帧中的数据为客户端IP+客户端 的MAC+VIP+RS1的MAC

3.RS1得到2中的数据包做出响应回传数据包,数据包中的内容为VIP+RS1的MAC+客户端IP+客户端IP的MAC

九、LVS-火墙mark标记解决调度问题

9.1实验环境:

1.在上一个实验的环境下继续完成实验。

9.2实验要求:

问题:以http和https为例,当我们在RS中同时开放80和443端口,那么默认控制是分开轮询的,这样我们就出 现了一个轮询错乱的问题 当我第一次访问80被轮询到RS1后下次访问443仍然可能会被轮询到RS1上

1.如果不做火墙mark标志,当客户端通过http的80端口,和https的443端口访问时,两次是后端同一台服务器发来的,如下所示:

[root@client ~]# curl 192.168.0.200; curl -k https://192.168.0.200
webserver1 192.168.0.20
webserver2 192.168.0.20

2.这是我们不想看见的,我们LVS执行的算法是rr轮询,要做到负载均衡,第一次http如果是10主机发来的回复,那么第二次https的应该是20主机发来的。这就是本次实验要实现的要求。

9.3实验步骤

1.RS安装mod_ssl模块,让RS支持https

webserver1:

[root@webserver1 ~]# yum install mod_ssl -y
#一定要重启,不让不行
[root@webserver1 ~]# systemctl restart httpd

webserver2:

[root@webserver2 ~]# yum install mod_ssl -y
[root@webserver1 ~]# systemctl restart httpd

2.查看端口,确保端口都存在

[root@webserver1 ~]# netstat -lnupt | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      3855/httpd          
tcp6       0      0 :::443                  :::*                    LISTEN      3855/httpd          
[root@webserver2 ~]# netstat -lnupt | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      3855/httpd          
tcp6       0      0 :::443                  :::*                    LISTEN      3855/httpd          

3.LVS主机中为端口做标记

#先清空规则
[root@LVS ~]# ipvsadm -C
[root@LVS ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

#为端口做标记 -A:添加;-D:删除
[root@LVS ~]#  -t mangle -A PREROUTING -d 192.168.0.200 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 66

#基于标记定义集群服务
[root@LVS ~]# ipvsadm -A -f 66 -s rr
[root@LVS ~]# ipvsadm -a -f 66 -r 192.168.0.10 -g
[root@LVS ~]# ipvsadm -a -f 66 -r 192.168.0.20 -g
[root@LVS ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
FWM  66 rr
  -> 192.168.0.10:0               Route   1      0          0         
  -> 192.168.0.20:0               Route   1      0          0      

 4.客户端访问测试

#-k:忽略https证书,不然访问不了
[root@client ~]# curl 192.168.0.200; curl -k https://192.168.0.200 
webserver1 192.168.0.10
webserver2 192.168.0.20
[root@client ~]# curl 192.168.0.200; curl -k https://192.168.0.200
webserver1 192.168.0.10
webserver2 192.168.0.20

十、LVS的TUN模式(不常用了解一下)

10.1转发方式

不修改请求报文的IP首部(源IP为CIP,目标IP为VIP),而在原IP报文之外再封装一个IP首部 (源IP是DIP,目标IP是RIP),将报文发往挑选出的目标RS;RS直接响应给客户端(源IP是VIP,目标IP是CIP)

10.2 TUN模式数据传输过程

1.客户端发送请求数据包,包内有源IP+vip+dport

2.到达vs调度器后对客户端发送过来的数据包重新封装添加IP报文头,新添加的IP报文头中包含TUNSRCIP(DIP)+TUNDESTIP(RSIP1)并发送到RS1

3.RS收到VS调度器发送过来的数据包做出响应,生成的响应报文中包含SRCIP(VIP)+DSTIP(CIP)+port,响应数据包通过网络直接回传给client

10.3 TUN详解

如果想要了解更多可以访问一下链接:

https://www.cnblogs.com/luwei0915/articles/10488825.htmlicon-default.png?t=N7T8https://www.cnblogs.com/luwei0915/articles/10488825.html

十一、LVS的fullnet模式(了解)

11.1 fullnet模式简介

fullnat:通过同时修改请求报文的源IP地址和目标IP地址进行转发

CIP --> DIP

VIP --> RIP

1.VIP是公网地址,RIP和DIP是私网地址,且通常不在同一IP网络;因此,RIP的网关一般不会指向DIP

2.RS收到的请求报文源地址是DIP,因此,只需响应给DIP;但Director还要将其发往Client

3.请求和响应报文都经由Director

4.支持端口映射

11.2 fullnet模式详解

如果想要了解更多可以访问一下链接:

https://blog.51cto.com/u_16099331/9937768icon-default.png?t=N7T8https://blog.51cto.com/u_16099331/9937768

十二、LVS各种模式之间的对比

模式特点优点缺点适用场景
NAT 模式(Network Address Translation)通过修改请求报文的目标 IP 地址实现转发。配置简单,容易实现。扩展性较差,较大规模时可能成为系统瓶颈。中小规模的网络服务。
TUN 模式(IP Tunneling)采用 IP 隧道技术将请求报文封装转发。集群中的服务器可以跨越不同网段,扩展性好。服务器需要支持隧道功能,配置复杂。服务器分散在不同地域的情况。
DR 模式(Direct Routing)直接路由模式,通过改写请求报文的 MAC 地址进行转发。性能高,没有 IP 封装开销。要求服务器和调度器在同一物理网段。对性能要求较高的场景。
FullNAT 模式不仅修改请求报文的目标 IP 地址,还修改源 IP 地址。解决了 NAT 模式中源地址冲突的问题,扩展性较好。相比 DR 模式,有一定的性能开销。当后端服务器和前端调度器的网络环境较复杂时适用。

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

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

相关文章

使用Github Pages结合MkDocs制作个人网站

目录 环境配置 创建网页仓库 创建Github仓库 创建本地仓库 本地运行网页 配置主题 网站部署到Github docs文件夹介绍 修改主页显示内容 添加新文件 mkdocs.yml文件介绍 其他效果 环境配置 为了正确的安装Mkdocs&#xff0c;需要先下载Python环境 下载地址&#x…

7日 ROI 提升150%,NetMarvel 助力越南厂商 Mirai 旗下解谜休闲手游实现高质增长!

解谜游戏是目前全球最受欢迎的休闲细分品类之一。对于厂商来说&#xff0c;解谜游戏开发成本低、制作周期短&#xff0c;打造成为爆款的几率更大。据 Sensor Tower 发布的数据&#xff0c;解谜游戏在全球市场累计的下载量已经超过500亿次&#xff0c;累计收入也已突破420亿美元…

MongoDB基础学习(1)Mongodb和MySQL的区别

在当今的软件开发领域&#xff0c;数据库的选择是一个至关重要的决策。MongoDB和MySQL作为两种广泛使用的数据库系统&#xff0c;各自拥有其独特的特性和优势。本文将从多个维度深入探讨MongoDB和MySQL之间的区别&#xff0c;帮助读者更好地理解和选择适合自身项目需求的数据库…

SQL面试题练习 —— 计算用户首单是即时单的比例

目录 1 题目2 建表语句3 题解 题目来源&#xff1a;美团。 1 题目 在外卖订单中&#xff0c;有时用户会指定订单的配送时间。现定义&#xff1a;如果用户下单日期与期望配送日期相同则认为是即时单&#xff0c;如果用户下单日期与期望配送时间不同则是预约单。每个用户下单时间…

Web-server日志分析命令

https://gist.github.com/hvelarde/ceac345c662429447959625e6feb2b47 通过状态码获取请求总数 awk {print $9} /var/log/apache2/access.log | sort | uniq -c | sort –rn按照IP的请求数量排序 awk {print $1} /var/log/apache2/access.log | sort | uniq -c | sort -rn |…

第 9 课:隐语联邦学习

隐语水平联邦框架介绍 隐语垂直联邦框架介绍 大模型微调技术 联邦大模型现状 可信执行环境(Trusted Execution Environment) 联邦大模型训练阶段存在的安全问题

“AI妖股”超微电脑业绩发布,股价暴跌

KlipC报道&#xff1a;周二&#xff0c;“AI妖股”服务器制造商超微电脑公布了第四财季财报&#xff0c;财报显示&#xff0c;超微电脑二季度营收53.08亿美元&#xff0c;同比增长142.95%&#xff1b;每股摊薄后盈利&#xff0c;6.25美元&#xff0c;市场预期8.07美元&#xff…

数据可视化Axure大屏原型制作分享

数据可视化大屏通过清晰、直观且易于理解的方式呈现大量复杂数据&#xff0c;已成为各行各业中不可或缺的工具。Axure作为一款功能强大的原型设计工具&#xff0c;为数据可视化大屏的制作提供了强大的支持和丰富的资源。 Axure RP 是一款强大的原型设计工具&#xff0c;非常适…

契约锁大型集团电子签及印控方案分享,无需重复部署、场景可拓展

契约锁在中大型客户市场以客户总量第一、本地化部署量第一领先行业&#xff0c;是汽车、保险、物流、食品、医药、工程、检测、家居等行业的40000多家中大型组织的电子签及印控服务商。 大型集团组织印章数量多则上千、甚至上万&#xff0c;用户规模高达十几万、数十万&#xf…

Ascon加密算法:轻量级加密的新选择

随着物联网、移动通信等领域的迅猛发展&#xff0c;信息安全问题日益凸显。加密算法作为保障信息安全的核心技术&#xff0c;一直备受关注。近年来&#xff0c;一款名为Ascon的加密算法逐渐崭露头角&#xff0c;成为轻量级加密领域的新宠。本文将为您介绍Ascon加密算法的原理、…

爬虫 Web Js 逆向基础:js 基础语法

网络爬虫对 Web Js 逆向主要是为了对各种研究加密参数&#xff0c;调试分析 JavaScript 代码来弄清加密参数的生成逻辑。 对于加密参数的逆向方式&#xff0c;个人认为 “对 js 源码进行补环境来模拟加密参数生成” 这种方法更加方便。 综上&#xff0c;想要做好 Js 逆向&…

如何利用 ChatGPT 提高工作效率?

内容创作与总结&#xff1a; 写作辅助&#xff1a;可以帮助撰写文章、报告、邮件等各种文本&#xff0c;如为招商银行写宣传文案、写论文、写故事等。学习材料生成&#xff1a;能够生成学习材料&#xff0c;如摘要、抽认卡和测验&#xff0c;帮助学生复习和学习课程。评估和考核…

JS爬虫逆向

JS反爬虫根本原因 / 基本原理&#xff1a; &#xff08;1&#xff09; 反爬虫&#xff1a; 限制爬虫程序访问服务器资源和获取数据的行为称为反爬虫。 &#xff08;2&#xff09;限制手段&#xff1a; 包括但不限于请求限制、拒绝响应、客户端身份验证、文本混淆和使用动态…

网站/APP短信接口调用与第三方短信API接入流程详解

在构建网站、APP或系统时&#xff0c;集成短信服务功能已成为提升用户体验、增强用户互动的重要手段。而这一过程往往依赖于调用第三方短信平台的API接口。今天&#xff0c;我们就来详细探讨一下如何高效地完成这一流程&#xff0c;特别是如何通过短信群发平台实现短信API接口的…

干货|字符串大小写转换用法

Python 中&#xff0c;为了方便对字符串中的字母进行大小写转换&#xff0c;字符串变量提供了 3 种方法&#xff0c;分别是 title()、lower() 和 upper()。 01 Python title()方法 title() 方法用于将字符串中每个单词的首字母转为大写&#xff0c;其他字母全部转为小写&…

Python配置国内镜像源

当我们在使用Python的pip包管理器下载一些第三方库的时候&#xff0c;经常会遇到一些下载速度很慢&#xff0c;或者下载失败的情况。导致这种情况发生是因为我们在使用pip的时候默认的下载源是在国外&#xff0c;所以在我们下载的时候就会由于网络问题而导致下载缓慢或者下载失…

灌溉数据同化方法、装置、电子设备及存储介质

智慧农业是新时代农业发展的必由之路。在万物互联的时代,海量农业数据的智能分析利用,已成为智慧农业的关键。然而,在灌溉领域,多源异构数据的高效融合一直是一个难题。传统方法面对新时期的挑战,已难以为继。在关键核心技术受制于人的大背景下,实现灌溉数据的自主可控,对保障国…

Python爬虫实战:实时微信推送奥运奖牌榜信息

最近奥运会正在巴黎如火如荼地进行。为了能第一时间获得我国运动健儿的获奖情况&#xff0c;我给大家分享一个python爬虫项目——实时微信推送奥运奖牌榜信息。 爬虫每隔 5 分钟抓取一次奥林匹克官网奖牌榜数据&#xff0c;对比上次抓取的数据&#xff0c;如果 奖牌数量 或者 排…

【Linux学习】深入理解软硬链接

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;Linux从入门到进阶 欢迎大家点赞收藏评论&#x1f60a; 目录 &#x1f388;软硬链接&#x1f427;软链接&#x1f42c;硬链接 &#x1f438;总结软硬链接的原理&#x1f40d;软硬链接的应用场景&…

stm32入门学习11-硬件I2C和MPU

&#xff08;一&#xff09;I2C硬件电路 stm32内部有I2C的硬件电路&#xff0c;我们可以使用stm32的标准库函数来实现I2C&#xff0c;这可以为我们减少对软件资源的占用 I2C硬件电路常用的标准库函数 void I2C_Init(I2C_TypeDef* I2Cx, I2C_InitTypeDef* I2C_InitStruct); /…