如何在阿里云上申请的主机中配置LVS?

HCRM技术_小炮 云主机 2026-06-10 3 0

在阿里云上搭建 LVS(Linux Virtual Server)需要注意云环境的特殊性。关键限制是:云上 VPC 网络不支持标准的 VIP(虚拟 IP)漂移(如 ARP 广播),因此传统的 LVS + Keepalived 主备模式无法直接工作。

阿里云上申请的主机怎么做lvs

但你可以通过以下两种在阿里云可行的方式实现 LVS 负载均衡:

方案一:使用单臂模式(LVS-NAT)进行二层转发(官方推荐替代方案)

这是云上最符合逻辑的方式,因为不需要 VIP 漂移,LVS 作为网关,后端 Real Server 将默认网关指向 LVS 内网 IP。

架构:

- 客户端 → LVS(1台或2台,每台独立绑定公网IP) → Real Server(多台,内网IP,网关指向LVS内网IP)

阿里云上申请的主机怎么做lvs

配置步骤(以 CentOS 为例):

1、安装 ipvsadm

   yum install -y ipvsadm

2、开启 IP 转发

   echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
   sysctl -p

3、配置 LVS 规则(在 LVS 主机上执行)

   # 假设 LVS 内网IP:10.0.0.1,Real Server内网IP:10.0.0.2, 10.0.0.3
   ipvsadm -A -t 公网IP:80 -s rr  # rr 为轮询算法
   ipvsadm -a -t 公网IP:80 -r 10.0.0.2:80 -m  # -m 表示NAT模式
   ipvsadm -a -t 公网IP:80 -r 10.0.0.3:80 -m

4、配置 iptables 做 SNAT(源地址转换,让Real Server回包经过LVS)

阿里云上申请的主机怎么做lvs
   iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to-source 10.0.0.1

5、Real Server 配置

- 安装 Web 服务(如 Nginx)

将默认网关修改为 LVS 的内网 IP(10.0.0.1)

- 关闭 ARP 响应问题(可选,但通常不需要,因为 NAT 模式不涉及子网内 VIP)

6、高可用处理(可选)

- 你可以再买一台 LVS 主机,同样绑定一个独立公网 IP + 内网 IP。

- 客户端通过 DNS 轮询或全局负载均衡(如阿里云 DNS 解析 + 健康检查)来访问两个 LVS 的公网 IP。

不要尝试使用 Keepalived 做 VIP 漂移,VPC 下不会成功。

方案二:使用 DR 模式 + 辅助弹性网卡(进阶,适用于极端高性能场景)

DR 模式需要 VIP 绑定在一张网卡上,但云上 VPC 不允许纯 ARP 抢夺,不过你可以通过在 LVS 主机上额外绑定一张弹性网卡(ENI),并把 VIP 配置在弹性网卡上来模拟。

架构:

- 客户端 → LVS(一台或两台,每台有主IP + 浮动VIP,通过弹性网卡实现) → Real Server(多台,配置VIP回包)

关键步骤:

1、为 LVS 主机创建弹性网卡

- 在阿里云控制台为 LVS 主机创建辅助弹性网卡,分配一个内网 IP 作为 VIP(10.0.0.10)。

- 绑定到 LVS 主机。

注意:这个 VIP 不能让两台 LVS 同时拥有,否则冲突。 因此你需要“手动切换”或者用 DNS 绑定到其中一台,故障时手动将弹性网卡转移到另一台主机。

2、在 LVS 主机上配置 IP

   ip addr add 10.0.0.10/24 dev eth1  # 辅助网卡设备名

3、配置 LVS 规则(DR 模式)

   ipvsadm -A -t VIP:80 -s rr
   ipvsadm -a -t VIP:80 -r 10.0.0.2:80 -g  # -g 表示DR模式
   ipvsadm -a -t VIP:80 -r 10.0.0.3:80 -g

4、Real Server 配置

- 在 lo 网卡上配置 VIP(抑制 ARP)

   echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
   echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
   echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
   echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
   ip addr add 10.0.0.10/32 dev lo

5、高可用情况

- 你需要购买的是弹性网卡资源,故障时手动将弹性网卡从一台 LVS 解绑,绑定到另一台,自动化可用阿里云 API 或使用 terraform。

优缺点: 性能高(直接二层转发),但运维复杂,切换需要几秒到几十秒,不推荐初学者。

最佳实践建议

如果你只是想做云上的四层负载均衡,阿里云官方 SLB(Server Load Balancer) 是最省心、高可用的选择。

方案 成本 维护难度 故障切换速度 适用场景
阿里云 SLB 按量或包年包月(有独立公网IP和SLB资源费) 极低 秒级自动切换 绝大多数业务
LVS-NAT 单臂 只需主机费用,SLB费用省了 中等 需DNS或手动干预 省钱、自定义策略、学习实验
LVS-DR + 弹性网卡 主机费用+弹性网卡小计 较高 手动数秒至分钟 追求极限性能但不愿用SLB

新项目/生产环境:强烈推荐直接用阿里云 SLB,它本身就是基于类似 LVS 的技术,并且免运维。

实验/学习/特殊要求(如自定义调度算法、必须自己控制转发逻辑):使用方案一(LVS-NAT 单臂),关掉 Keepalived 的 VIP 功能,用 DNS 轮询或前端加一台 Nginx 反代做简单切换。

不要尝试在云上标准 Keepalived VIP 漂移,那会浪费大量排错时间。

如果你需要具体的安全组配置(SLB 白名单、Real Server 只接受 LVS 流量),可以继续追问。

文章摘自:https://idc.huochengrm.cn/zj/26444.html

评论