MikroTik生产Software-Baser路由器并由CPU接管大部分流量处理工作已不是什么秘密。 这种方法有一个优势,因为 您可以对几乎所有功能进行编程,并为所有设备维护一个相对统一的系统。 但是在速度上,它们将始终落后于具有专用芯片的路由器。
软件包处理有几个缺点:
- 线速不足-处理器(尤其是单核)的运行速度不能比专用芯片快。
- 锁 由于流量非常大(例如DoS / DDoS),即使通过控制台界面,您也可能无法连接到路由器,因为 所有处理器时间将被流量处理占用。
- 缩放的复杂性。 您不能添加可以提高硬件处理数据包速度的模块。
开发人员可以使用各种硬件和软件解决方案来改善这种情况:
- 低成本型号上的交换芯片使您能够绕过CPU处理第2层流量。
- 具有良好网络芯片的 SoC(CCR线)。
- 使用硬件加密
- 将讨论减少包的软件处理数量的各种技术(FastPath和FastTrack)。
SlowPath与FastPath
SlowPath是内部MikroTik子系统的基本通信路径,它可以是多种多样的,并且路径越长,CPU的负载越高,速度下降得越多。
FastPath-使您绕过相当大的处理单元传输流量的算法。
工作环境和设备支持
MikroTik的大多数现代路由器和板卡都支持FastPath,但是Wiki有详细列表:
型号 | 支持以太网接口 |
---|
RB6xx系列 | 醚1,2 |
大部分RB7xx系列 | 所有以太网端口 |
RB800 | 醚1,2 |
RB9xx系列 | 所有以太网端口 |
RB1000 | 所有以太网端口 |
RB1100系列 | 醚1-11 |
RB2011系列 | 所有以太网端口 |
RB3011系列 | 所有以太网端口 |
CRS系列路由器 | 所有以太网端口 |
CCR系列路由器 | 所有以太网端口 |
其他设备 | 不支援 |
以及非以太网接口的单独列表:
介面 | 快速路径支持 | 注意事项 |
---|
无线通讯 | 是的 |
桥牌 | 是的 | 从6.29开始 |
VLAN,VRRP | 是的 | 从6.30开始 |
粘接 | 是的 | 仅从6.30开始的RX流量 |
EoIP,GRE,IPIP | 是的 | 从6.33开始。 启用此选项后,并非所有隧道流量都将通过FastPath |
L2TP,PPPoE | 是的 | 从6.35开始 |
MPLS协议 | 是的 | 当前,MPLS快速路径仅适用于MPLS交换流量。 MPLS入口和出口将像以前一样运行。 |
其他 | 没有啦 |
FastPath需要完全支持入站和出站接口。 接口上仅应启用硬件队列。

最后,FastPath确实不喜欢分散的流量。 如果数据包被分段,则肯定会卡在CPU上。
FastPath和网桥
网桥是一种软件接口,用于在多个硬件(或软件)接口之间创建第2层通信。 如果在路由器的网桥中组合4个以太网接口(并启用hw=yes
)和一个无线网,则以太网接口之间的流量将绕过程序接口,而以太网和无线网之间的流量将使用软件桥。 在具有多个芯片的路由器(例如RB2011)上,来自不同芯片的接口之间的流量将使用软件桥接器的功能(有时,为减少负载,这些接口仅将跳线组合在一起,通常就可以使用)。
FatsPath-仅指通过CPU(软件桥)的流量,通常是来自不同芯片的接口之间的流量,或者禁用hw=yes
选项。
在数据包流上,通过网桥的流量如下:

以及更多详细信息:

它包含在网桥设置中(所有网桥接口的设置都相同)[Bridge]-> [Settings]-> [Allow FastPath],您还可以在其中看到计数器。

为了使FastPath在Bridge中工作,必须满足以下条件:
- 网桥接口上没有VLAN配置(我认为这与CRS系列无关,因为CRS系列是在硬件级别配置VLAN,但是我可能是错的)
/interface bridge filter
和/interface bridge nat
中没有规则,这些是帧通过的第二个电路中的相同块。- 未启用IP防火墙(
use-ip-firwall=no
)。 一个很好的功能,用于捕获流量和调试网络,但很少持续启用。 - 不要使用网格和元路由器
- 接口未运行:嗅探器,火炬和流量生成器。
FastPath和隧道
简而言之:隧道接口是将某些数据包封装到其他数据包的负载部分中。 如果沿着PacketFlow前进,则原始数据包会用红线标记,原始数据包封装在隧道协议数据包中(例如ipip或gre; eoip在桥接决策中获得(来自);隧道数据包仍然更有趣,但与快速路径)。

FastPath中的隧道流量在以下位置不可见:防火墙,队列,热点,vrf,ip记帐。 但是某些数据包将继续通过SlowPath传输,在配置防火墙时应考虑到这一点。
为了使FastPath在隧道接口中工作,必须满足以下条件:
- 不要使用ipsec加密
- 避免数据包分段(正确配置MTU)
- 在隧道接口上启用
allow-fast-path=yes
FastPath和Layer3
第3层是子网之间的数据包传输;路由器会建立路由表并将其转发到下一跳。
在数据包流上,网络层传输流量如下所示:

深入

甚至更深

要在Layer3上使用FastPath,必须满足以下条件:
- 请勿将规则添加到防火墙(甚至不添加任何规则)。
- 不要将条目添加到地址列表。
- 不要为
parent=global
或计划在其上获得可用的FastPath的接口配置简单队列和队列树。 - 不要使用网格和元路由器。
- 禁用连接跟踪器。 auto选项是专门为FastPath引入的,以便在防火墙中没有规则时起作用。
- 不要使用
/ip accounting
。 - 不要使用
/ip route vrf
。 - 不要配置
/ip hotspot
。 - 不要添加ipsec策略。
- 必须启用路由缓存。
- 不要主动使用:
/tool mac-scan
和/tool ip-scan
。 - 运行的嗅探器,火炬和流量生成器会干扰FastPath。
它包含在ip设置中:[IP]-> [Settings],在那里您还可以看到成功处理的数据包的计数器。

家用路由器的屏幕截图。 我有一个相当负载的防火墙,有几个永久启用的L2TP / IPSec连接和队列。 您甚至都无法梦想FastPath。
快速通道
ip数据包的标记技术,可快速通过数据包流。
为使FastTrack正常工作,必须遵守以下条件:
- 路由缓存和FastPath必须启用并处于活动状态。
- 流量标签的正确配置。
- 仅适用于UDP和TCP通信。
- 不要使用网格和元路由器。
- 不要主动使用:
/tool mac-scan
和/tool ip-scan
。 - 运行的嗅探器,火炬和交通生成器会干扰FastTrack。
标记为快速通道的流量将不会在以下位置处理:
- 防火墙过滤器(尽管这值得商bat,但我将在示例中说明原因);
- 防火墙损坏;
- 安全协议
- parrent =全局的队列;
- 热点
- VRF
如果某些东西干扰了通过快速通道的数据包,它将像所有其余数据包一样沿着慢速路径传输。
通过在防火墙中添加规则(请参见下文)来启用它。 FastTrack仅标记来自已建立连接的数据包(您可以标记新的,但是NAT会出现问题)。 使用过滤器表是因为 在预路由中标记快速通道时,NAT仍然会出现问题。
综合测试

快速路径 | 连接跟踪器 | NAT | 快速通道 | 速度 | 中央处理器 |
---|
-- | -- | -- | -- | 〜932Mb /秒 | 100%(网络,以太网) |
+ | -- | -- | -- | 〜923Mb /秒 | 65-75%(网络,以太网,未分类) |
+ | + | -- | -- | 〜680Mb /秒 | 100%(网络,防火墙,以太网) |
+ | + | + | -- | 〜393Mb /秒 | 100%(网络,防火墙,以太网) |
+ | + | + | + | 〜911Mb /秒 | 60-80%(网络,以太网,未分类) |
以及(对于最后一个测试)配置的内容及其工作方式:
过滤规则继续处理流量(如果您禁用允许建立的相关流量下降),未进入FastTrack的数据包将在路由后+混乱中被捕获。



在连接跟踪器中,您可以通过相同名称的标志跟踪FastTrack连接。

在[IP]-> [Settings]计数器中,您可以看到FastTrack处于活动状态并且可以正常工作,但是FastPath却没有。

/ip firewall filter add action=fasttrack-connection chain=forward connection-state=established,related add action=accept chain=forward connection-state=established,related add action=accept chain=forward connection-state=new add action=drop chain=forward /ip firewall mangle add action=mark-packet chain=postrouting connection-state=established,related new-packet-mark=q1 passthrough=no src-address=20.20.20.0/24 /ip firewall nat add action=masquerade chain=srcnat out-interface=ether1
而不是结论
使用与否?
- FastPath for Bridge-绝对可以。 至少可以减轻CPU的负担。
- 隧道的FastPath-否 它工作混乱,如果有加密,它会关闭。
- 第3层的FastPath-有争议的是,路由器的大多数功能都丢失了。 在大型的,封闭的,远离野外的互联网中,网络可以拥有自己的(小额)收益。
- MPLS / VLAN /绑定/ VRRP的FastPath-如果可能,自动启用。 没有单独的控制选项。
- FastTrack-适用于没有队列且偏执型防火墙的家庭和SOHO配置。 在一个客户端上进行综合测试看起来不错,实际上,您需要仔细监视通过FastTrack泄漏的流量并寻找原因。
附加链接
https://wiki.mikrotik.com/wiki/手册:Fast_Path
https://wiki.mikrotik.com/wiki/手册:IP / Fasttrack
http://mum.mikrotik.com/presentations/UA15/presentation_3077_1449654925.pdf