news 2026/6/10 9:31:31

网络地址转换(NAT)的场景分析及配置选用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
网络地址转换(NAT)的场景分析及配置选用

作者:chen-true@qq.com

仅供学习交流,如有错误恳请指出!

===========================================

一、NAT常见分类

根据设备实现和场景应用,NAT的分类方式有很多种。下面给出几种常见且工程上好用的分类方式(不同方式彼此正交,可组合出现,比如静态SNAT、动态SNAT、DNAT(端口映射)等)。

1)按改哪一边字段分类

·SNAT(Source NAT,源地址转换):在一次NAT处理过程中,修改报文的源IP(可选:同时修改源端口号)。典型场景:私网主动访问公网。

·DNAT(Destination NAT,目的地址转换):在一次NAT处理过程中,修改报文的目的IP(可选:同时修改目的端口号)。典型场景:服务发布/端口映射(公网主动访问私网)。

·Twice NAT/双向NAT:在一次NAT处理中,同时修改报文的源IP和目的IP(可选:同时修改源/目的端口号)。典型场景:重叠网段互访、特定安全/策略转发需求。

2)按是否改端口号分类

·地址转换(Basic NAT/Address-only NAT):在一次NAT处理过程中,仅修改报文IP(源/目IP),不修改端口号。常见于静态1:1地址映射、或仅做地址改写的场景。

·NAPT/PAT(端口复用/端口改写):在一次NAT处理过程中,既修改报文IP,也修改端口号。常见于多对一/多对少场景(依靠源端口复用区分不同连接);也可用于端口映射场景(改目的端口)。

注意:不同资料/厂商对PAT/NAPT/端口映射等术语存在混用。工程上常见的用法是:

·出网场景中,SNAT若伴随源端口复用/改写(多对一/多对少),常被称为SNAT + NAPT(或PAT);

·入站服务发布中,DNAT若伴随目的端口改写,通常直接称为端口映射(本质上仍属于DNAT的一种实现方式)。

与其纠结名词,不如明确NAT操作实际改写了哪些字段(源/目的IP、源/目的端口),这样才有助于我们把握住核心。

3)按映射关系分类(地址/端口怎么分配)

① 静态NAT(Static NAT):映射关系预先配置且长期固定。常见形态包括:

·静态SNAT(固定源地址映射):192.168.1.1 -> 203.0.113.1、192.168.1.2 -> 203.0.113.2。

·静态端口映射:203.0.113.1:80 -> 192.168.1.1:8080、203.0.113.1:2222 -> 192.168.1.2:22。

② 动态NAT(Dynamic NAT):映射关系在会话建立时从公网地址池临时分配,会话结束后回收;同一个私网地址在不同时间可能被映射为不同的公网地址。

例如:T1时刻192.168.1.1 -> 203.0.113.1,会话结束后回收;T2时刻同一主机可能被分配为192.168.1.1 -> 203.0.113.2。

说明:动态分配常见为“地址池1:1”,但当公网地址不足时,很多实现会进一步叠加端口复用,演化为“动态SNAT + NAPT”。

下面,我将针对不同的NAT应用场景,分析该选用何种NAT配置。

二、私网-公网(场景)

如下图所示,一台设备(A)位于私网内,另一台设备(B)位于公网内,现在两台设备需要互访。

图 拓扑

场景1:设备A主动访问设备B(私 -> 公)

先说结论:要想实现私网对公网的主动访问,需要在私网出口处配置NAT网关,进行SNAT(可叠加NAPT)。

原因:设备A的源地址是私网IP(如192.168.1.1),私网IP在公网上是不可路由的。设备A访问设备B时,虽然理论上去程报文能转发到公网甚至达到设备B(因目的IP是公网IP,可路由),但设备B的回包却无法根据路由到达设备A。

注意:现实里公网网络经常会直接丢弃源地址为私网IP的报文(源地址过滤/反欺骗),导致在实际网络中设备A的报文甚至到达不了设备B。

因此,必须在私网出口处部署NAT网关,由NAT网关把源私网地址改为公网可达地址,让公网设备的回包能回到该NAT网关,回包再由NAT网关依据会话/映射表还原并转回给私网设备。家庭/企业上网里几乎都是这种场景。

图 设备A主动访问设备B:SNAT

图 设备A主动访问设备B:SNAT + 源端口复用(NAPT)

注意:本场景中SNAT可采用静态方式(固定映射)或动态方式(地址池);当公网地址不足时常叠加源端口复用。

场景2:设备B主动访问设备A(公 -> 私)

公网主动连入私网,这在互联网业务里并不常见,但在运维/监控/远控等场景中很常见。

先说结论:要想实现公网对私网的主动访问,需要私网侧提供一个“公网入口(私网出口)”,在私网出口处配置NAT网关,进行DNAT(端口映射)。

原因:设备A使用私网IP,私网IP在公网上不可路由。公网设备B发起连接时只能访问私网出口的公网地址/端口(例如1.1.1.1)。报文到达NAT网关后,NAT网关将报文的目的地址/端口改写为设备A的真实私网地址/端口,再转发给设备A。

当设备A回包时,NAT网关会根据会话/映射表对回包进行反向改写,使公网设备B看到的通信对端始终是公网入口(公网IP:映射端口),从而保证连接闭环。

图 设备B主动访问设备A:DNAT

图 设备B主动访问设备A:端口映射

场景3:设备A/B不定时互相主动访问

如果两端都要“不定时互相主动访问”(A有时主动连B,B有时主动连A),则NAT网关需要同时配置:

·出方向的SNAT(必要时叠加源端口复用NAPT);

·入方向的DNAT(端口映射)。

相当于把本小节的场景1和场景2综合起来。

三、私网-公网-私网(场景)

如下图所示,两台设备(A/B)均位于私网内,通过公网相连,现在两台设备需要互访。

图 拓扑

场景1:设备A主动访问设备B

说明:在没有VPN/隧道的前提下,设备A访问设备B时应访问NAT网关B的公网入口(公网IP:端口),由网关B通过DNAT(端口映射)转入私网设备B。

因此需要:NAT网关A配置出方向的SNAT(可叠加源端口复用NAPT);NAT网关B配置入方向的DNAT(端口映射)。

图 设备A主动访问设备B:仅地址转换

图 设备A主动访问设备B:叠加端口转换

场景2:设备B主动访问设备A

说明:与场景1对称,设备B访问设备A时应访问NAT网关A的公网入口(公网IP:端口),由网关A通过DNAT(端口映射)转入私网设备A。

因此需要:NAT网关B配置出方向的SNAT(可叠加源端口复用NAPT);NAT网关A配置入方向的DNAT(端口映射)。

图 设备B主动访问设备A:仅地址转换

图 设备B主动访问设备A:叠加端口转换

场景3:设备A/B不定时互相主动访问

如果两端都要“不定时互相主动访问”,最典型的配置就是:

·两边NAT网关都要配置出方向的SNAT(必要时叠加源端口复用NAPT),让本端私网能出互联网、回包能回来;

·两边NAT网关都要配置入方向的DNAT(端口映射),让对端能“主动打进来”访问本端某个服务。

也就是说,每个网关同时承担“SNAT”和“DNAT”两种角色,相当于把本小节的场景1和场景2综合起来。

图 总结

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 19:49:04

意图识别深度原理解析:从向量空间到语义流形

1. 意图识别的数学本质 意图识别(Intent Recognition)在数学上是一个经典的**判别式模型(Discriminative Model)**问题。 给定一个自然语言输入序列 X{x1,x2,...,xn}X \{x_1, x_2, ..., x_n\}X{x1​,x2​,...,xn​},其…

作者头像 李华
网站建设 2026/6/10 7:26:58

Flink学习笔记:反压

今天来聊在 Flink 运维过程中比较常见的一个问题:反压。 什么是反压 反压是流式系统中关于数据处理能力的动态反馈机制,并且是从下游到上游的反馈,一般发生在上游节点的生产速度大于下游节点的消费速度的情况。 数据如何传输 在了解反压的细节…

作者头像 李华
网站建设 2026/6/10 11:27:27

C语言变量和算数操作符全解析1

创建变量 前文我们了解清楚了类型,其实类型就是用来创建变量的。 我们把C语言中经常变化的值称为变量,不变的值成为常量。 变量创建的语法形式:数据类型+变量名 并且,我们给创建的变量一个初始值(比如0…

作者头像 李华
网站建设 2026/6/9 15:04:49

Ascend C 高阶编程艺术:多核协同、流水线调度与异构任务编排实战

引言:从“单算子优化”到“系统级性能工程”在掌握 Ascend C 基础算子开发后,许多开发者会遇到新的瓶颈:即使单个算子已极致优化,端到端推理延迟仍不理想。问题往往出在 任务调度、数据流转、多核协作 等系统层面。昇腾 AI 处理器…

作者头像 李华
网站建设 2026/6/10 11:52:09

震惊!Linux开发板稳定性排行,这家竟碾压群雄!

Linux开发板稳定性排行揭晓,这家企业竟碾压群雄!在当今数字化浪潮中,Linux开发板作为嵌入式系统的核心组件,其稳定性直接关系到工业自动化、智能家居、物联网终端等关键应用的可靠性。市场上各类开发板品牌林立,性能参…

作者头像 李华
网站建设 2026/6/9 20:18:52

Day37 模型可视化与推理

一、模型可视化 1. nn.model自带的方法 # nn.Module 的内置功能,直接输出模型结构 print(model) MLP((fc1): Linear(in_features4, out_features10, biasTrue)(relu): ReLU()(fc2): Linear(in_features10, out_features3, biasTrue) ) # nn.Module 的内置功能&a…

作者头像 李华