互联网地址转换(NAT)
字数 1993 2025-12-10 18:18:28
互联网地址转换(NAT)
-
基础概念与背景
- 定义:网络地址转换是一种在IP数据包通过路由器或防火墙时,修改其源或目标IP地址的技术。最核心、最常见的功能是将一个私有网络内部的多个设备的“私有IP地址”,转换成一个或多个对公共互联网可见的“公共IP地址”。
- 核心驱动力:其诞生主要为了解决IPv4地址枯竭问题。全球可用的公共IPv4地址(约42.9亿个)远少于全球联网设备数量。NAT允许多个设备共享一个公共IP地址上网,极大地缓解了地址压力。
- 私有地址空间:为配合NAT,IANA预留了三个IP地址段供私有网络内部无偿使用,这些地址在互联网上不可路由。它们是:10.0.0.0 – 10.255.255.255(A类), 172.16.0.0 – 172.31.255.255(B类), 192.168.0.0 – 192.168.255.255(C类)。你家庭或办公室路由器内网的设备通常就使用这些地址。
-
基本工作原理(以最常见的“源NAT/出站NAT”为例)
- 场景:内网一台电脑(私有IP:192.168.1.100)要访问一个公共网站(IP:93.184.216.34)。
- 步骤1(出站):
- 电脑发送数据包:源IP = 192.168.1.100, 源端口 = 54321, 目标IP = 93.184.216.34, 目标端口 = 80。
- 数据包到达NAT网关(通常是路由器)。
- NAT网关在其“转换表”中创建一个映射条目,例如:将(内网IP:内网端口)映射为一个新的(公网IP:公网端口)。假设路由器公网IP是203.0.113.1,它可能将映射改为:
192.168.1.100:54321 <-> 203.0.113.1:60001。 - 网关重写数据包的源IP和端口,然后转发到互联网:源IP = 203.0.113.1, 源端口 = 60001, 目标IP和端口不变。
- 步骤2(入站/回包):
- 网站服务器回复数据包:源IP = 93.184.216.34, 源端口 = 80, 目标IP = 203.0.113.1, 目标端口 = 60001。
- 数据包到达NAT网关。
- 网关查询其转换表,发现目标端口60001映射到内网的192.168.1.100:54321。
- 网关重写数据包的目标IP和端口,然后转发到内网:目标IP = 192.168.1.100, 目标端口 = 54321。
- 核心:通过维护一个(私有IP+端口 ↔ 公有IP+端口)的映射表,NAT实现了“多对一”的地址转换和会话跟踪。
-
主要类型
- 静态NAT:一个私有IP固定映射到一个公有IP。通常用于需要从互联网直接访问的内部服务器(如邮件服务器)。这需要手动配置。
- 动态NAT:一组私有IP映射到一组(数量通常更少)公有IP池。转换关系在连接建立时动态分配,连接结束后回收。现在较少单独使用。
- 端口地址转换(PAT / NAPT):这是最常见的NAT类型,也就是上述例子中的类型。多个私有IP通过不同的端口号映射到同一个公有IP。它允许成百上千个设备共享一个公网IP,是解决IPv4地址短缺的关键技术。
-
NAT带来的影响与挑战
- 优点:
- 节省IPv4地址:这是最主要目的。
- 一定程度的隐私和安全:内部网络拓扑和真实IP对互联网隐藏,外部主机无法直接发起对内网设备的连接(除非配置了端口转发),起到了简易防火墙的作用。
- 缺点与挑战:
- 破坏端到端连接原则:NAT修改了IP包头部,使得互联网原始的“任何主机都能直接与任何其他主机通信”的设计变得复杂。
- 增加复杂性:需要对协议进行特殊处理(如FTP的PASV/ PORT模式),需要应用层网关来协助。
- 对P2P应用的阻碍:如视频通话、文件共享等点对点应用,当通信双方都在不同的NAT后面时,建立直接连接非常困难。这催生了STUN、TURN、ICE等穿透NAT的技术。
- 影响性能:每个数据包都需要查询和修改,增加了网关的处理负担。
- 连接状态依赖:NAT转换表条目通常有超时机制。如果一个连接长时间没有数据,映射条目被删除,会导致后续连接中断。
- 优点:
-
NAT与IPv6
- 从设计上看,IPv6拥有极其庞大的地址空间(2^128个),其目标是恢复互联网端到端的连接性,理论上不再需要NAT来节省地址。
- 现状:在纯IPv6网络中,确实推荐不使用NAT。设备可以拥有全球唯一的公网IPv6地址。然而,在实际部署中,由于安全和管理习惯等原因,NAT66(IPv6到IPv6的NAT)有时仍会被使用,但其目的已从“地址节省”转变为“网络拓扑隐藏”。
- 过渡技术:在从IPv4向IPv6迁移的漫长过程中,NAT64等技术扮演了重要角色。它允许只支持IPv6的设备通过一个转换网关访问IPv4互联网资源,是重要的过渡桥梁。