当前位置: 首页 > news >正文

网络地址转换(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综合起来。

图 总结

http://www.cnnetsun.cn/news/27527.html

相关文章:

  • kafka
  • 刘洋洋新歌《梁祝之三世约》上线,唱尽轮回绝恋
  • 一个完全本地运行的视频转文字工具:Vid2X
  • Java 开发最容易犯的 10 个错误
  • 用 Reader 建个私人图书馆,加上cpolar随时随地畅快阅读
  • 下一代盲盒系统核心架构解析:JAVA-S1如何打造极致公平与全球化体验
  • LangGraph深度解析:从图基础到人机交互的AI工作流框架实践
  • C++--
  • 算法练习4--数组:长度最小的子数组
  • Spring Cloud Gateway为什么要推出 WebMVC 版本?深度解析两大版本的差异与选型
  • git和github的区别
  • 小白从零开始勇闯人工智能Linux初级篇(MySQL库)
  • Bootstrap 模态框详解
  • MinerU终极安全离线部署指南:完全断网环境解决方案
  • 练题100天——DAY24:罗马数字转整数+环形链表+大小端判断
  • 网站域名:关键的战略资产
  • Airflow 做 ETL,真不是“排个 DAG 就完事儿”:那些年我踩过的坑与悟出的道
  • 数据库连接池监控最佳实践:用 Prometheus + Grafana 打造可视化监控体系
  • Windows验机
  • 别让孩子视力提早“透支” ,这份护眼指南请收好
  • 儿童青少年近视干预科学指引,破解家长近视防控焦虑
  • 解析 .NET 核心基石:CTS、CLS 与 CLR 的核心价值与协同作用
  • Selinux权限的检测
  • 常见报错org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): org.example.dem
  • 甲骨文AI投资支出激增致股价创24年最大跌幅
  • TinyMCE4粘贴word超链接自动解析域名
  • TinyMCE6处理微信公众号音频视频嵌入
  • 昇腾 Ascend 自定义算子开发全攻略:从 TBE DSL 到 AICPU,打通 AI 加速最后一公里
  • 当电机开始“唱歌“:NVH工程师的降噪日常
  • AI界的“经济适用男“!80亿参数小模型完胜GPT-5,成本降低70%,CSDN程序员必藏的智能调度方案