NAT 机制的工作流程

NAT(Network Address Translation,网络地址转换)是一种部署在路由器 / 网关 上的网络技术,核心作用是将局域网(LAN)的私有 IP 地址转换为互联网(WAN)的公有 IP 地址,解决 "公有 IP 地址资源不足" 的问题,同时隔离内网与外网,提升局域网安全性。

一、NAT 核心前提:IP 地址分类

NAT 的工作依赖 "私有 IP" 与 "公有 IP" 的区分,两者的定义和用途严格分离:

  • 公有 IP :由 IANA(互联网号码分配机构)统一分配,全球唯一,可直接在互联网中路由(如百度服务器 IP 180.101.49.11)。
  • 私有 IP :仅用于局域网内部通信,不可在互联网中路由,需通过 NAT 转换为公有 IP 才能访问外网。IANA 预留的私有 IP 段如下:
    • A 类:10.0.0.0 ~ 10.255.255.255(1 个大网段)
    • B 类:172.16.0.0 ~ 172.31.255.255(16 个网段)
    • C 类:192.168.0.0 ~ 192.168.255.255(256 个网段)

举例 :家庭网络中,手机、电脑的 IP(如 192.168.1.2192.168.1.3)均为私有 IP,而路由器 WAN 口获取的 IP(如 202.103.xx.xx)是 ISP 分配的公有 IP。

二、NAT 基本工作流程(以 "内网访问外网" 为例)

NAT 的核心是路由器维护一张NAT 转换表 (记录 "私有 IP + 端口" 与 "公有 IP + 端口" 的映射关系),通过 "替换 IP 和端口" 实现数据双向传输。以下以 "内网 PC(192.168.1.2:5000)访问外网服务器(203.0.113.10:80)" 为例,拆解完整流程:

步骤 1:内网 PC 发起请求,数据包进入路由器

  1. 内网 PC(192.168.1.2)向外网服务器(203.0.113.10:80)发送 TCP 请求数据包(如 HTTP 请求),数据包的源地址192.168.1.2:5000(私有 IP + 随机端口),目的地址203.0.113.10:80(公有 IP + 服务端口)。
  2. 数据包通过交换机转发到路由器的LAN 口(局域网侧接口),进入路由器的 NAT 模块。

步骤 2:路由器执行 NAT 转换,生成映射表

  1. 路由器检测到数据包的源 IP 是私有 IP,需执行 "私有 IP→公有 IP" 转换:

    • 从自身 WAN 口的公有 IP 池(通常是 ISP 分配的 1 个公有 IP,如202.103.15.6)中选择一个公有 IP 作为 "转换后的源 IP";
    • 分配一个未被占用的临时端口 (如6000)作为 "转换后的源端口",避免多个内网设备使用同一公有 IP 时端口冲突。
  2. 路由器在NAT 转换表 中新增一条映射记录,格式如下:

    内网地址(私有 IP: 端口) 外网地址(公有 IP: 端口) 目的地址(外网服务器 IP: 端口) 协议 超时时间
    192.168.1.2:5000 202.103.15.6:6000 203.0.113.10:80 TCP 120 秒
  3. 路由器修改数据包的源地址 :将192.168.1.2:5000替换为202.103.15.6:6000,目的地址保持不变(203.0.113.10:80),然后通过WAN 口(互联网侧接口)发送到互联网。

步骤 3:外网服务器响应,数据包返回路由器

  1. 外网服务器(203.0.113.10)接收请求后,生成响应数据包(如 HTTP 响应),此时数据包的源地址203.0.113.10:80目的地址202.103.15.6:6000(即路由器转换后的公有 IP + 端口)。
  2. 响应数据包通过互联网传输到路由器的WAN 口,进入 NAT 模块。

步骤 4:路由器反向 NAT 转换,转发到内网 PC

  1. 路由器查询NAT 转换表 ,根据 "目的地址(202.103.15.6:6000)+ 协议(TCP)" 匹配到对应的内网地址(192.168.1.2:5000)。
  2. 路由器修改数据包的目的地址 :将202.103.15.6:6000替换为192.168.1.2:5000,源地址保持不变(203.0.113.10:80)。
  3. 转换后的数据包通过路由器的LAN 口 转发到内网交换机,最终送达发起请求的 PC(192.168.1.2)。

步骤 5:连接结束,释放映射记录

当 PC 与服务器的通信结束(如 TCP 断开连接),或映射记录达到 "超时时间"(通常 1-5 分钟,避免表项过多),路由器会删除 NAT 转换表中的对应记录,释放端口资源。

三、常见 NAT 类型的工作差异

根据 "公有 IP 数量" 和 "映射方式",NAT 主要分为 3 类,工作流程略有不同:

1. 静态 NAT(Static NAT)

  • 核心特点 :1 个私有 IP 与 1 个公有 IP永久绑定(一对一映射),映射表由管理员手动配置,不会自动删除。
  • 工作流程:无需动态分配端口,数据包的源 IP 直接替换为绑定的公有 IP(端口不变);反向转换时,直接根据静态映射表匹配私有 IP。
  • 适用场景 :内网需要对外提供服务的设备(如内网服务器、监控摄像头),需固定公有 IP 供外网访问(如192.168.1.100绑定202.103.15.7,外网可通过202.103.15.7访问该服务器)。

2. 动态 NAT(Dynamic NAT)

  • 核心特点 :多个私有 IP 共享一个公有 IP 池(如 10 个公有 IP),映射时从池内动态选择空闲的公有 IP(一对一临时映射),超时后释放。
  • 工作流程:与基本流程类似,但 "转换后的公有 IP" 从 IP 池选择,而非固定 1 个;若 IP 池无空闲 IP,新请求会被阻塞。
  • 适用场景:内网设备数量较多,但同时访问外网的设备较少,且无需固定公有 IP(如中小型企业内网)。

3. 端口地址转换(PAT,Port Address Translation)

  • 核心特点 :所有内网设备共享1 个公有 IP,通过 "不同的端口号" 区分不同设备(一对多映射),是目前最主流的 NAT 类型(家庭路由器默认使用 PAT)。
  • 工作流程:与前文 "基本工作流程" 完全一致,核心是通过 "私有 IP: 端口 → 公有 IP: 临时端口" 的映射,实现单公有 IP 支持多设备同时访问外网。
  • 优势:极大节省公有 IP 资源,1 个公有 IP 可支持数千台内网设备(端口范围 0-65535,排除系统占用端口后约可用 6 万个端口)。

四、NAT 的局限性与解决方案

NAT 虽解决了 IP 不足问题,但也存在天然限制,需针对性解决:

  1. 内网设备无法被外网主动访问 :外网设备无 NAT 转换表记录,无法主动向私有 IP 发送数据包。解决方案:配置端口转发(Port Forwarding) (将公有 IP 的特定端口映射到内网设备的端口,如将202.103.15.6:8080映射到192.168.1.100:80,外网可通过202.103.15.6:8080访问内网 Web 服务器)。

  2. 部分网络协议(如 VPN、P2P)无法正常工作:这类协议需 "端到端 IP 可见",NAT 转换会破坏协议中的 IP 信息。解决方案:使用UPnP(通用即插即用)NAT 穿透(NAT Traversal,如 STUN、TURN 协议),让设备自动协商 NAT 映射规则。

总结

NAT 的本质是 "路由器通过维护转换表,实现私有 IP 与公有 IP 的双向映射",核心流程可概括为:内网请求→NAT 正向转换(私→公)→外网响应→NAT 反向转换(公→私)→内网接收其中,PAT 通过 "端口区分" 实现单公有 IP 多设备共享,是家庭和中小企业网络的标配;静态 NAT 和端口转发则用于内网设备对外提供服务的场景。

相关推荐
Pan Zonghui2 小时前
腾讯云COS通过CDN加速配置指南
网络·云计算·腾讯云
FPGA_Linuxer2 小时前
vivado自定义IP显示只读解决办法
网络·网络协议·tcp/ip
北'辰4 小时前
使用ENSP实现HCIA-DATACOM-综合实验
运维·网络
百花~4 小时前
HTTP~
网络·网络协议·http
泽济天下4 小时前
【经验分享】JWE 详解:比 JWT 更安全的令牌技术
网络·经验分享·安全
青草地溪水旁9 小时前
EPOLLONESHOT事件类型和ET模式有什么区别?
服务器·网络·c++·epoll
青草地溪水旁10 小时前
tcpdump调试
网络·测试工具·tcpdump
kebeiovo11 小时前
muduo网络库事件驱动模型的实现与架构
网络·架构
德迅云安全杨德俊13 小时前
SCDN-保护网站安全的有效方案
网络·安全·web安全·ddos