SNAT(静态网络地址转换)有什么用?

网络工程 纳特
2022-03-04 19:22:39

如果使用 SNAT 将内部私有 IP 地址直接映射到不变的公共 IP 地址,为什么不简单地将公共 IP 地址直接分配给每个主机本身呢?SNAT 与每个主机都有自己的公共 IP 的经典设置相比有什么优势?

简而言之,我在问,SNAT 试图促进或解决什么问题?

2个回答

如前所述,SNAT通常指的是源 NAT(通常是NAPT,参见RFC 2663),不应轻易用于静态 NAT

当源主机使用私有 IP 地址并且您希望在一对一的基础上为 Internet 通信映射专用公共 IP 地址时,使用静态 NAT。

静态 NAT 常用于服务器托管,当托管商为客户服务器分配公共 IP 子网但客户不想直接使用这些公共地址时,尤其是通过首先通过防火墙进行路由(和转换)。一对一映射的优点是可以轻松识别公共端的原始主机(可能还有应用程序)。

在子网中,您可能出于多种原因分配了地址。

  1. 网络和广播地址,本质上是浪费的。
  2. 需要完全访问 Internet 的主机的地址。
  3. 需要到 Internet 的出站连接但不需要从 Internet 传入的主机的地址。
  4. 根本不需要互联网访问的主机地址。
  5. 网络上路由器的地址
  6. 为将来扩展而保留的地址
  7. 未使用的地址,因为子网的大小必须是 2 的幂。

所以假设我们有一个子网。

  • 几个为公共互联网提供网页的网络服务器。
  • 为网络服务器提供数据库的几个数据库服务器。
  • 从另一个站点下载数据进行处理的几个服务器。
  • 一对与外部世界的冗余网关,使用虚拟 IP 作为默认网关。

总共有 9 个地址,6 个用于服务器,2 个用于物理网关,1 个用于虚拟网关 IP。要实际为子网分配地址块,我们还需要一个网络和广播地址,使总数达到 11。11 之后的 2 的下一个幂是 16。

因此,如果我们直接使用公共 IP 寻址子网,那么我们需要一个至少包含 16 个公共 IP 的块,如果我们想要允许未来的扩展,我们可能想要分配一个更大的块,比如 32 个公共 IP。

然而,实际上只有两个子网上的地址需要可以从 Internet 访问。其余的可以在一对多 NAT 后面很好地管理,或者根本不需要连接到公共互联网。

将其扩展到更大的网络,您可以通过将单个公共地址分配给实际需要它们的机器而不是将大块公共 IP 地址分配给子网来节省大量公共 IP 地址。

有几种方法可以做到这一点,一种是使用具有静态 /32 路由的服务器上的辅助 IP 地址向它们传送流量。另一种是使用静态 NAT 将公共 IP 地址映射到网络边界的私有 IP 地址。这两种方法各有利弊。