如果我们可以分配一个公共 IP 地址,为什么还要使用 NAT?

如果我们可以分配一个公共 IP 地址,为什么还要使用 NAT?

如果私有地址块只是用来让路由器确定数据包可以从哪里转发,不能从哪里转发(因为私有地址在自己的网络上必须是唯一的,但可以在不同的网络上重复),那么为什么需要网络地址转换服务呢?

如果主机需要连接到网络,为什么不完全跳过私有地址并分配一个公共地址呢?


感谢大家,现在答案更清楚了。我不明白私有地址的原理,我不明白为什么我们需要它,因为有这么多 IP 地址被分类寻址浪费了。我不明白(现在仍然不明白)为什么我们不能重新分配 IP 来更好地利用我们已有的地址。

答案1

NAT 存在的一个原因是,IPv4 的可用地址数量非常有限(理论上最多约 43 亿个)。因此,在大多数住宅环境中,互联网服务提供商一次最多向用户提供一个公共 IP 地址。如果您想在多台机器上发送和接收数据包,则需要进行某种本地-公共转换,换句话说就是 NAT。

IPv6 将改变这一切,因为地球表面每平方英尺应该有数千或数百万个 IP 地址。

答案2

如果主机需要连接到网络,为什么不完全跳过私有地址并分配一个公共地址呢?

因为 IP 版本 4 中没有足够的公共地址来为每个可能连接到互联网的设备提供唯一的地址。这就是为什么 IP 版本 6 使用更多位来表示地址范围并拥有更多地址的原因。

私有地址块不应该在公共互联网上路由(这就是它们“私有”的原因)。由于只有 3 个私有地址块,其中包含的地址数量相对较少,因此可以保证任何拥有私有网络的人都可以重复使用它们(私有地址只需要在私有网络内是唯一的,但另一个私有网络可能会重复使用相同的地址)。因此,您不能只是将私有地址块“放在那里” - 它们会与在其他地方使用相同地址块的其他人发生冲突。

所以这就是为什么需要 NAT。

直接回答你最后一句,如果你有足够的公共地址可用,那么你就不需要 NAT 来发送和接收流量。如果你不想“保存” IP 地址,那么 NAT 就没有必要。为了完整起见,我会这样说:有些人出于安全原因依赖 NAT 的以下副作用,这可能是即使你有足够的公共 IP 地址也选择使用它的原因:

  • NAT 后面的用户无法接收传入连接,除非路由器明确转发传入流量给他们
  • 由于从 NAT 发出的流量对于外部系统来说看起来像是来自路由器的 IP,这会向外部系统隐藏 NAT 后面机器的详细信息,即有多少台机器、它们的私有 IP 等。

(就我个人而言,如果不需要的话,我不会依赖 NAT 来保证安全,但 YMMV)

答案3

IPv4 地址的数量不是无限的,这反过来又使得 ISP 不愿意向其客户提供多个地址(无需额外费用)。因此每个人都可以公共 IP 地址(通常甚至不是静态的,也可以以高价提供),当多台家用设备成为常态时,NAT 路由就成为标准解决方案。硬件制造商欢呼雀跃 :-)。

这就是我们“需要” NAT 转换的经济方面的原因,并且至少在家庭用户规模上,我相信这是驱动原因。

一旦 IPv6 大规模普及,一切都将获得一个可公开路由的唯一地址。这迟早会发生,肯定在 10 年内,也许在 5 年内。如果说有一件事是肯定的,那就是我们非常不擅长预测这一突破 :-)。

答案4

除了IP短缺还有一个重要的原因:安全。

让我们想象一下拥有 10k+ 台计算机的大公司。如果所有计算机都使用真实 IP,那么所有 10k+ 台计算机都可能受到来自任何地方的攻击,因此管理员...哦,不:1k+ 台管理员应该花时间修复、打补丁并拍打用户嬉闹但又不耐烦的手。

利用灰色 IP,我们可以消除一半甚至更多的危险。

相关内容