网络地址转换(NAT)

要访问互联网,需要一个公共IP地址,但我们可以在专用网络中使用专用IP地址。NAT的理念是允许多个设备通过一个公共地址访问互联网。为了实现这一点,需要将私有IP地址转换为公共IP地址。 网络地址转换(NAT) 是将一个或多个本地IP地址转换为一个或多个全局IP地址的过程,反之亦然,以便为本地主机提供Internet访问。此外,它还转换端口号,即在将被路由到目的地的数据包中,用另一个端口号屏蔽主机的端口号。然后在NAT表中输入相应的IP地址和端口号。NAT通常在路由器或防火墙上运行。

null

网络地址转换(NAT)工作—— 通常,边界路由器是为NAT配置的,即在本地(内部)网络中有一个接口,在全局(外部)网络中有一个接口的路由器。当一个数据包在本地(内部)网络之外穿越时,NAT会将该本地(私有)IP地址转换为全局(公共)IP地址。当数据包进入本地网络时,全局(公共)IP地址将转换为本地(专用)IP地址。

如果NAT的地址不足,即配置的池中没有留下地址,则数据包将被丢弃,并向目的地发送一个Internet控制消息协议(ICMP)主机无法访问的数据包。

为什么要屏蔽端口号? 假设在一个网络中,两台主机a和B连接在一起。现在,它们都在同一时间请求相同的目的地,相同的端口号,比如主机端的1000。如果NAT只翻译IP地址,那么当它们的数据包到达NAT时,它们的两个IP地址都将被网络的公共IP地址屏蔽并发送到目的地。目的地将向路由器的公共IP地址发送回复。因此,在收到回复时,NAT将不清楚哪个回复属于哪个主机(因为a和B的源端口号相同)。因此,为了避免这种问题,NAT也会屏蔽源端口号,并在NAT表中创建一个条目。

NAT内部和外部地址- 内部指的是必须翻译的地址。外部指的是不受组织控制的地址。这些是要进行地址转换的网络地址。

图片[1]-网络地址转换(NAT)-yiteyi-C++库

  • 内部本地地址- 分配给内部(本地)网络上主机的IP地址。该地址可能不是服务提供商分配的IP地址,即这些是专用IP地址。这是从内部网络看到的内部主机。
  • 内部全球地址- 表示一个或多个外部本地IP地址的IP地址。从外部网络看,这是内部主机。
  • 外部本地地址- 这是翻译后本地网络中目标主机的实际IP地址。
  • 外部全球地址- 这是从外部网络看到的外部主机。它是转换前外部目标主机的IP地址。

网络地址转换(NAT)类型—— 有3种方式可以配置NAT:

  1. 静态NAT- 在这种情况下,单个未注册(私有)IP地址映射为合法注册(公共)IP地址,即本地和全局地址之间的一对一映射。这通常用于网络托管。由于有许多设备需要接入互联网,所以这些设备不在组织中使用。为了提供互联网接入,需要一个公共IP地址。

    假设,如果有3000台设备需要接入互联网,该组织必须购买3000个公共地址,这将非常昂贵。

  2. 动态NAT- 在这种类型的NAT中,未注册的IP地址从公共IP地址池转换为已注册(公共)的IP地址。如果池的IP地址不是空闲的,那么数据包将被丢弃,因为只有固定数量的私有IP地址可以转换为公共地址。

    假设,如果有一个由2个公共IP地址组成的池,那么在给定时间只能转换2个私有IP地址。如果第三个私有IP地址想要访问互联网,那么数据包将被丢弃,因此许多私有IP地址被映射到公共IP地址池。当想要访问互联网的用户数量固定时,使用NAT。这也是非常昂贵的,因为该组织必须购买许多全球IP地址来创建一个池。

  3. 端口地址转换(PAT)—— 这也被称为NAT过载。在这种情况下,许多本地(专用)IP地址可以转换为单个注册IP地址。端口号用于区分流量,即哪些流量属于哪个IP地址。这是最常用的,因为它是经济高效的,因为成千上万的用户只需使用一个真正的全球(公共)IP地址即可连接到Internet。

NAT的优势——

  • NAT保存合法注册的IP地址。
  • 它提供了隐私,因为发送和接收流量的设备IP地址将被隐藏。
  • 消除了网络演进时的地址重新编号。

NAT的缺点——

  • 转换导致切换路径延迟。
  • NAT启用时,某些应用程序将无法运行。
  • 使IPsec等隧道协议复杂化。
  • 此外,作为网络层设备的路由器不应篡改端口号(传输层),但由于NAT,它必须这样做。
© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享