源 NAT 是什么
源 NAT 在私网访问外部网络时改写源地址,使内网主机可以共享出口公网地址上网。常见两种形态:一是地址池复用(多台内网主机共用一个或多个公网地址,靠源端口区分会话),二是接口地址复用(直接拿出口接口地址做转换)。它只负责地址转换,不负责访问控制:放行由安全策略决定,转换由 NAT 规则决定,任一侧缺失业务都不通。
基本信息
| 华为做法 | nat-policy 中 rule 使用 action source-nat 引用地址池,或 easy-ip 复用接口地址 |
|---|---|
| H3C 做法 | 出接口下 nat outbound 关联 ACL 与地址池;不指定地址池即用接口地址 |
| AF 做法 | 控制台 NAT 模块配置源地址转换策略,绑定出接口与地址池 |
| 生效前提 | 出向安全策略已放行,且设备上有到公网的默认路由 |
| 查看命令 | display nat-policy rule all、display firewall session table,核对转换后源地址 |
典型使用场景
- 办公网与服务器区共享出口公网地址访问互联网
- 按业务分配不同地址池,便于按运营商线路回程与审计
- 内网访问专线或 VPN 时使用 no-nat 例外,保持原始源地址
- 出口地址变化(拨号、动态地址)时用接口地址复用省去地址申请
- 故障期间临时切换到备用出口地址池,先恢复业务再优化
华为示例(V500 风格)
华为示例(V500 风格)
system-view
nat-policy
rule name snat-out # 命名体现出口方向
source-zone trust
destination-zone untrust
source-address 192.168.10.0 mask 255.255.255.0
action source-nat address-group natpool
quit
quitH3C 示例
H3C 示例
system-view
acl basic 2000 # 只匹配需要转换的内网网段
rule 0 permit source 192.168.10.0 0.0.0.255
quit
interface GigabitEthernet1/0/2 # 外网侧接口
nat outbound 2000 address-group 1
quit配置要素对照
| 要素 | 作用 | 写错的表现 |
|---|---|---|
| 匹配条件 | 限定哪些源地址做转换 | 范围过宽会把内网互访也转换 |
| 地址池 | 决定转换后的公网地址 | 池地址无运营商路由则回程到不了 |
| 出接口 | 决定从哪个出口转换转发 | 出口与池地址运营商不一致被丢弃 |
| 安全策略 | 决定流量是否被允许 | 只配 NAT 不放行等于白配 |
| 回程路由 | 决定响应报文能否回来 | 出得去回不来,表现为单通 |
排障与维护要点
- 先查会话再查规则:会话里转换后的源地址与预期不符,说明命中了另一条规则
- 核对规则顺序:例外规则(no-nat、专用池)要排在通用规则之前
- 检查地址池水位:高峰时段新增连接失败而老会话正常,多半是端口分配不足
- 确认反向路由:出接口上游设备必须有到地址池的回程路由
- 变更后复测:清理旧会话或用新的源地址重新发起连接再验证
源 NAT 与安全策略要同时存在:策略负责放行,NAT 负责地址转换。只配其一时现象不同(前者被丢弃,后者出得去回不来),但都表现为业务不可用。
ACL 或匹配范围写得过宽,会把内网之间的互访流量也做源转换,内网设备看到的源地址全部变成防火墙地址,日志与访问控制随之失真。
变更与核对清单
- 改动地址池或规则后清理旧会话,或换源地址重新发起连接再验证结果
- 核对地址池地址与出口线路的运营商归属是否一致
- 确认上游设备有到地址池的回程路由,避免只出回不来
- 记录源 NAT 规则与安全策略的对应关系,二者要成对变更
- 定期统计地址池端口使用率,接近水位先扩容而不是等故障