如果使用 SNAT 将内部私有 IP 地址直接映射到不变的公共 IP 地址,为什么不简单地将公共 IP 地址直接分配给每个主机本身呢?SNAT 与每个主机都有自己的公共 IP 的经典设置相比有什么优势?
简而言之,我在问,SNAT 试图促进或解决什么问题?
如果使用 SNAT 将内部私有 IP 地址直接映射到不变的公共 IP 地址,为什么不简单地将公共 IP 地址直接分配给每个主机本身呢?SNAT 与每个主机都有自己的公共 IP 的经典设置相比有什么优势?
简而言之,我在问,SNAT 试图促进或解决什么问题?
如前所述,SNAT通常指的是源 NAT(通常是NAPT,参见RFC 2663),不应轻易用于静态 NAT。
当源主机使用私有 IP 地址并且您希望在一对一的基础上为 Internet 通信映射专用公共 IP 地址时,使用静态 NAT。
静态 NAT 常用于服务器托管,当托管商为客户服务器分配公共 IP 子网但客户不想直接使用这些公共地址时,尤其是通过首先通过防火墙进行路由(和转换)。一对一映射的优点是可以轻松识别公共端的原始主机(可能还有应用程序)。
在子网中,您可能出于多种原因分配了地址。
所以假设我们有一个子网。
总共有 9 个地址,6 个用于服务器,2 个用于物理网关,1 个用于虚拟网关 IP。要实际为子网分配地址块,我们还需要一个网络和广播地址,使总数达到 11。11 之后的 2 的下一个幂是 16。
因此,如果我们直接使用公共 IP 寻址子网,那么我们需要一个至少包含 16 个公共 IP 的块,如果我们想要允许未来的扩展,我们可能想要分配一个更大的块,比如 32 个公共 IP。
然而,实际上只有两个子网上的地址需要可以从 Internet 访问。其余的可以在一对多 NAT 后面很好地管理,或者根本不需要连接到公共互联网。
将其扩展到更大的网络,您可以通过将单个公共地址分配给实际需要它们的机器而不是将大块公共 IP 地址分配给子网来节省大量公共 IP 地址。
有几种方法可以做到这一点,一种是使用具有静态 /32 路由的服务器上的辅助 IP 地址向它们传送流量。另一种是使用静态 NAT 将公共 IP 地址映射到网络边界的私有 IP 地址。这两种方法各有利弊。