硬件加速 Fasttrack(nat转发硬件加速)
RouterOS v7在不断的修复bug和释放更多的功能,RouterOS老用户都知道Fasttrack功能,在做nat转发时能有效地降低CPU负载,当然牺牲了很多功能,如不能做mangle策略和流控策略等,现在又支持Fasttrack的硬件加速,也就是NAT硬件加速,但仅限于CRS3系列部分交换机(采用 Marvell 98DX8xxx 或 98DX3257 交换芯片)、CCR2116和CCR2216,当然这样的nat硬件加速并不是无限制的,也受到交换芯片内存大小影响,具体型号和参数如下:
型号 | 版本 | 路由条目 | 下一跳 | Fasttrack 1,2 | NAT |
CRS317-1G-16S+ | 7.2 | 150 – 240K | 8K | 4500 / 3750 3 | 8K 4 |
CRS309-1G-8S+ | 7.2 | 50 – 80K | 8K | 4500 / 3750 | 8K |
CRS312-4C+8XG | 7.2 | 50 – 80K | 8K | 2250 / 1500 | 8K |
CRS326-24S+2Q+ | 7.2 | 50 – 80K | 8K | 2250 / 1500 | 8K |
CRS354-48G-4S+2Q+ | 7.2 | 50 – 80K | 8K | 2250 / 1500 | 8K |
CCR2116-12G-4S+ | 7.2 | 16K – 30K | 8K | 2250 / 1500 | 8K |
CR2216-1G-12XS-2XQ | 7.2 | 80K – 120K | 8K | 4500 / 3750 | 8K |
- 当达到Fasttrack或NAT的HW会话限制时,超出的会话连接将回落到CPU,MikroTik的智能连接算法确保了流量最大的连接被加速到硬件处理
- Fasttrack连接与ACL规则共用HW内存。根据复杂度的不同,一条ACL规则可能会占用3-6条Fasttrack连接的内存。
- (MPLS 和Bridge Port Extender同时被禁用) / (MPLS和Bridge Port Extender两者都启用)。MPLS与Fasttrack连接共用HW内存。此外,启用MPLS需要分配一部分内存区域,否则可以多存储750个Fasttrack连接。这同样适用于Bridge Port Extender(桥接端口扩展器)。MPLS和Bridge Port Extended使用相同的内存区域,所以同时启用它们不会使Fasttrack连接的限制加倍。
- Fasttrack启用,但NAT条目无法全部使用是受限于Fasttrack连接数。
配置:
在/ip firewall filter下,可以为FastTrack规则设置hw-offload ,允许对连接卸载提供微调加速。由于Fasttrack连接的硬件内存非常有限,所以我们可以选择要加速的连接类型,从而从利用有限的硬件加速资源。下一个例子只加速TCP连接,而UDP报文通过CPU处理,不占用过多的硬件内存:
/ip firewall filter add action=fasttrack-connection chain=forward connection-state=established,related hw-offload=yes protocol=tcp add action=fasttrack-connection chain=forward connection-state=established,related hw-offload=no add action=accept chain=forward connection-state=established,related
三条规则,第一条protocol=tcp开启了hw-offload=yes,第二条默认的fasttrack设置hw-offload=no,最后一条是接受established,related,如果要加速tcp和udp,第一条规则不要,设置第二条的hw-offload=yes
在CRS326-24S+2Q+的实际测试发现,开启fasttrack的hw-offload,网络很多连接不上,不知道是否还存在bug没有修复,关闭fasttrack的hw-offload网络恢复正常,测试版本7.1.3。
后续:7.2.rc7再次测试效果比较理想,网页打开正常,迅雷下载测试300mbps左右,CPU负载在33%左右(CRS326-24S+2Q+ CPU性能和hAP lite相当):
测试配置和视频可以参考:CRS326-24S+2Q+RM FastTrack HW-Offload配置测试
这个功能仅限于部分CRS3系列、CCR2116和CCR2216,所以大部分设备是不支持Fasttrack的硬件加速,个人感觉这个功能在CRS3系列,还是CCR2116和CCR2216都有点不上不下,可能CRS317和CRS309使用会好点,支持的Fasttrack条目多一些。对于CCR2116和CCR2216来说,本来就是处理大流量的旗舰路由器,策略多,流量大,仅配置一个支持2250条的fasttrack交换芯片,CCR2216虽然支持条目数要多点,但RouterOS老司机应该知道在配置各种mangle或流控策略后fasttrack功能受限,可能还无法启用,nat硬件加速就变得有点鸡肋。
根据上面的测试情况看,个人感觉v7版本下,基于CRS326-24S+2Q+ 的QCA9531 650MHz单核心的CPU上开启FastTrack的HW-Offloading,跑300Mbps流量,CPU负载低于40%,在单出口接入的普通企业网络,是能提供足够的网络处理性能(没有复杂的流控和各种防火墙策略)。
对于CRS317的CPU是双核心的ARM,配合FastTrack的HW-Offloading,我觉得完全适合500M左右单线接入的小型办公网络,而且三层转发也支持硬件加速。也就是出口nat路由+三层交换+二层交换可以全干完!(没有复杂的流控和各种防火墙策略)