先看命中计数
ACL 从上到下匹配、命中即停,不生效多半是被更靠前的规则先匹配走了。排查的关键动作是看每条规则的命中计数:计数始终为零的规则说明报文根本没走到它,问题通常在上面那条范围更宽的规则上。
基本信息
| 适用平台 | 三厂设备通用 |
|---|---|
| 华为命令 | display acl 3000 / display acl all |
| 思科命令 | show ip access-lists 100 |
| H3C 命令 | display acl 3000 |
| 关键信息 | 每条规则的匹配计数 |
| 辅助核对 | 接口上实际引用的 ACL 与方向 |
典型使用场景
- 策略该拦的没拦、该放的没放
- 规则写对了但实际行为不符
- 确认接口上引用的到底是不是预期的 ACL
- 变更后核对策略是否真的生效
- 审计规则使用情况,清理长期零命中的历史规则
华为 VRP / H3C Comware
华为 VRP / H3C Comware
display acl 3000 # 规则顺序与匹配计数
display acl all # 查看设备上全部 ACL
display current-configuration | include acl # 核对接口引用关系
display traffic-filter applied-record # 华为:核对接口实际挂载的过滤策略思科 IOS
思科 IOS
show ip access-lists 100 # 规则与匹配计数
show ip access-lists | include matches # 只看计数行
show running-config | include access-list # 核对 ACL 定义
show ip interface GigabitEthernet0/1 # 核对接口引用与方向现象与核对动作
| 现象 | 可能原因 | 核对动作 |
|---|---|---|
| 某条规则计数为零 | 前面某条规则已先命中 | 按顺序逐条核对宽窄范围 |
| 接口下没有任何计数 | 策略没挂上或方向写错 | 核对接口引用与方向 |
| 计数增长但行为不符 | 协议或端口条件写错 | 核对协议关键字与端口条件 |
| 行为时好时坏 | 存在多条宽窄重叠的规则 | 收敛规则范围并统一顺序 |
匹配计数是顺序问题最直接的证据。排查时先看哪条规则在增长,再回头检查它前面是否有一条范围更宽的规则,问题通常就出在那个更宽的条件上,而不是你以为的那一条。
调整顺序前先读完整段 ACL。华为与 H3C 会提示未匹配的流量将被丢弃,思科末尾隐含拒绝;把兜底规则挪到前面会让整条策略语义反转,影响范围可能覆盖所有经过该接口的流量。
排查还要覆盖策略的作用面:同一台设备可能在不同接口、不同方向引用了多个 ACL,只查其中一个是常见误区。先确认流量实际经过的接口与方向,再看对应那份 ACL 的内容。