华为/新华三ACL核心笔记

本文最后更新于 2025年9月10日 上午

华为/新华三ACL核心笔记

一、ACL核心思想:网络的“门卫”

华为/新华三的ACL与思科/锐捷核心思想完全一致,是网络流量的“门卫”。它根据预定义的规则,对数据包进行“你是谁?(源IP)”、“你要去哪?(目的IP)”、“你去干什么?(协议/端口)”的盘问,并决定放行(permit)或阻拦(deny)。

  • 工作原理:自上而下,逐条匹配,一旦匹配成功就立刻执行动作,并停止后续匹配。
  • 默认规则:所有ACL末尾都有一条看不见的 rule deny ip source any destination any,即“默认禁止所有”。

二、通配符掩码(反掩码):华为/华三的“模糊匹配”技巧

华为/新华三设备使用通配符掩码,其含义和功能与思科/锐捷完全一致0表示需匹配,1表示不关心。

例子 通配符掩码 解释 等效写法
192.168.1.1 0 0 匹配唯一的主机 192.168.1.1 source 192.168.1.1 0
192.168.1.0 0.0.0.255 0.0.0.255 匹配 192.168.1.0 网段的所有主机
0.0.0.0 255.255.255.255 255.255.255.255 匹配任何IP地址 any

三、ACL类型详解与实战配置

华为/新华三的ACL体系采用**“类型驱动”** 的严格分类,每种类型有固定的编号范围,功能划分非常清晰。

1. 基本ACL (Basic ACL, 2000-2999)

功能:等同于思科的标准ACL。仅根据源IP地址进行过滤。
配置示例:允许内网(192.168.1.0/24)上网,禁止其他所有流量。

1
2
3
4
5
6
// 创建基本ACL 2000
acl number 2000
rule 5 permit source 192.168.1.0 0.0.0.255 // rule 5为规则编号,可自定义
// 应用ACL:通常应用在离“目的地”近的接口入方向(inbound)
interface GigabitEthernet0/0/1
traffic-filter inbound acl 2000

注意事项:控制粒度粗,放置在离源太近的地方可能会误伤其他合法流量。

2. 高级ACL (Advanced ACL, 3000-3999)

功能:等同于思科的扩展ACL。可根据源IP、目的IP、协议、源端口、目的端口等进行精细过滤。是企业网络中的绝对主力。
配置示例:允许内网访问外部Web和DNS,但禁止访问外部MySQL数据库。

1
2
3
4
5
6
7
8
9
10
// 创建高级ACL 3000
acl number 3000
rule 5 permit tcp source 192.168.1.0 0.0.0.255 destination any destination-port eq 80
rule 10 permit tcp source 192.168.1.0 0.0.0.255 destination any destination-port eq 443
rule 15 permit udp source any destination any destination-port eq 53
rule 20 deny tcp source any destination any destination-port eq 3306
rule 25 permit ip source any destination any // 显式允许其他所有流量
// 应用ACL:通常应用在离“源”近的接口出方向(outbound)
interface GigabitEthernet0/0/2
traffic-filter outbound acl 3000

注意事项:规则顺序至关重要!rule 后的编号(如5,10,15)决定了匹配顺序,编号越小优先级越高。

3. 二层ACL (Layer 2 ACL, 4000-4999)

功能:华为/华三特色功能。基于源/目的MAC地址、以太网协议类型等二层信息进行过滤。
配置示例:阻止来自特定MAC地址 aabb-ccdd-eeff 的所有流量。

1
2
3
4
5
6
7
// 创建二层ACL 4000
acl number 4000
rule 5 deny dest-mac aabb-ccdd-eeff ffff-ffff-ffff // 目的MAC匹配
rule 10 permit
// 应用ACL
interface GigabitEthernet0/0/3
traffic-filter inbound acl 4000

4. 用户自定义ACL (User-defined ACL, 5000-5999)

功能:通过报文头偏移量进行比特位级别的高级匹配,用于过滤特定格式的协议报文。属于专家级功能。
配置示例:匹配IP报文头协议字段为1(ICMP)的报文。

1
2
acl number 5000
rule 5 permit ip-head 8 1 0x01 0xff // 匹配协议字段为1

四、高级ACL(3000系列)的核心:五元组语法详解

“五元组”是高级ACL进行精细流量控制的基石。华为的配置语法更显式,要求明确写出 sourcedestinationdestination-port 等关键字。

通用命令语法格式

1
rule [rule-id] permit/deny [protocol] source {src-addr wildcard} [src-port op port] destination {dest-addr wildcard} [dest-port op port]

语法元素拆解与示例

语法元素 说明与可选值 华为/华三配置示例
[protocol] ip, tcp, udp, icmp, gre permit tcp ...
source {src-addr wildcard} 定义源IP地址范围,必须带 source 关键字 source 192.168.1.0 0.0.0.255
[src-port op port] 可选。定义源端口,运算符:eq, gt, lt, range source-port eq 80
destination {dest-addr wildcard} 定义目的IP地址范围,必须带 destination 关键字 destination any
[dest-port op port] 可选。定义目的端口,运算符同上。 destination-port eq 443

综合配置示例与场景解读

场景1:允许内网用户访问外部所有Web服务(HTTP/HTTPS)

1
2
3
acl number 3001
rule 5 permit tcp source 192.168.1.0 0.0.0.255 destination any destination-port eq 80
rule 10 permit tcp source 192.168.1.0 0.0.0.255 destination any destination-port eq 443

场景2:允许来自任何地方的DNS查询请求(UDP 53)到达DNS服务器

1
2
acl number 3002
rule 5 permit udp source any destination 192.168.1.53 0 destination-port eq 53

场景3:允许管理员IP(172.16.1.100)远程管理所有服务器(10.0.0.0/24网段)的SSH服务

1
2
acl number 3003
rule 5 permit tcp source 172.16.1.100 0 destination 10.0.0.0 0.0.0.255 destination-port eq 22

场景4:使用 established 关键字允许外部Web服务器返回的流量(TCP连接应答包)

1
2
acl number 3004
rule 5 permit tcp source any destination 192.168.1.0 0.0.0.255 tcp-established

注意:华为/华三使用 tcp-established 关键字来实现与思科 established 相同的功能。


五、总结与最佳实践

特性 基本ACL (2000-2999) 高级ACL (3000-3999) 二层ACL (4000-4999)
匹配依据 仅源IP 五元组(源IP、目的IP、协议、端口) 源/目的MAC地址
控制粒度 细(绝对主力) 特殊
规则管理 优(规则有序号,可编辑) 优(规则有序号,可编辑) 优(规则有序号,可编辑)
企业应用 较少 强烈推荐 特定场景

黄金法则

  1. 最小权限:只放行必要的流量。
  2. 精确优先:将最具体的规则放在前面(使用较小的 rule-id)。
  3. 靠近源/目的:基本ACL近目的,高级ACL近源。
  4. 类型选择:根据需求选择正确的ACL类型,高级ACL 3000系列适用绝大部分场景。
  5. 先规划后配置:在文本编辑器里规划好 rule-id 和规则,再粘贴到设备。

六、配置Checklist & 常见错误

配置前 Checklist:

  • 需求是否明确?(允许什么?拒绝什么?)
  • 是否选择了正确的ACL类型?(基本、高级还是二层?)
  • rule-id 的顺序是否最优?(精确规则ID小)
  • 是否显式添加了 rule deny ip source any destination any
  • 通配符掩码计算是否正确?
  • ACL应用的方向(inbound/outbound)和接口是否正确?

常见错误:

  • 错误1:在基本ACL(2000)中尝试配置目的端口或协议。
  • 错误2:混淆接口应用方向,inboundoutbound 应用错误。
  • 错误3:忘记了ACL末尾的隐式拒绝所有,导致预期外的流量被拒绝。
  • 错误4:错误理解了通配符掩码,匹配了错误的IP范围。
  • 错误5:在配置中遗漏了关键字,如 source, destination, destination-port。华为语法要求更显式。

华为/新华三ACL核心笔记
https://xinhaojin.github.io/2025/09/10/华为新华三ACL核心笔记/
作者
xinhaojin
发布于
2025年9月10日
许可协议