华为 nat-policy 规则结构是什么
华为较新版本把源 NAT 与目的 NAT 统一收进 nat-policy 视图,规则结构与安全策略类似:用源/目的区域、源/目的地址、服务等条件匹配流量,动作描述如何转换。这样做的好处是转换逻辑与放行逻辑写法一致,便于按区域与业务成组维护;代价是规则顺序同样重要,例外规则写晚了就会被前面的通用规则匹配掉。
基本信息
| 规则要素 | 源/目的区域、源/目的地址、服务、时间段 |
|---|---|
| 常见动作 | action source-nat 地址池、easy-ip、no-nat、目的 NAT 相关动作 |
| 匹配方式 | 自上而下顺序匹配,命中即停 |
| 查看命令 | display nat-policy rule all,可核对顺序与命中计数 |
| 命名建议 | 体现方向与业务,例如 snat-office、dnat-web |
典型使用场景
- 内网出网上网:一条规则覆盖办公网段与全部互联网目的地
- 例外免转换:VPN 或专线目的地址使用 no-nat 保持原始地址
- 服务器发布:用目的 NAT 规则替代接口下的 nat server,统一在 nat-policy 中维护
- 分线路分流:不同源网段走不同地址池,与策略路由配合使用
- 排障核对:按规则命中计数确认流量实际走的是哪条转换规则
结构示例
结构示例
system-view
nat-policy
rule name snat-web # 通用上网规则
source-zone trust
destination-zone untrust
source-address 192.168.10.0 mask 255.255.255.0
action source-nat address-group natpool
quit
rule name no-nat-vpn # 例外规则:放在通用规则之前更稳妥
source-zone trust
destination-zone untrust
destination-address 10.200.0.0 mask 255.255.0.0
action no-nat
quit
quit
display nat-policy rule all # 核对顺序与命中情况no-nat 规则用于让特定目的流量不做转换(例如 VPN 内网互访),应放在通用转换规则之前,否则先命中的通用规则会把它转换掉,对端看到的是公网地址而非原始内网地址。
修改接口地址、地址池或规则引用关系时,旧的引用若不清理会出现转换异常;变更后清理旧会话或换源地址重新发起连接,再确认转换结果。
编写与核对要点
- 命名体现方向与业务,例如 snat-office、dnat-web,便于按名排查
- 例外规则排在通用规则之前,避免被提前匹配
- 改动后核对会话中转换后的地址与端口,而不是只看配置是否存在
- 规则与安全策略成对变更,只改一侧会出现改完仍不通的情况