云原生第六次作业

1. 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 。

LVS(Linux Virtual Server)的 NAT 模式 和 DR 模式是两种主流的负载均衡实现方式,各有其适用场景和优缺点。以下是它们的核心对比:


1. NAT 模式(Network Address Translation)

工作原理:
  • 请求流程:客户端请求到达负载均衡器(Director),Director 修改目标 IP 为后端 Real Server 的 IP,转发请求;Real Server 响应时需经过 Director,由 Director 将源 IP 改回虚拟 IP(VIP)后返回客户端。
  • 网络要求 :Real Server 通常使用私有 IP,且网关需指向 Director。
模式特点:

集群节点,必须在一个网络中

真实服务器必须将网关指向负载调度器

RIP 通常都是私有 IP,仅用于各个集群节点通信

负载调度器必须位于客户端和真实服务器之间,充当网关

支持端口映射

2. DR 模式(Direct Routing)

工作原理:
  • 请求流程:Director 仅修改请求帧的 MAC 地址,直接将请求转发给 Real Server;Real Server 处理后直接响应客户端(不再经过 Director)。
  • 网络要求:Director 和 Real Server 需在同一物理网络(二层互通),Real Server 需配置 VIP 并抑制 ARP 响应。
  • 所有集群节点RS必须和Director在相同的物理网段(即同一个局域网中);
    2)所有客户端入站(而不是出站)请求由Director首先接收,并转发给集群节点RS;
    3)集群节点RS通常来说最好带外部IP,而不使用Director及某固定机器作为默认网关,以便将数据包直
    接回复给客户端计算机,且不会产生回包的瓶颈;
    4)所有集群节点RS上必须在lo网卡上绑定VIP地址,以便验证通过目的IP非RS的数据包;
    5)由于所有集群节点RS上必须在lo网卡上绑定VIP地址,因此,带来arp问题,即集群节点RS默认会相
    应发往Director VIP的数据包。因此要对所有集群节点RS做ARP抑制处理,把响应VIP的请求交给LVS
    Director;
    6)很多操作系统都可以用在集群内部的RS真实服务器上只要该操作系统能够实现ARP隐藏,如:
    Windows,linux,unix;
    7)LVS/DR模式不需要开启调度器转发功能,这点和LVS/NAT模式是不同的。
    8)LVS/DR Director(服务器数量100台)可以比LVS-NAT Director(服务器数量10-20台)承受更多的
    并发请求和转发更多的服务器数量。

对比总结

特性 NAT 模式 DR 模式
性能 低(响应需经 Director) 高(响应直达客户端)
网络要求 支持跨网段部署 必须同一二层网络
端口映射 支持 不支持
安全性 高(后端隐藏) 较低(后端暴露 VIP)
配置复杂度 简单 复杂(需 ARP 抑制)
适用场景 中小规模、私有网络环境 高并发、低延迟场景(如 CDN、大流量)

选择建议

  • NAT 模式:适合对灵活性要求高、规模较小或需跨网段部署的场景(如测试环境或内网服务)。
  • DR 模式:适合追求极致性能、高吞吐量的生产环境(如 Web 服务、API 网关)。

实际应用中,DR 模式更常见于大型互联网服务,而 NAT 模式多用于需简化部署的场景。若需更高容错性,可结合 Keepalived 实现 Director 的高可用。

2. 基于 openEuler 构建 LVS-DR 群集。

1

复制代码
nmcli connection add type dummy ifname dummy2 ipv4.method manual ipv4.addresses 192.168.234.137/32
yum install ipvsadm -y
ipvsadm -Ln
ipvsadm -At 192.168.234.137:80 -s rr
ipvsadm -at 192.168.234.137:80 -r 192.168.234.140:80 -g
ipvsadm -at 192.168.234.137:80 -r 192.168.234.141:80 -g
ipvsadm -Ln
curl 192.168.234.140
systemctl stop firewalld

2

复制代码
yum install -y nginx
echo "web test page,ip is `hostname -I`." > /usr/share/nginx/html/index.html
systemctl enable --now nginx
curl localhost
nmcli connection add type dummy ifname dummy2 ipv4.method manual ipv4.addresses 192.168.234.137/32
ip a
vim /etc/sysctl.conf 
	net.ipv4.conf.all.arp_ignore = 1 
	net.ipv4.conf.all.arp_announce = 2 
	net.ipv4.conf.dummy2.arp_ignore = 1 
	net.ipv4.conf.dummy2.arp_announce = 2
systemctl stop firewalld
curl 192.168.234.140

3

复制代码
yum install -y nginx
echo "web test page,ip is `hostname -I`." > /usr/share/nginx/html/index.html
systemctl enable --now nginx
curl localhost
nmcli connection add type dummy ifname dummy2 ipv4.method manual ipv4.addresses 192.168.234.137/32
ip a
vim /etc/sysctl.conf 
	net.ipv4.conf.all.arp_ignore = 1 
	net.ipv4.conf.all.arp_announce = 2 
	net.ipv4.conf.dummy2.arp_ignore = 1 
	net.ipv4.conf.dummy2.arp_announce = 2
systemctl stop firewalld
curl 192.168.234.140
相关推荐
第九序言T18 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
时间售卖铺20 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
龙亘川20 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
程序喵大人20 小时前
【C++入门】内存模型与资源管理 - 09 shared_ptr 和 weak_ptr 解决共享,也带来代价
开发语言·c++·资源管理·智能指针·内存模型
Raas10020 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
niucloud-admin21 小时前
NIUCLOUD PHP SAAS上门家政使用文档:城市管理
java·前端·php
专注仿真21 小时前
线性回归和逻辑回归算法详解
开发语言·人工智能·python·大模型训练·控制算法
ESDWAN21 小时前
企业网络监控应该监测哪些目标?网关、网络节点还是业务系统?
服务器·网络·php
jimy11 天前
C++ 中的 `T&&`:右值引用与转发引用
开发语言·c++
呆呆虫121 天前
用 orjson 加速 SerpBase 响应解析:基准对比与注意事项
开发语言·php