目录
一、什么是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的核心思想主要体现在以下几个方面:
负载均衡:LVS通过调度器(Director Server)将客户端的请求分发到后端真实服务器(Real Server),从而实现负载均衡。这种分发基于预设的算法进行,确保请求被均匀分配到各个真实服务器上,以提高服务器的整体处理能力和资源利用率。
容错性:LVS支持动态添加或删除真实服务器,允许在不影响服务的情况下进行扩展或缩减服务能力。这种动态调整的能力使得系统具有很好的容错性,能够应对真实服务器的宕机、升级或弹性伸缩等变化。
透明性:对于客户端而言,LVS提供了一个虚拟的IP地址(VIP),用户通过访问这个虚拟IP地址来访问服务,而不需要知道背后真实的服务器结构和数量。这种透明性使得LVS能够保护后端服务器的隐私和安全性。
高性能: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.htmlhttps://www.cnblogs.com/rushiyi/p/12425905.html
七、 LVS的NAT模式实验详解
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连接两台服务器,作为两台服务器的网关。
NAT网卡在:172.25.254.0/24网段;仅主机在192.168.0.0/24网段,对应的IP配置如下图:
NAT:
仅主机:
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.webserver1
和webserver2
配置
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.webserver1
和webserver2下载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
中安装软件
7. LVS
添加服务和算法规则(-s rr
表示调度算法是:轮询算法)
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模式数据逻辑
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模式实验详解
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:
webserver2:
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地址记录一下,然后用抓包工具抓包查看一下,注意,抓的是内网的包。
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.htmlhttps://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/9937768https://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 模式,有一定的性能开销。 | 当后端服务器和前端调度器的网络环境较复杂时适用。 |