别再死记硬背!图解华为ENSP中ACL的‘流量过滤’与‘接口方向’选择逻辑
华为ENSP实战:用收费站思维彻底掌握ACL流量控制逻辑
第一次在ENSP里配ACL时,我盯着inbound和outbound这两个选项发了半小时呆——明明规则写对了,为什么流量就是拦不住?直到把路由器想象成高速公路收费站,才突然开窍。本文将用数据包视角带你看懂ACL的部署玄机,从此告别死记硬背。我们会通过三个实际场景,拆解基本ACL与高级ACL的接口方向选择逻辑,就像交警指挥交通一样控制数据流向。
1. ACL的收费站模型:入站与出站的本质区别
把路由器接口想象成高速公路收费站通道,每个数据包都是待检查的车辆。入方向(inbound)相当于车辆进入收费站广场的入口,而出方向(outbound)则是车辆离开收费站驶向高速的闸口。这个比喻能解释90%的ACL部署困惑。
在华为设备上应用ACL时,需要明确两个关键维度:
- 检查点位置:决定在哪个"收费站"(路由器接口)设卡
- 检查方向:决定是检查"进入收费站的车辆"(inbound)还是"离开收费站的车辆"(outbound)
来看一个典型误配置案例:
# 错误配置:基本ACL应用在离目标最近的入方向 [R2]acl 2000 [R2-acl-basic-2000]rule deny source 192.168.1.0 0.0.0.255 [R2-GigabitEthernet0/0/1]traffic-filter inbound acl 2000这种配置会导致192.168.1.0网段完全无法访问任何网络,因为基本ACL只认源IP,会在数据包进入R2时无差别拦截。正确的姿势应该是:
# 正确配置:基本ACL应用在离源最近的出方向 [R2-GigabitEthernet0/0/1]traffic-filter outbound acl 2000基本ACL与高级ACL的部署对比表:
| ACL类型 | 过滤依据 | 最佳部署位置 | 推荐方向 | 类比 |
|---|---|---|---|---|
| 基本ACL | 仅源IP | 离目标最近的路由器 | outbound | 出口收费站抽查车牌 |
| 高级ACL | 五元组(IP/端口等) | 离源最近的路由器 | inbound | 入口安检仪全面检查 |
2. 实验拓扑中的ACL实战:四步定位法
现在用ENSP经典三段网络拓扑演示ACL部署(192.168.1.0/24 ↔ 100.1.1.0/24 ↔ 192.168.2.0/24)。假设要实现以下安全策略:
- 市场部(192.168.1.0/24)不能访问财务部(192.168.2.0/24)
- 市场部经理(PC1)只能TELNET到服务器,不能FTP
- 市场部员工(PC2)只能FTP到服务器,不能TELNET
步骤一:绘制流量路径图用ENSP的报文跟踪功能,标记出PC1访问SERVER1的完整路径:
PC1 → R1(g0/0/0 inbound) → R1(g0/0/1 outbound) → R2(g0/0/0 inbound) → R2(g0/0/1 outbound) → SERVER1步骤二:确定ACL类型
- 需求1涉及网段间隔离→ 基本ACL(2000系列)
- 需求2/3需要服务级控制→ 高级ACL(3000系列)
步骤三:选择检查点根据收费站原则:
- 基本ACL放在R2的g0/0/1接口出方向(离目标最近)
- 高级ACL放在R1的g0/0/0接口入方向(离源最近)
步骤四:编写规则
# 基本ACL实现网段隔离 [R2]acl 2000 [R2-acl-basic-2000]rule deny source 192.168.1.0 0.0.0.255 [R2-GigabitEthernet0/0/1]traffic-filter outbound acl 2000 # 高级ACL实现服务控制 [R1]acl number 3000 [R1-acl-adv-3000]rule deny tcp source 192.168.1.1 0 destination 192.168.3.1 0 destination-port eq 21 [R1-acl-adv-3000]rule deny tcp source 192.168.1.2 0 destination 192.168.3.1 0 destination-port eq 23 [R1-GigabitEthernet0/0/0]traffic-filter inbound acl 3000注意:华为ACL默认隐藏
permit any规则,实际相当于最后有一条允许所有的规则
3. 高级ACL的精准控制:协议栈深度解析
当需要实现"允许HTTP但禁止视频流量"这类精细控制时,高级ACL的协议识别能力就派上用场了。通过Wireshark抓包分析,可以发现不同类型流量的特征标识:
常见服务端口与协议对应表:
| 服务 | 协议 | 端口 | ACL匹配字段示例 |
|---|---|---|---|
| HTTP | TCP | 80 | destination-port eq 80 |
| HTTPS | TCP | 443 | destination-port eq 443 |
| FTP控制 | TCP | 21 | destination-port eq 21 |
| FTP数据 | TCP | 20 | destination-port range 20 21 |
| TELNET | TCP | 23 | destination-port eq 23 |
| ICMP | ICMP | - | protocol icmp |
例如要禁止PING但允许网页访问:
[R1]acl advanced 3001 [R1-acl-adv-3001]rule deny icmp source 192.168.1.0 0.0.0.255 [R1-acl-adv-3001]rule permit tcp source 192.168.1.0 0.0.0.255 destination-port eq 804. 故障排查三板斧:当ACL不生效时
即使老司机也会遇到ACL规则不生效的情况,分享三个实用排查技巧:
第一斧:检查ACL计数器
<R1>display acl 3000 Advanced ACL 3000, 2 rules Acl's step is 5 rule 5 deny tcp source 192.168.1.1 0 destination 192.168.3.1 0 destination-port eq ftp (3 matches) rule 10 deny tcp source 192.168.1.2 0 destination 192.168.3.1 0 destination-port eq telnet (0 matches)如果计数器始终为0,说明流量未命中该规则
第二斧:验证接口方向
<R1>display traffic-filter applied-record Interface GigabitEthernet0/0/0: Inbound: Acl 3000 (success)确认ACL确实应用在正确的接口和方向
第三斧:模拟流量测试在ENSP中使用ping和telnet命令模拟测试:
<PC1>telnet 192.168.3.1 Trying 192.168.3.1... Connected to 192.168.3.1! <PC1>ftp 192.168.3.1 Trying 192.168.3.1... Error: Connection timed out这个结果说明TELNET允许而FTP拦截的规则已生效
最后记住ACL的黄金法则:基本ACL远管出,高级ACL近管入。在真实项目中发现,90%的ACL问题都源于方向配置错误。建议在ENSP中多构建不同拓扑验证,培养对流量路径的直觉判断。
