NAT (Network Address Translation,网络地址转换)

NAT (Network Address Translation,网络地址转换)

文章目录

可以把NAT想象成一个大楼(局域网)的前台(路由器/防火墙)。大楼里的每个员工(内网设备)都有自己的内部分机号(私有IP地址),但对外联系时,统一使用公司的总机号码(公网IP地址)。前台负责接听和转接所有来电,并根据内部规则找到对应的员工。


什么是NAT?

NAT (Network Address Translation,网络地址转换) 是一种在数据包通过路由器或防火墙时,修改数据包中的源IP地址或目的IP地址的技术。通俗地说,它允许一个实体(如家庭路由器)使用一个公网IP地址,代表其背后的一群拥有私有IP地址的设备(如手机、电脑、平板)与互联网进行通信。

为什么需要NAT?------核心动机

  1. 缓解IPv4地址枯竭(最主要原因)

    • 公网IP地址:全球唯一,可以在互联网上直接访问。数量有限,非常宝贵。
    • 私有IP地址 :如 192.168.x.x10.x.x.x172.16.x.x。这些地址可以在任何局域网内重复使用,但不能在互联网上直接路由
    • NAT让整个局域网内的成百上千台设备,共享一个或少数几个公网IP地址上网,极大地节省了公网IP资源。
  2. 增强安全性

    • 从外部互联网来看,你的内网结构是完全不可见的。外部只能看到执行NAT的设备(如路由器)。它像一个屏障,默认情况下,外部主动发起的连接请求会被NAT设备拒绝或忽略,因为它不知道这个连接应该转给内网的哪台设备。这提供了基础的防火墙功能。

NAT的核心工作原理

NAT的核心是维护一张 NAT转换表 。这张表记录了内网设备(私有IP+端口)NAT设备出口(公网IP+端口) 之间的映射关系。

一个典型的家庭上网过程:

  1. 发起请求 :你的电脑(192.168.1.100: 12345)想访问一个网站(8.8.8.8: 80)。数据包发出,源IP/端口是 192.168.1.100: 12345,目的IP/端口是 8.8.8.8: 80

  2. 到达NAT设备:数据包首先到达你的家用路由器(NAT设备)。路由器检查数据包,发现它来自内网,要去外网。

  3. 转换与记录(关键步骤)

    • 记录 :路由器在自己的NAT转换表中记录下这条映射:(内网:192.168.1.100: 12345) <--> (外网:路由器公网IP: 25000)。这里的 25000 是路由器随机分配的一个未被占用的端口。
    • 转换 :路由器修改数据包的源IP地址 为自己的公网IP(比如 1.2.3.4),并修改源端口25000。然后,将这个转换后的数据包发送到互联网。
  4. 服务器响应 :目标服务器(8.8.8.8)收到请求后,将响应数据包发回给 1.2.3.4: 25000

  5. 接收与反向转换

    • 路由器收到来自服务器(8.8.8.8: 80)发往 1.2.3.4: 25000 的响应数据包。
    • 路由器查询NAT转换表,找到 1.2.3.4: 25000 对应的内网设备是 192.168.1.100: 12345
    • 反向转换 :路由器修改数据包的目的IP地址192.168.1.100目的端口12345
  6. 送达:转换后的数据包被正确发送回你的电脑。整个过程对电脑和服务器是透明的,它们都以为自己是在直接通信。


NAT的主要类型

根据转换方式的不同,NAT主要分为以下三种:

1. 静态NAT (Static NAT)
  • 方式:一个内网私有IP地址一对一地映射成一个公网IP地址。映射关系是固定的,手动配置的。
  • 特点:不节省公网IP,但允许外部设备通过这个固定的公网IP访问内网的特定设备(如公司服务器)。
  • 场景:需要对外提供服务的服务器。
2. 动态NAT (Dynamic NAT)
  • 方式:从NAT设备拥有的一组公网IP地址池中,动态地选择一个未被占用的公网IP,与一个内网私有IP建立临时的映射关系。
  • 特点:当会话结束时,映射关系被释放,公网IP可以给其他内网设备使用。在一定程度上节省了公网IP,但并发访问量超过公网IP数量时,后续设备无法上网。
  • 场景:内网设备数量不多,且公网IP地址池略大于并发访问需求的企业环境。
3. 网络地址端口转换 (NAPT / PAT) ------ 最常用的一种
  • 方式 :这是让成千上万台设备共享一个公网IP上网的核心技术。它不仅转换IP地址,还转换传输层的端口号
  • 特点
    • 通过区分端口号来唯一标识内网的不同设备和不同会话。
    • 即使多个内网设备访问同一个外网服务器的相同服务(如都访问百度的80端口),NAT设备也能通过为它们分配不同的源端口,来正确区分返回的数据包该转发给谁。
    • 这就是我们家庭宽带上网普遍使用的NAT方式。

重要概念:NAT穿透 (NAT Traversal)

这是NAT带来的一个副作用和解决方案。

  • 问题 :由于NAT设备的屏障作用,外网的设备无法主动向内网的设备发起连接。因为NAT表中没有预先建立好的映射关系,外网发来的数据包会被NAT设备丢弃。这在P2P(点对点)应用中(如在线游戏、BT下载、视频通话)是个大问题------两个都在各自内网里的设备如何直接通信?

  • 解决方案(NAT穿透)

    • 端口转发 (Port Forwarding) :在NAT设备上手动 配置一个固定的映射规则。例如,将外网IP的 3389 端口永远映射到内网某台电脑的 3389 端口。这样,外网主动访问 公网IP:3389 时,NAT设备就知道该转发给谁。但这需要手动配置,且不够灵活。
    • UPnP (通用即插即用):允许内网应用程序自动请求NAT设备为其打开一个端口并建立映射。比如游戏或BT软件可以自动完成配置,无需用户手动干预。但出于安全考虑,很多路由器默认关闭此功能。
    • STUN / TURN / ICE协议:这是更复杂的自动协商技术,被VoIP(如网络电话)、WebRTC(网页实时通信)等应用广泛使用。它通过一个公网服务器帮助两个内网设备"打洞",找到一条可以相互通信的路径。

NAT与IPv6

IPv6拥有几乎无限的地址空间,旨在让每一台设备都能拥有一个全球唯一的公网IP地址,从设计上"修复"NAT存在的必要性。

然而,由于NAT带来的"默认安全"特性,以及网络管理员和用户的使用习惯,即使在IPv6环境中,仍然存在类似NAT的技术(如NAT66,即IPv6到IPv6的网络地址转换),用于隐藏内部网络结构或简化网络重新编号的过程。但主流趋势是回归到端到端的直接连接。

总结

特性 描述
核心功能 通过修改IP包头中的地址信息,实现私有网络访问公共网络的能力。
主要动机 解决IPv4地址枯竭提供基础的安全屏障
核心技术 维护NAT转换表,记录(内网IP:端口)与(公网IP:端口)的映射关系。
最常用类型 NAPT/PAT,通过端口复用实现多设备共享一个公网IP。
主要问题 破坏了端到端的连接模型,导致外部无法主动访问内网设备,需要NAT穿透技术来解决。
未来趋势 IPv6旨在取代NAT,但由于惯性,NAT及其变种(如NAT66)可能仍会存在一段时间。
相关推荐
x-cmd2 小时前
Browser-Use:用自然语言控制浏览器,告别脆弱的自动化脚本
运维·ai·自动化·agent·浏览器·x-cmd
AC赳赳老秦2 小时前
软件组件自动化的革命:DeepSeek 引领高效开发新时代
运维·人工智能·算法·云原生·maven·devops·deepseek
之歆2 小时前
LVS 负载均衡完全指南
运维·负载均衡·lvs
Web极客码2 小时前
用 SSH Key 认证提升文件传输安全:SFTP/SSH 加固实战(适合站点运维与外贸站)
运维·安全·ssh
zhojiew2 小时前
在中国区EKS集群使用 kgateway 代理 Lambda 函数的实践过程
运维·envoy
Channing Lewis3 小时前
为什么部署的项目会耗尽系统句柄
服务器
KoiHeng3 小时前
网络原理相关内容(二)
网络
独行soc4 小时前
2026年渗透测试面试题总结-25(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
小李独爱秋4 小时前
模拟面试:什么是容器技术,Docker是什么?
运维·docker·容器·面试·职场和发展