IP负载均衡与负载调度算法

LVS三种负载均衡模式详解

LVS(Linux Virtual Server)有三种工作模式:DR模式(直接路由)NAT模式(网络地址转换)TUN模式(IP隧道)。下面结合你提供的图片,详细解析每种模式的工作原理、优缺点和配置要点。


一、DR模式(Direct Routing,直接路由)

1.1 工作原理图示

User
    │
    ▼
Internet/Intranet
    │
    ▼
Requests ──► LinuxDirector (VIP)
    │
    ▼
Internal Network (同一物理网段)
    │
    ├──► Real Server 1 (绑定VIP到lo接口)
    ├──► Real Server 2 (绑定VIP到lo接口)
    └──► Real Server n (绑定VIP到lo接口)

1.2 数据流转过程

用户请求 ──► 调度器(LB) ──► 修改MAC地址 ──► Real Server
                                                   │
                                                   ▼
                                           直接响应给用户
                                              (不经过LB)

1.3 详细工作原理

步骤操作说明
1用户请求到达VIP请求包目标IP=VIP,目标MAC=LB的MAC
2LB修改MAC地址将目标MAC改为选中的Real Server的MAC
3转发给Real Server通过交换机直接发送到Real Server
4Real Server处理请求由于绑定了VIP,认为自己是目标
5直接返回给用户响应包源IP=VIP,直接通过网关发给用户

1.4 DR模式小结

特性说明
核心机制通过修改数据包的目的MAC地址实现转发
数据包变化源IP不变,目的IP不变(仍是VIP),只改MAC
响应路径请求经过LB,响应直接返回用户(不经过LB)
性能最高,适合大并发场景
网络要求所有RS和LB必须在同一物理网段
RS配置要求需要在lo接口绑定VIP,并配置ARP抑制
端口要求RS必须使用和VIP相同的端口提供服务
网关配置RS的默认网关指向上级路由,不是LB

1.5 ARP抑制配置示例

# 在Real Server上执行
echo "net.ipv4.conf.lo.arp_ignore = 1" >> /etc/sysctl.conf
echo "net.ipv4.conf.lo.arp_announce = 2" >> /etc/sysctl.conf
echo "net.ipv4.conf.all.arp_ignore = 1" >> /etc/sysctl.conf
echo "net.ipv4.conf.all.arp_announce = 2" >> /etc/sysctl.conf
sysctl -p

# 在lo接口绑定VIP
ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 up

二、NAT模式(Network Address Translation,网络地址转换)

2.1 工作原理图示

User
    │
    ▼
Internet/Intranet
    │
    ▼
1) Requests ──► Load Balancer (VIP)
    │
    ▼
2) Scheduling & rewriting packets
    │
    ▼
Switch/Hub
    │
    ├──► Real Server 1 (网关指向LB)
    ├──► Real Server 2 (网关指向LB)
    └──► Real Server n (网关指向LB)
    │
    ▼
4) Rewriting replies
    │
    ▼
5) Replies ──► User

2.2 数据流转过程

用户请求 ──► LB(公网IP) ──► 修改目的IP为RS ──► Real Server
                                                   │
                                                   ▼
                           RS处理完成 ──► 返回给LB ──► 修改源IP为VIP ──► 用户

2.3 详细工作原理

步骤方向操作说明
1请求用户访问VIP请求包目标IP=VIP(公网)
2请求LB修改目的IP将目标IP改为选中的Real Server的内网IP
3请求LB转发给RS通过内网发送给RS
4响应RS处理请求RS处理完成后返回给LB
5响应LB修改源IP将源IP改为VIP,返回给用户

2.4 NAT模式优缺点

优点缺点
✅ LB和RS可以不在同一网段响应也经过LB,LB易成瓶颈
✅ 只需要LB配置公网IP❌ 节点数量受限(通常10-20台)
✅ 支持端口转换❌ RS的网关必须指向LB
✅ RS可使用任何操作系统❌ 性能比DR模式低

2.5 NAT模式配置要点

# LB上开启IP转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

# RS配置
# 所有RS的默认网关必须指向LB的内网IP
route add default gw 192.168.1.100

三、FULL NAT模式

3.1 与NAT模式的区别

对比项NAT模式FULL NAT模式
请求处理只修改目的IP修改源IP和目的IP
响应处理只修改源IP修改源IP和目的IP
性能基准下降10%左右
网络要求RS网关指向LBRS和LB可跨网段

3.2 FULL NAT工作原理

请求:Client(1.1.1.1) ──► LB(VIP) 
      └─► LB修改源IP为自己,目的IP为RS

响应:RS ──► LB 
      └─► LB修改源IP为VIP,目的IP为Client

四、TUN模式(IP Tunneling,IP隧道)

4.1 工作原理图示

User
    │
    ▼
Internet/Intranet
    │
    ▼
Requests ──► Load Balancer
    │
    ▼
IP Tunnel封装
    │
    ▼
Real Server 1 (绑定VIP) ──► 直接响应给用户
Real Server 2 (绑定VIP) ──► 直接响应给用户
Real Server n (绑定VIP) ──► 直接响应给用户

4.2 数据流转过程

用户请求 ──► LB ──► IP隧道封装 ──► Real Server
                                          │
                                          ▼
                                  解开隧道封装
                                          │
                                          ▼
                                处理请求并直接返回给用户

4.3 详细工作原理

步骤操作说明
1用户请求到达LB请求包目标IP=VIP
2LB封装新IP头将原包封装在新IP包中,目标IP为RS
3通过隧道发送可以是内网或外网传输
4RS解封装去掉外层IP头,看到原始请求
5RS处理并响应直接返回给用户(不经过LB)

4.4 TUN模式注意事项

特性说明
RS要求所有Real Server必须绑定VIP
网络要求LB和RS可以跨网段,甚至跨机房
通信方式通过IP隧道传输,内网外网均可
响应路径RS直接响应给用户,不经过LB
运维难度较高,隧道配置复杂
使用频率较少使用,一般用DR替代

4.5 TUN模式配置示例

# RS上绑定VIP
ifconfig tunl0 192.168.1.100 netmask 255.255.255.255 up

# 配置ARP抑制(同DR模式)
echo "net.ipv4.conf.tunl0.arp_ignore = 1" >> /etc/sysctl.conf

五、三种模式对比总结

对比项DR模式NAT模式TUN模式
性能⭐⭐⭐⭐⭐ 最高⭐⭐ 较低⭐⭐⭐⭐ 高
响应路径直接返回用户经过LB返回直接返回用户
LB和RS网络同一网段可不同网段可不同网段
RS数量100+10-20100+
RS绑定VIP需要不需要需要
ARP抑制需要不需要需要
端口转换不支持支持不支持
RS操作系统支持Linux几乎全部支持隧道即可
配置复杂度中等简单复杂
使用频率最常用较常用很少用

六、选择建议

场景推荐模式原因
同机房、高性能需求DR模式性能最好,配置相对简单
跨网段、RS分布广TUN模式可通过隧道跨机房调度
RS使用WindowsNAT模式Windows不支持绑定VIP和隧道
小规模集群NAT模式配置简单,足够使用
需要端口转换NAT模式DR和TUN不支持端口转换

一句话总结

  • DR模式:性能最好,用得最多
  • NAT模式:通用性强,支持端口转换
  • TUN模式:可跨机房,但配置复杂

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注