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

📅 发布时间:2026/7/7 21:11:01 👁️ 浏览次数:
NAT (Network Address Translation,网络地址转换)
NAT (Network Address Translation网络地址转换文章目录NAT (Network Address Translation网络地址转换什么是NAT为什么需要NAT——核心动机NAT的核心工作原理NAT的主要类型1. 静态NAT (Static NAT)2. 动态NAT (Dynamic NAT)3. 网络地址端口转换 (NAPT / PAT) —— 最常用的一种重要概念NAT穿透 (NAT Traversal)NAT与IPv6总结可以把NAT想象成一个大楼局域网的前台路由器/防火墙。大楼里的每个员工内网设备都有自己的内部分机号私有IP地址但对外联系时统一使用公司的总机号码公网IP地址。前台负责接听和转接所有来电并根据内部规则找到对应的员工。什么是NATNAT (Network Address Translation网络地址转换是一种在数据包通过路由器或防火墙时修改数据包中的源IP地址或目的IP地址的技术。通俗地说它允许一个实体如家庭路由器使用一个公网IP地址代表其背后的一群拥有私有IP地址的设备如手机、电脑、平板与互联网进行通信。为什么需要NAT——核心动机缓解IPv4地址枯竭最主要原因公网IP地址全球唯一可以在互联网上直接访问。数量有限非常宝贵。私有IP地址如192.168.x.x10.x.x.x172.16.x.x。这些地址可以在任何局域网内重复使用但不能在互联网上直接路由。NAT让整个局域网内的成百上千台设备共享一个或少数几个公网IP地址上网极大地节省了公网IP资源。增强安全性从外部互联网来看你的内网结构是完全不可见的。外部只能看到执行NAT的设备如路由器。它像一个屏障默认情况下外部主动发起的连接请求会被NAT设备拒绝或忽略因为它不知道这个连接应该转给内网的哪台设备。这提供了基础的防火墙功能。NAT的核心工作原理NAT的核心是维护一张NAT转换表。这张表记录了内网设备私有IP端口与NAT设备出口公网IP端口之间的映射关系。一个典型的家庭上网过程发起请求你的电脑192.168.1.100: 12345想访问一个网站8.8.8.8: 80。数据包发出源IP/端口是192.168.1.100: 12345目的IP/端口是8.8.8.8: 80。到达NAT设备数据包首先到达你的家用路由器NAT设备。路由器检查数据包发现它来自内网要去外网。转换与记录关键步骤记录路由器在自己的NAT转换表中记录下这条映射内网192.168.1.100: 12345 -- 外网路由器公网IP: 25000。这里的25000是路由器随机分配的一个未被占用的端口。转换路由器修改数据包的源IP地址为自己的公网IP比如1.2.3.4并修改源端口为25000。然后将这个转换后的数据包发送到互联网。服务器响应目标服务器8.8.8.8收到请求后将响应数据包发回给1.2.3.4: 25000。接收与反向转换路由器收到来自服务器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。送达转换后的数据包被正确发送回你的电脑。整个过程对电脑和服务器是透明的它们都以为自己是在直接通信。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与IPv6IPv6拥有几乎无限的地址空间旨在让每一台设备都能拥有一个全球唯一的公网IP地址从设计上“修复”NAT存在的必要性。然而由于NAT带来的“默认安全”特性以及网络管理员和用户的使用习惯即使在IPv6环境中仍然存在类似NAT的技术如NAT66即IPv6到IPv6的网络地址转换用于隐藏内部网络结构或简化网络重新编号的过程。但主流趋势是回归到端到端的直接连接。总结特性描述核心功能通过修改IP包头中的地址信息实现私有网络访问公共网络的能力。主要动机解决IPv4地址枯竭和提供基础的安全屏障。核心技术维护NAT转换表记录内网IP:端口与公网IP:端口的映射关系。最常用类型NAPT/PAT通过端口复用实现多设备共享一个公网IP。主要问题破坏了端到端的连接模型导致外部无法主动访问内网设备需要NAT穿透技术来解决。未来趋势IPv6旨在取代NAT但由于惯性NAT及其变种如NAT66可能仍会存在一段时间。