RouterOS NTH与PCC负载均衡实战:从原理到五线带宽叠加配置

张开发
2026/4/11 13:11:52 15 分钟阅读

分享文章

RouterOS NTH与PCC负载均衡实战:从原理到五线带宽叠加配置
1. RouterOS负载均衡核心原理剖析第一次接触RouterOS的多线负载均衡时我也被NTH和PCC这两个专业术语搞得一头雾水。后来在实际项目中反复调试才发现理解它们的运作机制比死记硬背配置命令重要得多。简单来说NTH和PCC是RouterOS实现流量分流的两种不同策略就像交通指挥系统中的两种调度方案。NTHNext Traffic Hop采用轮询算法就像十字路口的红绿灯定时切换。假设你有5条宽带线路NTH会严格按1-2-3-4-5的顺序分配每个新建连接。这种方式的优势是绝对均衡每个连接都能精确分配到不同线路。我在实测中发现当线路质量相近时用NTH跑SpeedTest能看到五条线路的流量几乎呈平行直线。PCCPer Connection Classifier则更智能些它通过哈希算法计算连接特征值比如源地址、目标地址、端口等相同特征的连接始终走同一条线路。这就像机场的行李分拣系统相同目的地的行李会自动归到同一传送带。特别适合需要会话保持的场景比如视频会议或在线支付。有次给客户部署时他们财务系统频繁掉线换成PCC后问题立刻解决。两种策略各有适用场景短连接服务网页浏览、文件下载优先考虑NTH长连接应用视频监控、VPN接入建议使用PCC混合场景可以组合使用比如用PCC处理80/443端口流量其他走NTH理解这个底层逻辑后再看配置步骤就不会觉得是在念咒语了。有次深夜排障因为没吃透原理对着教程一步步检查还是失败最后发现是标记规则顺序错了——这个教训让我明白多线负载不是简单的命令堆砌而是流量调度艺术。2. 五线PPPoE拨号环境搭建上个月给一家网吧做五线叠加时光是物理连接就返工三次。这里分享几个容易踩坑的细节首先确认所有光猫的工作模式有些地区的运营商设备会限制多拨。我遇到过更离谱的情况——五个光猫的MAC地址前三位居然相同导致拨号失败最后不得不手动修改。具体操作流程如下物理连接确认使用五条超五类以上网线连接光猫和RouterOS建议用不同颜色网线区分我在机柜上贴了对应宽带的便利贴用/interface ethernet monitor命令检查每个端口链路状态接口命名规范/interface set [find] nameWAN1 nameWAN2 nameWAN3 nameWAN4 nameWAN5命名后立即测试物理连通性/ping 114.114.114.114 interfaceWAN1PPPoE拨号配置创建拨号模板能节省大量时间/interface pppoe-client add namepppoe-out1 interfaceWAN1 \ user宽带账号1 password密码1 service-nameinternet \ add-default-routeno use-peer-dnsno disabledno特别注意add-default-routeno避免自动生成冲突路由拨号成功后检查获取的IP是否属于不同网段LAN口配置陷阱很多教程会忽略这个细节当使用多WAN时LAN口的ARP设置需要调整/interface ethernet set ether6 arpproxy-arp否则内网设备可能无法正确回流。有次客户投诉内网服务器访问异常就是这个参数没配。3. 连接标记与策略配置实战记得第一次配NTH时我对着官方文档照抄结果流量死活不均衡。后来发现是跳过了一个关键步骤——连接标记。这就像快递分拣站没贴标签的包裹再好的分拣机也无可奈何。NTH配置关键点先创建地址列表区分各线路流量/ip firewall address-list add addresspppoe-out1 listWAN1_Route设置每第5个连接走指定线路五线场景/ip firewall mangle add chainprerouting connection-statenew \ nth5,1 actionmark-connection new-connection-markWAN1_Conn对应的路由标记/ip firewall mangle add chainprerouting connection-markWAN1_Conn \ actionmark-routing new-routing-markto_WAN1PCC配置差异PCC需要先定义分类规则比如按源地址分类/ip firewall mangle add chainprerouting connection-statenew \ src-address192.168.1.0/24 per-connection-classifierboth-addresses:5/0 \ actionmark-connection new-connection-markWAN1_Conn这里both-addresses:5/0表示用源目地址做哈希分成5组取第0组。实测中发现个有趣现象当线路数超过3条时PCC的CPU消耗会比NTH高15%左右。所以网吧那种300终端的环境我通常会用NTH为主PCC为辅的混合方案。4. 路由策略与带宽叠加测试路由配置就像给快递车规划路线标记好的包裹需要对应运输通道。这里有个经典错误很多人只配了标记路由忘了基础路由。正确步骤应该是先为每条WAN创建默认路由/ip route add dst-address0.0.0.0/0 gatewaypppoe-out1 routing-markto_WAN1然后必须加一条无标记的保底路由/ip route add dst-address0.0.0.0/0 gatewaypppoe-out1 distance10带宽叠加测试也有门道单纯用SpeedTest可能显示不出效果。我习惯用三种方式验证多线程下载测试wget -O /dev/null http://speedtest.tele2.net/10GB.zip同时在五个SSH会话启动观察总速度是否接近五线总和IP出口验证curl ifconfig.me --interface pppoe-out1轮流测试各接口确认出口IP不同实时流量监控/interface monitor-traffic pppoe-out1,pppoe-out2,pppoe-out3看各线路流量曲线是否均衡最近一次部署中客户原有单线100M升级到五线200M每线40M但实测始终卡在120M。后来发现是光猫的百兆端口瓶颈换成全千兆设备后立刻跑到198M。这个案例说明负载均衡效果不仅取决于配置硬件链路质量同样关键。

更多文章