当前位置:首页 > Mikrotik RouterOS > 正文内容

MikroTik RouterOS 的 mangle 表中,规则是按顺序和passthrough的作用

oozj2周前 (05-20)Mikrotik RouterOS65

是不是可以这样理解 当前数据包在这个条目里 匹配到如源地址为 192.168.1.0/24的包 只有源地址为 192.168.1.0/24的包不继续执行了 其他没有被匹配的包则不受影响能进入下一个条目?

是的,你的理解是正确的!让我来进一步明确和总结一下:

在 MikroTik RouterOS 的 mangle 表中,规则是按顺序(从上到下)逐条匹配的。结合你提到的场景,以下是详细分析:

你的场景 假设第一条规则如下:

text

复制 /ip firewall mangle add chain=prerouting src-address=192.168.1.0/24 action=mark-connection new-connection-mark=lan_conn passthrough=no 规则行为: 如果数据包的源地址属于 192.168.1.0/24,它会匹配这条规则,执行动作(例如标记连接为 lan_conn),并且因为 passthrough=no,该数据包在当前链(例如 prerouting)的 mangle 表中会停止进一步匹配后续规则。 如果数据包的源地址不属于 192.168.1.0/24,它不会匹配这条规则,因此会继续进入下一条规则(例如你的第二条和第三条规则,passthrough=yes)进行匹配。 关键点 匹配到 passthrough=no 的数据包: 如果数据包满足第一条规则的条件(源地址为 192.168.1.0/24),它会被处理(例如标记为 lan_conn),然后在当前链的 mangle 表中停止处理,后续的规则(如第二条、第三条)不会被执行。 这意味着只有这些特定数据包(源地址为 192.168.1.0/24)会受到 passthrough=no 的限制。 未匹配的数据包: 如果数据包不满足第一条规则的条件(例如,源地址是 10.0.0.0/24),它不会被第一条规则处理,因此会继续按照顺序匹配后续规则(如你的第二条规则 dst-address=8.8.8.8 和第三条规则 dst-address=1.1.1.1)。 后续规则的 passthrough=yes 会让这些未匹配第一条规则的数据包继续在 mangle 表中处理,直到遇到另一条 passthrough=no 的规则或链结束。 举例说明 假设你的三条规则如下:

text

复制 /ip firewall mangle add chain=prerouting src-address=192.168.1.0/24 action=mark-connection new-connection-mark=lan_conn passthrough=no add chain=prerouting dst-address=8.8.8.8 action=mark-packet new-packet-mark=google_pkt passthrough=yes add chain=prerouting dst-address=1.1.1.1 action=mark-packet new-packet-mark=cloudflare_pkt passthrough=yes 数据包 A:源地址 192.168.1.10,目的地址 8.8.8.8。 匹配第一条规则(src-address=192.168.1.0/24),标记连接为 lan_conn,因为 passthrough=no,停止匹配后续规则,不会获得 google_pkt 标记。 数据包 B:源地址 10.0.0.10,目的地址 8.8.8.8。 不匹配第一条规则(src-address 不在 192.168.1.0/24),继续匹配第二条规则,标记数据包为 google_pkt,因为 passthrough=yes,继续检查第三条规则(但目的地址不匹配 1.1.1.1,所以第三条规则不执行)。 数据包 C:源地址 10.0.0.10,目的地址 1.1.1.1。 不匹配第一条规则,继续匹配第二条规则(目的地址不匹配 8.8.8.8),继续匹配第三条规则,标记数据包为 cloudflare_pkt,因为 passthrough=yes,继续检查后续规则(如果有)。

总结

你的理解完全正确:只有匹配第一条规则(src-address=192.168.1.0/24)的数据包会因为 passthrough=no 而停止在 mangle 表中的后续处理,不继续执行第二条和第三条规则。 其他数据包(不匹配第一条规则的) 不受 passthrough=no 的影响,会继续按照顺序匹配后续规则(第二条、第三条等),并根据这些规则的 passthrough=yes 继续处理,直到遇到 passthrough=no 或链结束。 建议:确保规则顺序符合逻辑需求,并使用 /ip firewall mangle print 检查计数器,确认哪些数据包匹配了哪些规则,以验证配置是否按预期工作。

扫描二维码推送至手机访问。

版权声明:本文由千城笔记发布,如需转载请注明出处。

本文链接:https://oozj.org/46.html

分享给朋友:

相关文章

RouterOS routing filters num-list CN-ASN

RouterOS routing filters num-list CN-ASN

/routing/filter/num-list add list="CN-ASN" range=140731 comment="TOHU Public Internet" add list="C...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。