NAT NAPT

NAT

NAT(Network Address Translation,网络地址转换) 主要用于在不同网络(如私有网络和公共互联网 )之间进行 IP 地址转换 ,解决IP 地址短缺 问题,并提供一定的安全性

  • IPv4 地址是 32 位 (最多 2^32 ≈ 43 亿 个地址),但全球设备数量远超这个范围。
  • 私有 IP 地址(如 192.168.1.0/24)不能直接在公网使用,必须通过 NAT 转换成公网 IP。

NAT IP转换过程

当主机A私有IP地址访问服务器公有IP时,先把数据发给路由器,NAT 路由器将报文的源地址从 10.0.0.10 替换成全局的 IP 202.244.174.37;并在转换表中建立私有IP和公有IP的映射关系。

当服务器返回报文时,NAT 路由器收到外部的数据时, 再根据转变表的映射关系,把目标 IP 从 202.244.174.37 替换回10.0.0.10;

当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系;

NAPT

那么问题来了, 如果局域网内, 有多个主机都访问同一个外网服务器 , 那么对于服务器返

回的数据中, 目的 IP 都是相同的 . 那么 NAT 路由器如何判定将这个数据包转发给哪个
局域网的主机?

这时候就不能但使用IP建立联系,要用IP+port。

同一个子网中每个主机的私有 IP 是唯一的 ,即使端口号一样,也能保证唯一性。IP+端口号保证了在同一个子网中,每台主机以及主机上客户端的唯一性。

NAPT,转换的公网IP一样,但可以分配不同的端口号,也保证了唯一性。

这样映射双方都保证了唯一性。
再来想一下,同一子网中主机的私有IP不同,但不同子网的私有IP可能会相同。如果这两个子网有同一个路由器,在不同子网的两个主机私有IP相同,端口号也相同,访问同一个服务器,会怎么样?

即使不同子网的主机 IP + 端口号相同,NAPT 仍然能基于 NAT 端口号 + 子网信息( NAPT 设备用来区分不同子网的标识信息:入接口 eth 源子网 VLAN 标识**)唯一映射,确保数据包不会错误地送达另一台主机。**

子网 A 的 192.168.1.100:5001 → 203.0.113.1:30001

子网 B 的 192.168.1.100:5001 → 203.0.113.1:30002

服务器返回数据时,NAPT 设备根据 NAT 端口号找到正确的原始子网,并正确转发回去。

其他 NAT 方案:

  • 策略 NAT(Policy-Based NAT)

    • 不同子网使用不同的 NAT 端口范围,确保 NAT 端口不重叠。
    • 例如:
      • 子网 A:NAT 端口 30000-31000
      • 子网 B:NAT 端口 31001-32000
  • 使用多个公网 IP

    • 如果 NAT 设备支持多个公网 IP,可以为不同子网分配不同的公网 IP ,避免 NAT 端口冲突:
      • 子网 A → 203.0.113.1
      • 子网 B → 203.0.113.2
相关推荐
luj_17684 小时前
残熵算法实时化三大瓶颈突破
c语言·开发语言·网络·经验分享·算法
吴懿不在4 小时前
某次热身赛re方向wp WORDS 51,500 READ 172 MIN base64,
网络
RisunJan7 小时前
Linux命令-rlogin(远程登录)
linux·运维
深圳恒讯7 小时前
菲律宾云服务器与传统VPS的架构差异
运维·服务器·架构
蓝天下的守望者7 小时前
svt_apb_if里的宏定义问题
运维·服务器·数据库
小林ixn7 小时前
从“玩具工具”到“跨语言利器”:MCP 协议实战解析
运维·服务器·网络
小顿的企业观察8 小时前
中企出海战略规划,正在从“走出去”转向“走进去”
大数据·运维·人工智能·产品运营·制造
数智化转型推荐官8 小时前
2026统一身份管理系统五大发展趋势解读
java·运维·微服务
看菜鸡互8 小时前
探索用 SlideML 让大模型生成 PPT 的实验方法
java·运维
2603_954708319 小时前
全维度容错设计,打造微电网安全运行屏障
服务器·网络·数据库·人工智能·分布式·安全