ACL全称 Access Control List访问控制列表。一句话概括网络设备上一组有序的匹配规则用来给流量“分类”。它本身不决定放行还是丢弃真正执行动作的是引用它的模块接口过滤、NAT、路由策略等。这篇把 ACL 的原理、通配符计算和配置思路一次讲清楚。1. 什么是 ACLACL 就是一组按顺序排列的规则每条规则描述一种流量特征源地址、目的地址、端口、协议等报文进来后跟这些规则逐条比对命中哪条就按哪条处理。它只负责“匹配”不负责“执行”。同一份 ACL 被不同模块引用规则的含义还不一样接口流量过滤traffic-filterpermit放行deny丢弃QoS 流策略traffic classifierpermit分类成功进队列打标记路由策略route-policy / filter-policypermit/deny 只是匹配条件动作在模块里另配NATnat outboundpermit允许做地址转换2. 为什么需要 ACL企业网络里对流量做管控ACL 基本是唯一选择主要解决三件事安全管控只让某些网段访问服务器其他一律拒绝防止内网横向渗透节省带宽比如视频流量只在上班时间放行非工作时间直接拦掉配合其他模块NAT 要转换哪些地址、QoS 要识别哪类流量都要靠 ACL 先“圈”出来华为设备上ACL 属于 HCIA 必考内容也是日常排障绕不开的工具。3. 匹配流程逐条、命中即停报文进设备后ACL 从编号最小的规则开始逐条比对一旦命中立即停止后面的规则不再检查。三个关键点规则顺序由编号决定rule 5、rule 10不是配置先后没命中任何规则时动作取决于引用模块的默认策略接口过滤默认放行路由策略默认不放行所以高级 ACL 末尾几乎都要加一条 deny ip 兜底把规则外的流量显式拒绝否则会被默认放行漏过去4. 通配符到底怎么算通配符是 32 位反掩码0必须匹配1可以忽略跟子网掩码逻辑正好相反。最常用的换算通配符 255.255.255.255 - 子网掩码。匹配 /24 网段掩码 255.255.255.0通配符 0.0.0.255精确匹配一台主机通配符 0.0.0.0也可以直接写 host 10.0.0.10匹配所有地址通配符 255.255.255.255等价于 any进阶通配符可以不连续。0.0.0.254 最后一位是 0 必须匹配、倒数第二位是 1 忽略所以它匹配所有“末位为 0”的 IP也就是偶数地址。排障偶尔能见到理解原理就行。5. ACL 的分类选对编号段华为设备按编号段区分 ACL 类型配置前先想清楚要匹配什么基本 ACL 2000-2999只匹配源 IP够用但不精细高级 ACL 3000-3999匹配五元组 TCP 标志位 时间范围绝大多数场景用它二层 ACL 4000-4999匹配 MAC、802.1p 优先级二层流量控制用记法只限源网段用基本涉及目的、端口、协议一律高级做 MAC 管控用二层。高级 ACL 还能用 tcp-flag 匹配 TCP 标志位比如只放行带 SYN 标志的报文考试常考。6. 配置实操一个完整场景场景生产区 192.168.10.0/24 只允许访问服务器 10.0.0.10 的 80、443 端口其余流量全拒而且只在上班时间周一至周五 08:00-18:00开放。system-view acl number3000rule5permit tcpsource192.168.10.00.0.0.255 destination10.0.0.100.0.0.0 destination-port eq80rule10permit tcpsource192.168.10.00.0.0.255 destination10.0.0.100.0.0.0 destination-port eq443rule15denyipquit time-range work-time 08:00 to18:00 working-day acl number3001rule5permit tcpsource192.168.10.00.0.0.255 destination10.0.0.100.0.0.0 destination-port eq80time-range work-time quit interface GigabitEthernet0/0/1 traffic-filter inbound acl3000quit四个要点destination-port 用 eq 表示精确端口支持 range 做端口段比如 1000 to 2000rule 15 deny ip 是兜底永远别省——没有它规则外的流量默认放行time-range 是独立对象先用 time-range 命令定义再在规则里引用接口挂 ACL 的方向选 inbound从生产区进来的流量先过 ACL回包走 outbound 一般不用再配同一份 ACL 还能给 NAT 用nat outbound3000address-group1在 NAT 里ACL 3000 的 permit 含义变成“允许做地址转换”一份 ACL 多处引用各模块各取所需。7. 实验思路实验里就是标准的“创建高级 ACL 接口挂 traffic-filter time-range 限时 NAT 复用”套路。做实验时重点验证规则外流量被 deny ip 兜底拦掉通配符写反的网段放不出去非工作时段流量被 time-range 拦掉或者用 undo time-range 验证放开同一份 ACL 挂到 NAT 后 permit 变成地址转换不挂 ACL 的网段不做转换8. 结尾ACL 是 HCIA 里性价比很高的一块原理不深但项目基本上都会用。踩过最多的坑就是通配符和掩码填反、忘了末尾 deny 兜底、ACL 没挂到接口上。先记住“ACL 只匹配、动作在模块”就不会乱。后面可以把 ACL 配合 NAT、DHCP 一起看那才是完整的园区网。
阅读完成 · 觉得有帮助?