华为交换机流策略匹配逻辑

 

在华为交换机的流策略(Traffic Policy)中,最终决定“允许”还是“拒绝”的,是“流行为(Traffic Behavior)”中的动作。ACL规则中的permit/deny,只决定“这个流量是否匹配本分类”,不直接决定最终是否转发。


不同场景匹配结果

场景 ACL规则 流行为动作 最终结果 原因
场景1 deny permit ✅ 允许 ACL deny 表示“不匹配”本分类,流量跳过此策略,不执行该行为。若后续有其他策略或默认路由,则正常转发。
场景2 deny deny ✅ 允许(但不会执行deny动作) 同上,ACL deny 让流量根本不进入该分类,行为不生效。流量继续匹配后续策略或走普通转发。
场景3 permit permit ✅ 允许 ACL permit 表示“匹配”本分类,执行行为中的permit,流量被允许通过。
场景4 permit deny ❌ 拒绝 ACL permit 表示“匹配”本分类,执行行为中的deny,流量被丢弃。

核心结论

  • ACL中的permit = 进入这个分类,ACL中的deny = 不进入这个分类

  • 流行为中的permit = 转发,流行为中的deny = 丢弃


深度解析:华为流策略的两层匹配机制

为了更好地理解,我给您拆解一下华为的处理流程:

具体流程

  1. 第一层判断(流分类):使用ACL匹配流量。

    • ACL permit → 匹配成功,进入此分类。

    • ACL deny → 匹配失败,不进入此分类(流量继续匹配后面的策略,或走普通路由转发)。

  2. 第二层判断(流行为):对已经进入分类的流量执行动作。

    • Behavior permit → 允许该流量通过。

    • Behavior deny → 丢弃该流量。


实际配置中的常见用法

用法一:白名单(只允许特定源,其他拒绝)

acl 3000
 rule permit ip source 192.168.1.100 0    # 允许的源进入分类
 rule deny ip source any                  # 这行其实不需要,ACL末尾隐含deny all

traffic classifier c1
 if-match acl 3000

traffic behavior b1
 permit                                    # 允许通过

traffic policy p1
 classifier c1 behavior b1                 # 匹配ACL 3000的流量放行
                                            # 未匹配的流量(隐含deny)不进入分类,最终被默认丢弃

注意:ACL末尾默认deny all,不匹配的流量不会进入分类,流策略的默认行为也是丢弃未匹配流量,所以最终效果=白名单。

用法二:黑名单(只禁止特定IP,其他允许)

acl 3000
 rule deny ip source 192.168.1.100 0      # 想禁止的源
 rule permit ip source any                # ⚠️ 这条必须有,让其他流量进入分类

traffic classifier c1
 if-match acl 3000

traffic behavior b1
 deny                                      # 丢弃

traffic policy p1
 classifier c1 behavior b1                 # ACL匹配到的(包括deny和permit规则)都进入分类
                                            # 执行deny动作,全部丢弃 ❌ 这是错的!

这样配置是错的! 因为ACL中的deny规则和permit规则都会让流量进入分类,然后统一执行deny,导致所有流量都被丢弃。

正确的黑名单配置应该是:

acl 3000
 rule deny ip source 192.168.1.100 0      # 要禁止的源

# 不要在策略中放行其他流量,而是在接口上不应用策略,或应用更宽松的策略
# 或者在ACL中将黑名单流量用deny规则匹配后,不进入任何策略,直接走默认转发

实际上,纯粹的黑名单通常用traffic-filter更简单:

acl 3001
 rule deny ip source 192.168.1.100 0
 rule permit ip source any                # 允许其他所有流量通过

interface GigabitEthernet 0/0/1
 traffic-filter inbound acl 3001          # 直接过滤

记忆口诀

ACL决定是否进门,行为决定进门后是请坐还是赶走。

  • permit = 请进门

  • deny = 不让进门(直接跳过)

  • Behavior permit = 进门后请坐(允许)

  • Behavior deny = 进门后赶走(丢弃)


总结表格(速查)

ACL规则 流行为 结果 适用场景
permit permit 允许 白名单:只允许特定流量
permit deny 拒绝 精细化过滤:匹配特定流量后丢弃
deny permit 允许(不匹配该策略) 用于排除某些流量,不让其进入本策略
deny deny 允许(不匹配该策略) 同上面,deny在ACL层就跳过了
上一篇 防火墙直连与旁挂部署差异
Tree Hole

Tree Hole管理员

何须多虑盈亏事,人生小满胜万全。

本月创作热力图

目录