简介:本文详细解析LVS负载均衡群集的NAT模式配置,涵盖工作原理、配置步骤、故障排查及优化建议,助力构建高可用网络架构。
在分布式系统架构中,负载均衡是保障高可用性和性能的关键技术。LVS(Linux Virtual Server)作为开源的负载均衡解决方案,其NAT(Network Address Translation)模式通过修改数据包IP地址实现流量分发,尤其适用于跨网段或私有网络环境。本文从LVS-NAT的工作原理出发,结合实际配置步骤、常见问题排查及性能优化建议,为运维人员提供完整的操作指南。
LVS-NAT模式下,负载均衡器(Director)作为真实服务器(Real Server)的网关,所有外部请求首先到达Director,再由Director修改目标IP后转发至Real Server。Real Server的响应数据包需经Director修改源IP后返回客户端,形成”请求入-响应出”的双向NAT流程。
典型拓扑:
客户端 → [公网IP:Director] → [私网IP:Real Server1/2...]← ←
echo 1 > /proc/sys/net/ipv4/ip_forward# 永久生效需写入/etc/sysctl.conf
| 角色 | 接口 | IP地址 |
|---|---|---|
| Director外网 | eth0 | 203.0.113.10/24 |
| Director内网 | eth1 | 192.168.1.1/24 |
| Real Server 1 | eth0 | 192.168.1.100/24 |
| Real Server 2 | eth0 | 192.168.1.101/24 |
# CentOS系统yum install ipvsadm -y# Ubuntu系统apt install ipvsadm -y
# 在Director的eth0添加VIP(需确保本地不响应ARP)ip addr add 203.0.113.100/24 dev eth0 label eth0:0# 或使用arp_announce配置echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announceecho 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# 清除现有规则ipvsadm -C# 添加NAT模式集群(轮询调度)ipvsadm -A -t 203.0.113.100:80 -s rr# 添加Real Server(需指定内网IP)ipvsadm -a -t 203.0.113.100:80 -r 192.168.1.100:80 -mipvsadm -a -t 203.0.113.100:80 -r 192.168.1.101:80 -m# 保存规则(部分系统需额外安装持久化工具)ipvsadm --save > /etc/sysconfig/ipvsadmsystemctl enable ipvsadm # 根据发行版调整
# 所有Real Server的默认网关需指向Director内网IPecho "default via 192.168.1.1" > /etc/sysconfig/network-scripts/route-eth0# 或使用ip route命令ip route add default via 192.168.1.1
echo 0 > /proc/sys/net/ipv4/conf/eth0/rp_filterecho 0 > /proc/sys/net/ipv4/conf/all/rp_filter# 永久生效需写入sysctl.conf
cat /proc/sys/net/ipv4/ip_forward # 应返回1
ipvsadm -Ln # 查看连接数和状态tcpdump -i eth1 -n # 抓取内网流量
iptables -L -n # 确保无拦截规则
-p 60参数设置持久连接(60秒超时)
ipvsadm -a -t VIP:80 -r RS:80 -m -p 60
rr:轮询(简单场景)wrr:加权轮询(服务器性能不均)lc:最小连接(长连接场景)建议结合Keepalived实现VIP漂移:
# Director1配置vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 51priority 100virtual_ipaddress {203.0.113.100/24}}# Director2配置(仅修改state为BACKUP和priority为90)
# 查看连接统计ipvsadm -Ln --stats# 监控连接状态watch -n 1 "ipvsadm -Ln | grep -E 'TCP|UDP'"
配置rsyslog记录连接事件:
# /etc/rsyslog.conf中添加kern.* /var/log/kern.log:msg, contains, "IPVS" /var/log/ipvs.log
# 每周清理无效连接ipvsadm --zero# 每月检查规则完整性crontab -e添加:0 3 1 * * /sbin/ipvsadm --save > /etc/sysconfig/ipvsadm
# 添加HTTPS服务ipvsadm -A -t 203.0.113.100:443 -s wrripvsadm -a -t 203.0.113.100:443 -r 192.168.1.100:443 -mipvsadm -a -t 203.0.113.100:443 -r 192.168.1.101:443 -m
根据服务器负载动态调整权重:
# 查看当前连接数ipvsadm -Ln --stats | awk '{print $1,$5}'# 手动调整权重(示例)ipvsadm -e -t VIP:80 -r RS:80 -m -w 150 # 原权重100调整为150
通过以上配置,LVS-NAT模式可稳定支持每秒万级连接,在电商、游戏等高并发场景中得到广泛应用。实际部署时建议先在测试环境验证配置,再逐步迁移至生产环境。