ACL 决定哪些流量被转换
NAT 的源选择完全由 ACL 决定:命中的流量做地址转换,未命中的流量原样转发。做法是把需要上网的网段写成放行规则,把不需要转换的私网互访或特殊业务写进拒绝规则排除掉。三厂在这一点上逻辑一致,差异只在 ACL 的创建语法与缺省行为上——思科存在隐式拒绝,华为与 H3C 需要显式写规则。
基本信息
| 适用平台 | 三厂设备,源转换引用只匹配源地址的 ACL |
|---|---|
| 匹配内容 | 仅源地址,不属于需要判断目的与端口的场景 |
| 规则顺序 | 从上到下匹配,命中即决定是否转换 |
| 常见错误 | 用高级或扩展 ACL 去做源选择,部分平台语义不同 |
| 核对方式 | 查看规则的命中计数增长情况 |
典型使用场景
- 只让办公网段上网,服务器网段保持直连出口
- 排除私网互访流量,避免无谓的地址转换开销
- 为不同业务划分不同的出口地址范围
- 排查部分主机无法上网的问题时核对源选择范围
- 迁移配置时把旧设备的源选择规则重写到新平台
华为 VRP
华为 VRP
acl number 2000
rule 5 permit source 192.168.1.0 0.0.0.255 # 办公网段走转换
rule 10 permit source 192.168.2.0 0.0.0.255 # 第二个业务网段
rule 100 deny source 10.0.0.0 0.255.255.255 # 排除不需要转换的来源
interface GigabitEthernet0/0/1
nat outbound 2000
display acl 2000 # 看规则命中计数思科 IOS
思科 IOS
access-list 1 deny 10.0.0.0 0.255.255.255
access-list 1 permit 192.168.1.0 0.0.0.255
access-list 1 permit 192.168.2.0 0.0.0.255
! 末尾为隐式拒绝,未列出的来源不会被转换
show ip access-lists 1H3C Comware
H3C Comware
acl basic 2000
rule 5 permit source 192.168.1.0 0.0.0.255
rule 10 permit source 192.168.2.0 0.0.0.255
rule 100 deny source 10.0.0.0 0.255.255.255源选择 ACL 写法对照
| 对比项 | 华为 VRP | 思科 IOS | H3C Comware |
|---|---|---|---|
| ACL 类型 | 基本 ACL 编号 2000 到 2999 | 标准 ACL 编号 1 到 99 | acl basic 编号 2000 到 2999 |
| 放行写法 | rule 序号 permit source 地址 通配符 | permit 地址 通配符 | rule 序号 permit source 地址 通配符 |
| 排除写法 | rule 序号 deny source 地址 通配符 | deny 地址 通配符 | rule 序号 deny source 地址 通配符 |
| 缺省行为 | 需显式写规则 | 末尾隐式拒绝 | 需显式写规则 |
| 命中查看 | display acl 编号 | show ip access-lists 编号 | display acl 编号 |
配置要点
- 源选择用只匹配源地址的 ACL:写成能匹配端口的类型,在部分平台上会导致规则不命中
- 排除规则的位置很关键:把拒绝写在放行之前,会把整个范围排除在转换之外
- 规则尽量按网段成组书写,便于与地址规划表对照
- 改动后用命中计数确认规则生效,再观察业务侧是否恢复
- 终端新增网段时同步更新源选择规则,避免新网段上线后无法上网
常见疑问
- 为什么部分主机无法上网:先核对源选择 ACL 是否覆盖这些主机所在网段
- 排除某些来源用什么方式:在 ACL 中写入拒绝规则并确保顺序在放行之前
- 能同时引用多个 ACL 吗:一个接口方向通常引用一个,需要多个范围时合并到同一张表
- 改了 ACL 要不要重启或重新应用:规则改动立即生效,不需要重新下发引用命令
排除规则的顺序是这类配置的主要风险点:一条拒绝写在放行之前会把整个网段排除在转换之外,表现与上网权限被关闭完全一样,排查时优先核对规则顺序。
把源选择规则与地址规划表定期对照:办公网、服务器网段、访客网段的出口需求往往不同,一次性写好不等于长期有效,网络扩容后最容易遗漏更新。