NAT 的分类与处理顺序
NAT 是改写报文地址端口的技术,按改写对象分三类:只改源地址的源 NAT(内网共享上网)、只改目的地址的目的 NAT(公网访问内网服务器)、同一连接两个方向都改写的双向 NAT。设备处理一条流量的顺序是:先查路由确定出接口,再做目的地址转换,然后做源地址转换,最后转发;返回流量按已建立的会话逆向改写。理解这个顺序,才能判断策略里的地址该写转换前还是转换后。
基本信息
| 源 NAT | 内网出公网时改写源地址,典型实现是地址池复用或接口地址复用 |
|---|---|
| 目的 NAT | 公网访问内网服务时改写目的地址,即端口映射或服务器发布 |
| 处理顺序 | 先路由 → 目的 NAT → 源 NAT → 转发,回程按会话表逆转换 |
| 关键判据 | 会话表里同时能看到转换前的原始地址与转换后的地址 |
| 查看命令 | display nat-policy rule all、display firewall session table |
典型使用场景
- 内网共享上网:大量私网地址复用少量公网地址,靠端口区分会话
- 服务器发布:把公网地址端口映射到内网真实主机的私有端口
- 内网互访时不做转换:VPN 与专线流量通过 no-nat 例外规则保持原始地址
- 排障溯源:通过 NAT 日志把攻击源公网地址端口还原到具体内网主机
- 多出口分流:不同出口使用各自运营商地址池,避免回程被丢弃
典型链路
典型链路
内网主机 192.168.10.10:50000
→ 边界设备命中目的 NAT(无)+源 NAT(地址池 202.1.1.10)
→ 互联网侧看到 202.1.1.10:随机端口
公网用户访问 202.1.1.20:443
→ 边界设备目的 NAT 改写为 192.168.20.10:8443
→ 回程按会话表反向改写为 202.1.1.20:443三类 NAT 对照
| 类型 | 改写对象 | 典型配置 | 验证方式 |
|---|---|---|---|
| 源 NAT | 源地址(可含端口) | nat-policy 中 action source-nat,或接口下 nat outbound | 会话表查看转换后源地址 |
| 目的 NAT | 目的地址(可含端口) | nat server,或 nat-policy 中 destination-nat | 外部访问可达且会话指向内网主机 |
| 双向 NAT | 源与目的同时改写 | 两条规则同时命中同一流量 | 两端核对,回程必须一致 |
落地与维护要点
- 先做地址规划:内网网段、公网地址池、服务器映射地址分别登记,避免互相占用
- 源 NAT 与安全策略成对配置,改动一处要同步核对另一处
- NAT 规则按「例外在前、通用在后」排序,no-nat 与专用池规则放在前面
- 地址池留余量:按并发会话峰值预留端口,接近水位先扩容而不是等故障
- NAT 日志与 NTP 同步一起上线,否则多设备地址溯源失去意义
同一连接的源与目的转换必须成对规划:只改去程不改回程,或两端地址规划冲突(例如两侧都使用 192.168.1.0/24),都会表现为单通或无回包。
NAT 与安全策略是两个独立配置面:策略负责放行,NAT 负责转换。改了 NAT 规则顺序后,已建立的会话仍按旧规则运行,需等待自然老化或人工清理再验证。
同一流量同时命中源与目的 NAT 规则即形成双向 NAT:两个方向的地址都要提前规划,否则回程改写结果与对端期望不一致,可能出现同一条连接一个方向正常、另一个方向无响应。