什么是网络地址转换(NAT)?

NAT是“网络地址转换”(Network Address Translation)的缩写,是一种将IP数据包标头中的IP地址转换为其他IP地址的技术。它通常用于将组织内部使用的私有IP地址转换为全局IP地址,以便与外部通信。

为解决IPv4地址耗尽问题,私有IP地址应运而生。在IPv4中,地址以32位表示,可提供约40亿个唯一地址。然而,随着互联网迅速扩张,需要IP地址的设备数量呈指数级增长,引发了可用地址最终耗尽的担忧。为节约全球IP地址,业界采用了按组织分配全球IP地址,并在组织内部使用私有IP地址的方法。由此引入了RFC 1918中定义的私有IP地址。该标准针对不同规模的组织规定了相应的地址范围:

  • A 类(大型组织):10.0.0.0 至 10.255.255.255
  • B类(中型组织):172.16.0.0 至 172.31.255.255
  • C 类(小型组织):192.168.0.0 至 192.168.255.255

通常,组织内部网络中的设备会分配这些范围内的私有IP地址。

但是,当使用私有IP地址的设备通过互联网访问外部服务器时,由于多个组织可能使用相同的私有IP地址,服务器无法识别发起访问的设备。因此,必须将私有IP地址转换为该组织唯一的全局IP地址,才能通过互联网通信。这正是NAT发挥作用的地方。

NAT还可对外部网络隐藏内部网络,通过隔离内部网络提供一定程度的安全保护。不过,虽然NAT有助于实现网络分段,但仅靠NAT并不能全面应对安全威胁,通常还需要采用其他端到端隧道技术和协议。

NAT的一个局限是采用一对一地址转换,因此不适合处理多台设备的并发通信。为解决这一问题,NAT扩展了端口号转换功能,由此形成了NAPT(网络地址端口转换),也称为IP伪装。如今,“NAT”一词通常同时指NAT和NAPT。