pcc负载均衡教程
- 虚拟主机
- 2025-12-25
- 4
pcc负载均衡教程是一种基于客户端连接(PerClientConnection)的负载均衡技术,主要用于在多WAN线路环境下,根据客户端的源IP地址将流量分配到不同的出口链路上,从而实现带宽叠加、负载均衡和故障转移,这种技术特别适合中小企业或家庭用户,通过简单的路由器配置即可提升网络性能和可靠性,以下将从原理、配置步骤、注意事项及实例演示等方面详细介绍PCC负载均衡的实现方法。
PCC负载均衡的基本原理
PCC负载均衡的核心是通过分析数据包的源IP地址和源端口(即客户端连接的唯一标识),将同一客户端的所有流量固定分配到指定的WAN链路上,与基于带宽比例的负载均衡不同,PCC避免了单个连接在不同链路间切换导致的延迟增加或连接中断问题,特别适合对连接稳定性要求较高的应用,如在线游戏、视频会议等,其工作流程可概括为:路由器接收客户端数据包后,提取源IP和源端口信息,通过哈希算法将客户端映射到特定的WAN接口,后续该客户端的所有流量均通过该接口转发。
PCC负载均衡的配置步骤
环境准备
确保路由器支持MikroTik RouterOS(或其他支持PCC功能的固件),并具备以下硬件条件:

- 至少2个WAN接口(如eth1、eth2)连接不同的互联网线路。
- 1个LAN接口(如ether1)连接内部网络。
- 足够的内存和CPU资源以处理流量转发。
基础网络配置
(1)配置WAN接口:
- 进入接口配置界面,为每个WAN接口设置静态IP或通过DHCP获取IP地址。
- eth1连接ISP1,IP为192.168.1.2/24;eth2连接ISP2,IP为10.0.0.2/24。
- 配置默认路由:ip route add gateway=192.168.1.1 distance=1(ISP1)和ip route add gateway=10.0.0.1 distance=1(ISP2)。
(2)配置NAT:
- 为每个WAN接口配置源NAT,使内网客户端通过对应WAN IP上网: /ip firewall nat add chain=srcnat outinterface=eth1 action=masquerade /ip firewall nat add chain=srcnat outinterface=eth2 action=masquerade
PCC负载均衡规则配置
(1)定义地址列表:

- 创建地址列表用于存储客户端IP与WAN接口的映射关系: /ip firewall addresslist add list=pcc_wan1 address=0.0.0.0/0 /ip firewall addresslist add list=pcc_wan2 address=0.0.0.0/0
(2)配置PCC标记规则:
- 使用mangle表对数据包进行标记,根据源IP哈希分配WAN接口: /ip firewall mangle add chain=prerouting protocol=tcp connectionmark=nomark perconnectionclassifier=bothaddressesandports:2/0 action=markconnection newconnectionmark=pcc_wan1 passthrough=yes /ip firewall mangle add chain=prerouting protocol=udp connectionmark=nomark perconnectionclassifier=bothaddressesandports:2/1 action=markconnection newconnectionmark=pcc_wan2 passthrough=yes
- 上述规则中,perconnectionclassifier参数将客户端流量分为2组(可调整数量),分别标记为pcc_wan1和pcc_wan2。
(3)路由策略配置:
- 根据连接标记将流量路由到对应WAN接口: /ip route add gateway=192.168.1.1 routingmark=pcc_wan1 distance=1 /ip route add gateway=10.0.0.1 routingmark=pcc_wan2 distance=1 /ip firewall mangle add chain=prerouting connectionmark=pcc_wan1 action=markrouting newroutingmark=pcc_wan1 passthrough=yes /ip firewall mangle add chain=prerouting connectionmark=pcc_wan2 action=markrouting newroutingmark=pcc_wan2 passthrough=yes
故障转移配置
为提高可靠性,可添加故障转移规则,当某条WAN线路断开时自动切换至备用线路:
/ip route add gateway=192.168.1.1 distance=2 /ip route add gateway=10.0.0.1 distance=2
并通过脚本定期检测WAN接口状态,动态调整路由优先级。
配置示例与验证
假设内网客户端IP为192.168.88.10,访问公网服务器8.8.8.8,配置完成后,可通过以下步骤验证:
- 在路由器终端执行/ip firewall connection print,查看连接标记是否正确分配(如pcc_wan1或pcc_wan2)。
- 在客户端使用traceroute命令,观察出口IP是否为配置的WAN IP之一。
- 模拟WAN线路故障(如断开eth1),验证流量是否自动切换至另一条线路。
注意事项
- 哈希算法选择:默认基于源IP和端口,若客户端IP数量较少,可增加端口范围哈希以均衡负载。
- 连接数限制:单个客户端连接过多可能导致某条链路过载,可结合queuetree限速。
- 对称路由要求:确保返回流量与去程流量走同一链路,否则需配置策略路由强制对称路由。
- 性能影响:PCC规则会增加路由器CPU负担,高性能场景建议使用硬件加速。
相关问答FAQs
Q1: PCC负载均衡与基于带宽的负载均衡有何区别?
A1: PCC基于客户端连接(源IP+端口)分配流量,确保同一客户端的流量固定走一条链路,连接稳定性高;而基于带宽的负载均衡实时根据各链路负载比例分配流量,可能导致单个连接在不同链路间切换,适用于大文件下载等对连接稳定性要求不高的场景。
Q2: 如何解决PCC负载均衡中部分网站无法访问的问题?
A2: 此问题通常由NAT或路由规则冲突导致,可检查以下三点:1)确认所有WAN接口的源NAT规则已正确配置;2)验证mangle和路由规则中routingmark与gateway的对应关系;3)对于需要特定出口IP的应用,可添加静态路由或策略路由强制指定出口。
