IP 地址与网络

NAT (网络地址转换)

约 4 分钟阅读

什么是 NAT

NAT(网络地址转换)是将内网 IP 地址与公网 IP 地址相互转换的技术。连接到家庭路由器的多台设备(智能手机、电脑、游戏机等)各自拥有内网 IP 地址(如 192.168.1.x),但在访问互联网时,路由器的 NAT 功能会将它们转换为一个公网 IP 地址。

NAT 是缓解 IPv4 地址枯竭问题的重要技术。通过让数十台设备共享一个公网 IP 地址,可以高效利用有限的 IPv4 地址。

NAT 的类型与 NAPT

静态 NAT
将内网 IP 与公网 IP 进行一对一的固定映射。用于服务器发布。没有地址节约效果。
动态 NAT
从公网 IP 地址池中动态分配。受限于地址池中的地址数量。
NAPT (PAT)
同时转换 IP 地址和端口号,使一个公网 IP 可支持数万个并发连接。家用路由器的标准方式。

通常所说的「NAT」大多实际上是 NAPT(网络地址端口转换)。通过利用端口号,一个公网 IP 地址理论上可以处理 65,535 个并发连接。

CGNAT 的问题

CGNAT(运营商级 NAT)是在运营商层面实施的大规模 NAT。随着 IPv4 地址枯竭日益严重,越来越多的运营商向用户分配内网 IP 地址(100.64.0.0/10),并在运营商侧进行 NAT。

CGNAT 环境会导致以下问题。

  • 无法进行端口转发:无法发布家庭服务器或托管在线游戏。
  • IP 地址共享:数百到数千名用户共享同一 IP 地址,导致 GeoIP 精度下降,并存在被基于 IP 的访问限制误伤的风险。
  • P2P 通信受限:视频通话或文件共享等 P2P 连接的建立可能变得困难。

要避免 CGNAT,可以向运营商申请固定 IP 选项,或切换到 IPv6 连接。

IPv6 时代的 NAT

IPv6 环境下,每台设备都被分配全球地址,因此原则上不再需要用于地址转换的 NAT。这消除了 NAT 带来的问题,如端口转发的麻烦、P2P 通信障碍和应用兼容性问题。

不过,一些组织即使在 IPv6 环境下也会出于安全目的部署 NAT66(IPv6 到 IPv6 的 NAT)。虽然它可以对外隐藏内部网络的地址结构,但会损害 IPv6 端到端通信的设计理念,因此建议使用防火墙进行访问控制作为替代方案。

目前正处于 IPv4 与 IPv6 共存的过渡期,NAT 的知识仍然很重要。特别是在网络故障排除中,检查 NAT 表和理解端口映射是不可或缺的。

常见误解

NAT 是一种安全功能
NAT 虽然有阻止外部直接访问的附带效果,但它并非为安全目的而设计的技术。NAT 是地址转换机制,不能替代适当的防火墙规则。
有了 NAT 就不会被外部攻击
即使在 NAT 后面,对于从内部发起的外部通信(如恶意软件下载、钓鱼、基于 DNS 的攻击)仍然毫无防备。如果启用了 UPnP,恶意软件还可能自动开放端口。

NAT 与防火墙的区别

NAT

本来目的是 IP 地址转换。附带阻止外部直接访问的效果。不检查通信内容。

防火墙

控制通信允许或拒绝的安全功能。基于源地址、目标地址、端口和协议规则过滤流量。

分享

相关术语