ACL 方向怎么选
同一张 ACL 挂在接口的入方向还是出方向,效果完全不同:入方向在报文进入设备时立即过滤,省带宽也不受「本机产生流量」的影响;出方向只能过滤从该接口发出的穿越流量,无法处理设备自己产生的报文。通用原则是优先入方向——越靠近源端丢弃,越省转发资源,也越难被绕过。
基本信息
| 适用设备 | 三厂通用(华为 VRP / H3C Comware / 思科 IOS) |
|---|---|
| 华为挂载 | traffic-filter inbound 或 outbound acl 3000 |
| 思科挂载 | ip access-group 100 in 或 out |
| H3C 挂载 | packet-filter 3000 inbound 或 outbound |
| 推荐方向 | 优先入方向:早丢弃、省带宽、覆盖穿越流量 |
| 方向局限 | 出方向过滤不到设备自身产生的流量 |
典型使用场景
- 入口防攻击:在上行接口入方向丢弃源地址伪造或异常端口的报文
- 出站管控:只允许办公网访问特定服务,其余在出方向拒绝
- 服务器区保护:在服务器上行口入方向限制来源,减少无效流量穿到后端
- 排障对比:把同一 ACL 临时挂到另一方向验证效果,快速确认方向选得对不对
- 与 NAT 设备配合:确认 ACL 看到的是转换前还是转换后的地址,两端各挂一条对比最稳
华为 VRP
华为 VRP
interface GigabitEthernet0/0/1
traffic-filter inbound acl 3000 # 推荐:报文进入接口即过滤
traffic-filter outbound acl 3001 # 出方向只作用于从本接口发出的穿越流量
display current-configuration interface GigabitEthernet0/0/1
display acl 3000 # 用命中计数验证方向是否正确思科 IOS
思科 IOS
interface GigabitEthernet0/1
ip access-group 100 in # in 作用于进入接口的报文
ip access-group 101 out # out 只过滤从本接口发出的穿越流量
show ip interface GigabitEthernet0/1 | include access list
show ip access-lists 100H3C Comware
H3C Comware
interface GigabitEthernet1/0/1
packet-filter 3000 inbound
packet-filter 3001 outbound
display current-configuration interface GigabitEthernet1/0/1
display acl 3000出方向 ACL 过滤不到设备自身产生的流量:设备发起的 ping、SNMP 回应、路由协议报文都不经过接口出方向的过滤判定。要管控管理面流量,必须用 VTY 与 SNMP 自身的 ACL。
验证方向的实用手法:先看命中计数,再临时把 ACL 挂到相反方向对比效果。计数为零通常说明方向选错或地址写错,比逐条推演配置快得多。
同一张 ACL 挂在多个接口、多个方向后要留台账:变更时只改一处,容易造成「同一策略在某些链路上行为不同」,这类问题最难回溯。