当前位置: 首页 > news >正文

基于LVS负载均衡练习

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

NAT模式,全称是网络地址转换模式。NAT模式下,负载均衡器(Director)会修改请求和响应的IP地址。客户端的请求先到达Director,Director将请求的目标地址改成后端真实服务器的地址,然后转发给后端服务器。后端服务器处理完请求后,将响应返回给Director,Director再将响应的源地址改回自己的虚拟IP(VIP),最后返回给客户端。这样的话,对于客户端来说,它只知道Director的地址,不知道后端服务器的存在。

DR模式,即直接路由模式。DR模式下,Director和后端服务器都配置了同一个虚拟IP地址。当客户端请求到达Director时,Director通过修改请求的目标MAC地址,将请求转发给选中的后端服务器。后端服务器处理请求后,直接通过自己的网络接口将响应返回给客户端,而不需要经过Director。这样响应数据可以直接从服务器到客户端,减少了Director的负担。

1. NAT模式(Network Address Translation)

  • 优势

    • 网络拓扑灵活

      • 后端服务器(Real Server)可使用私有IP地址,无需暴露公网IP。

      • 支持跨子网部署,Real Server可位于不同网络环境中(如云服务器跨可用区)。

    • 配置简单

      • Real Server无需特殊配置,只需设置默认网关为Director(负载均衡器)。

      • 无需修改Real Server的内核参数(如ARP抑制)。

    • 安全性较高

      • Real Server隐藏在Director后,对外不可见,避免直接暴露于公网。

    • 支持端口映射

      • Director可修改目标端口,实现灵活的端口转换(如将80端口请求转发到后端8080端口)。

  • 适用场景

    • 中小规模流量场景。

    • 需要跨子网或混合云部署。

    • 对后端服务器安全性要求较高。


2. DR模式(Direct Routing)

  • 优势

    • 高性能与低延迟

      • 响应数据直接由Real Server返回客户端,无需经过Director,避免带宽瓶颈。

      • 吞吐量高,适合高并发、大流量场景(如视频流、大规模Web应用)。

    • 扩展性强

      • Director仅处理入站请求,后端服务器数量增加时性能影响较小。

    • 资源利用率高

      • Real Server直接使用公网带宽,减轻Director的网络负载。

  • 适用场景

    • 高并发、大流量场景(如电商大促、在线游戏)。

    • 对吞吐量和延迟敏感的服务。

    • 需充分利用Real Server的公网带宽。

关键对比总结

特性NAT模式DR模式
网络拓扑支持跨子网,Real Server可私有IP必须同一局域网,Real Server需公网IP
性能受限于Director的带宽和处理能力高性能,Real Server直接响应客户端
配置复杂度简单(Real Server无需特殊配置)复杂(需配置ARP抑制、VIP绑定等)
安全性高(Real Server隐藏)较低(Real Server暴露公网IP)
端口映射支持不支持
适用规模中小规模大规模、高并发

选择建议

  • NAT模式:适合网络环境复杂、对安全性要求高、流量适中的场景。

  • DR模式:适合追求极致性能、大流量且网络环境可控的场景。

实际部署中,可结合两者优势,例如在DR模式下通过Keepalived实现Director的高可用,进一步提升系统可靠性。

 基于 openEuler 构建 LVS-DR 群集

1. 环境准备

  • 操作系统:openEuler 20.03 LTS 或更高版本。

  • 网络拓扑

    • Director:1台,配置双网卡(一个公网IP,一个内网IP)。

    • Real Server:至少2台,配置内网IP。

    • 客户端:1台,用于测试。

  • IP规划

    • Director:

      • 公网IP(VIP):192.168.234.10

      • 内网IP(DIP):192.168.234.11

    • Real Server 1:

      • 内网IP(RIP):192.168.234.14

    • Real Server 2:

      • 内网IP(RIP):192.168.234.15

    • 客户端:

      • 公网IP:192.168.234.13

 配置 Real Server(后端服务器)

在 Real Server 上启动 Web 服务

在两个Real Server上安装并启动nginx服务:

yum install nginx -y
systemctl start nginx
systemctl enable nginx

在Real Server 1上创建测试页面

echo "web test page,ip is `hostname -I`"  > /usr/share/nginx/html/index.html

在Real Server 2上创建测试页面

echo "web test page,ip is `hostname -I`"  > /usr/share/nginx/html/index.html

在两个Real Server上都绑定VIP

nmcli connection add type dummy ifname dummy1 ipv4.method manual ipv4.addresses 192.168.234.10/32

ip address查看:

配置 ARP 抑制

防止Real Server响应VIP的ARP请求:

vim  /etc/sysctl.conf,添加以下内容:

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2

应用配置:

sysctl -p

配置 Director(负载均衡器)

1.安装 LVS 工具

yum install ipvsadm -y

2.配置 VIP

nmcli connection add type dummy ifname dummy1 ipv4.method manual ipv4.addresses 192.168.234.10/32

3. 配置 LVS 规则

使用 ipvsadm 配置负载均衡规则:

ipvsadm -A -t 192.168.234.10:80 -s rr
ipvsadm -a -t 192.168.234.10:80 -r 192.168.234.14:80 -g
ipvsadm -a -t 192.168.234.10:80 -r 192.168.234.15:80 -g
 

4.在Director上查看LVS状态:

ipvsadm -Ln

5.从客户端访问 VIP

在客户端使用 curl 或浏览器访问VIP:

http://www.lryc.cn/news/536705.html

相关文章:

  • 在 rtthread中,rt_list_entry (rt_container_of) 已知结构体成员的地址,反推出结构体的首地址
  • 数组_二分查找
  • VUE环境搭建
  • MATLAB图像处理:Sobel、Roberts、Canny等边缘检测算子
  • C++ 标准库常见容器
  • Ubuntu+Laravel+MQ+Supervisor队列系统搭建流程
  • 力扣100. 相同的树(利用分解思想解决)
  • 全面了解HTTP(一)
  • element-ui时间组件同一个月内选择/30天内选择
  • NO.18十六届蓝桥杯备战|循环嵌套|乘法表|斐波那契|质数|水仙花数|(C++)
  • 深入浅出Java反射:掌握动态编程的艺术
  • 大模型被偷家?CNN结合多模态!
  • UI自动化测试的优缺点?
  • 在 Kubernetes (K8s) 环境中,备份 PostgreSQL 数据库
  • 机器视觉中的3d和2d的区别
  • exr 格式下 全景图(经纬图、panorama)转 cubemap
  • STM32 ADC介绍(硬件原理篇)
  • snort3.0 获取注册规则(19000多条)
  • 【GitHub】装修个人主页
  • 名词解释:npm,cnpm,yarn,vite,vue,electron
  • XMOS的多项音频技术创新将大模型与边缘AI应用密切联系形成生态化合
  • 九.Spring Boot使用 ShardingSphere + MyBatis + Druid 进行分库分表
  • 大数据治理:构建数据驱动的未来基石
  • 常见的几种设计模式(详细)——应用场景和实现方式
  • SonarQube
  • Nginx 之Rewrite 使用详解
  • 注册Gmail如何跳过手机验证环节?
  • WordPress自助建站全攻略
  • TreeSet(单列集合)
  • Elasticsearch:同义词在 RAG 中重要吗?