第一次接触华为设备的ACL配置时,我被那些专业术语搞得晕头转向。后来在实际项目中摸爬滚打才发现,ACL本质上就是个"交通警察",负责检查网络数据包的"身份证"。华为设备的ACL(访问控制列表)主要分为四大类型:
实际配置时有个容易踩坑的细节:规则编号间隔最好设为5或10。比如第一条规则设为5,第二条设为10。这样后期需要插入新规则时,就不需要重新调整整个ACL序列。我在某次紧急变更时就因为规则编号连续设置,导致插入新规则时整个ACL顺序错乱,引发全网断网事故。
在eNSP模拟环境中测试Serial接口ACL时,我发现个奇怪现象:同样的ACL规则在以太网口正常,但在Serial口就失效。经过抓包分析才发现,华为设备对Serial接口的处理有特殊机制:
实测有效的配置模板:
bash复制interface Serial1/0/0
link-protocol ppp
clock rate 64000
traffic-filter inbound acl 3000
特别提醒:在真实设备上部署前,务必用display acl 3000命令确认规则是否被正确加载。有次我在客户现场就遇到配置保存后未生效的情况,最后发现是ACL规则超过了硬件规格限制。
华为文档里关于ACL默认规则的描述看得人头疼,我总结出几个实战经验:
最坑的是不同型号设备表现还不一致。有次在S5700交换机上配置的ACL,迁移到AR路由器上就失效了。后来抓包发现是默认规则差异导致的,解决方案是在ACL最后显式添加:
bash复制rule 100 deny ip
建议在复杂环境中,无论是否需要都显式配置默认规则。这个习惯帮我省去了至少50%的ACL排障时间。
华为设备对inbound和outbound流量的处理差异,可以用"海关检查"来类比:
这个特性导致一个常见误区:用outbound ACL想阻断本地Ping测试总是失败。正确做法是配合防火墙策略:
bash复制acl number 3000
rule 5 deny icmp
firewall packet-filter 3000 inbound
在核心交换机部署时,还要注意硬件转发和软件转发的区别。有次在CE12800上配置ACL限速不生效,后来发现需要额外开启:
bash复制traffic behavior test
car cir 1000
statistics enable
新手常纠结该用哪种ACL应用方式,我的选择标准是:
曾经有个园区网项目需要同时实现限速和重标记,用traffic-policy的完整配置:
bash复制acl advanced 3000
rule 10 permit tcp destination-port eq 80
traffic classifier HTTP_CLASS operator or
if-match acl 3000
traffic behavior HTTP_BEHAVE
remark dscp af11
car cir 5000
traffic policy HTTP_POLICY
classifier HTTP_CLASS behavior HTTP_BEHAVE
interface GigabitEthernet0/0/1
traffic-policy HTTP_POLICY inbound
关键点在于behavior里的car和remark可以叠加使用,这在视频会议QoS保障中特别有用。
在给某银行做数据中心迁移时,遇到个诡异问题:ACL规则明明正确,但总有零星丢包。最后发现是TCAM资源不足导致的,解决方案:
另一个经典案例是ACL时间范围失效。配置了time-range的ACL在非指定时间居然也生效!根本原因是没配置:
bash复制clock timezone Beijing add 08:00:00
clock datetime 12:00:00 2023-08-01
建议每个ACL配置完成后都执行:
bash复制display acl all
display traffic-applied policy
在SDN混合组网环境中,传统ACL配置方式会遇到挑战。我的解决方案是:
bash复制acl number 3000
rule 10 permit ip source 192.168.1.0 0.0.0.255 destination 10.0.0.0 0.255.255.255
rule 20 permit ip source 172.16.0.0 0.0.255.255 destination 10.0.0.0 0.255.255.255
interface Vlanif100
traffic-filter inbound acl 3000
bash复制acl number 4000
rule 5 deny 8021q 100
rule 10 deny 8021q 200
interface GigabitEthernet1/0/1
traffic-filter inbound acl 4000
bash复制acl ipv6 name IPV6_TEST
rule permit ipv6 source 2001:db8::/32 destination 2001:db8:1::/48
interface Tunnel0/0/1
traffic-filter inbound acl name IPV6_TEST
在配置超过50条规则的ACL时,建议先用Excel规划好规则优先级和匹配频率,再用文本编辑器批量生成配置脚本。这个方法让我的配置效率提升了3倍以上。