华为/新华三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. 高级ACL (Advanced ACL, 3000-3999)
功能:等同于思科的扩展ACL。可根据源IP、目的IP、协议、源端口、目的端口等进行精细过滤。是企业网络中的绝对主力。
配置示例:允许内网访问外部Web和DNS,但禁止访问外部MySQL数据库。
1 |
|
注意事项:规则顺序至关重要!rule
后的编号(如5,10,15)决定了匹配顺序,编号越小优先级越高。
3. 二层ACL (Layer 2 ACL, 4000-4999)
功能:华为/华三特色功能。基于源/目的MAC地址、以太网协议类型等二层信息进行过滤。
配置示例:阻止来自特定MAC地址 aabb-ccdd-eeff
的所有流量。
1 |
|
4. 用户自定义ACL (User-defined ACL, 5000-5999)
功能:通过报文头偏移量进行比特位级别的高级匹配,用于过滤特定格式的协议报文。属于专家级功能。
配置示例:匹配IP报文头协议字段为1(ICMP)的报文。
1 |
|
四、高级ACL(3000系列)的核心:五元组语法详解
“五元组”是高级ACL进行精细流量控制的基石。华为的配置语法更显式,要求明确写出 source
、destination
、destination-port
等关键字。
通用命令语法格式
1 |
|
语法元素拆解与示例
语法元素 | 说明与可选值 | 华为/华三配置示例 |
---|---|---|
[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:允许来自任何地方的DNS查询请求(UDP 53)到达DNS服务器
1 |
|
场景3:允许管理员IP(172.16.1.100)远程管理所有服务器(10.0.0.0/24网段)的SSH服务
1 |
|
场景4:使用 established
关键字允许外部Web服务器返回的流量(TCP连接应答包)
1 |
|
注意:华为/华三使用 tcp-established
关键字来实现与思科 established
相同的功能。
五、总结与最佳实践
特性 | 基本ACL (2000-2999) | 高级ACL (3000-3999) | 二层ACL (4000-4999) |
---|---|---|---|
匹配依据 | 仅源IP | 五元组(源IP、目的IP、协议、端口) | 源/目的MAC地址 |
控制粒度 | 粗 | 细(绝对主力) | 特殊 |
规则管理 | 优(规则有序号,可编辑) | 优(规则有序号,可编辑) | 优(规则有序号,可编辑) |
企业应用 | 较少 | 强烈推荐 | 特定场景 |
黄金法则:
- 最小权限:只放行必要的流量。
- 精确优先:将最具体的规则放在前面(使用较小的
rule-id
)。 - 靠近源/目的:基本ACL近目的,高级ACL近源。
- 类型选择:根据需求选择正确的ACL类型,高级ACL 3000系列适用绝大部分场景。
- 先规划后配置:在文本编辑器里规划好
rule-id
和规则,再粘贴到设备。
六、配置Checklist & 常见错误
配置前 Checklist:
- 需求是否明确?(允许什么?拒绝什么?)
- 是否选择了正确的ACL类型?(基本、高级还是二层?)
-
rule-id
的顺序是否最优?(精确规则ID小) - 是否显式添加了
rule deny ip source any destination any
? - 通配符掩码计算是否正确?
- ACL应用的方向(
inbound
/outbound
)和接口是否正确?
常见错误:
- 错误1:在基本ACL(2000)中尝试配置目的端口或协议。
- 错误2:混淆接口应用方向,
inbound
和outbound
应用错误。 - 错误3:忘记了ACL末尾的隐式拒绝所有,导致预期外的流量被拒绝。
- 错误4:错误理解了通配符掩码,匹配了错误的IP范围。
- 错误5:在配置中遗漏了关键字,如
source
,destination
,destination-port
。华为语法要求更显式。