DMZ 子网:NAT 还是不 NAT?

nat*_*ado 8 cisco nat dmz ip-address cisco-asa

我正在考虑在 Cisco ASA 后面设置一个 DMZ,该 DMZ 将包含大量 HTTP 前端负载平衡器和 SSL 卸载服务 - 超过 100 个 IP,集中在少数主机上。

过去,我将所有主机都保留在 RFC1918 私有 IP 上,并为我通常在 DMZ 中公开的每个服务添加了静态映射(IP-by-IP)。这变得很烦人,因为我们已经开始以足够快的速度添加额外的 DMZ IP,以至于单独设置每个 IP 变得很烦人。我想对其进行更改,以便将整个 DMZ 子网设置为允许来自外部的 HTTP 和 HTTPS --> dmz,以便负载均衡器可以根据需要获取新 IP,而无需每次都更新 ASA 配置。

我现在想知道的是,将 DMZ 放在 RFC1918 子网上并在整个子网中使用静态 NAT 是否有意义,或者我是否应该让 DMZ 直接分配外部 IP,并仅依赖于访问列表和身份 NAT/NAT 豁免。

一些粗略的 ASCII 艺术作品:

使用直接外部 IP 地址的示例:
  互联网 ---> ASA ---> 内部 (10.1.0.0/16)
                  |
                  +-----> DMZ (1.2.3.0/24)

使用 NATed IP 地址的示例:
  互联网 ---> ASA ---> 内部 (10.1.0.0/16)
                  |
     (1.2.3.0/24) +-----> DMZ (10.99.0.0/24)

我看到的使用 NATed 地址的优势是可移植性 - 如果我的上游提供商和分配发生变化,我不需要重新编号我的内部 DMZ。缺点是复杂性 - 现在我必须处理我自己网络中的内部和外部 IP 地址,等等。根据您的经验,哪种设置效果更好?

Wea*_*ver 9

有理由朝您和其他人提到的任一方向发展。

具有静态 1:1 NAT 形式的抽象层(一种双关语)是一种很好的方式,因为如果您的 WAN IP 块发生变化,您可能不必重新编号内部主机。然而,与简单的路由和 ACL 检查相比,NAT 引入到通过 ASA 的数据包流的复杂性和细微差别可能是有问题的。

我个人的观点是 NAT 与 IPv4 保持一致。对于主机上的 IPv4 堆栈,我对上游防火墙上的静态 NAT 没有任何疑虑。然而,对于主机上的 IPv6 堆栈,没有 NAT。在 ASA 上,IPv4 和 IPv6 可以并行运行,NAT 用于 IPv4,传统路由用于 IPv6。

您可能想要使用静态 NAT 并且它处理增长还有另一个原因。 ASA 不支持 secondary 接口上的 IP 地址。假设您的上游为您分配了一个直接路由到 ASA 外部接口的 /26。您使用 IP 子网中的第一个主机 IP 配置 ASA 的 dmz 接口,在子网中留下 64 - 2 - 1 = 61 个有效主机 IP 以供服务器使用。

如果您使用了所有剩余的 61 个主机 IP 并且需要更多,您可以到上游说嘿,我需要另一个 /26。他们将其提供给您并再次将其路由到您的 ASA 的外部 IP。您不能secondary像使用 IOS 那样将第二个块中的第一个主机 IP 作为IP 地址分配给 ASA 的 dmz 接口。这给你留下了几个选择——

  • 在 ASA 上创建另一个接口 dmz2(不需要)
  • 归还 /26,要求 /25,并在内部重新编号(不可取)
  • 执行静态 NAT(我们在本例中反对这样做)

接下来采用相同的范例——这次从一开始就在 <-> dmz 之外使用 1:1 静态 NAT。我们在 1:1 静态 NAT 中的第一个 /26 中使用所有可用 IP。我们请求第二个 /26 --

  • 您可以直接请求上游路由直接到您的 ASA 外部接口 IP —— 为您节省一些地址,因为上游不必将块中的地址分配为用作网关设备secondary上的IP 地址,即使你不需要它。请注意,大多数提供商将前 3 个主机 IP 地址作为 VRRP/HSRP 的一部分,从而减少您的可用性。
  • 如果您不请求直接路由块,上游通常会执行前一个选项的后半部分。然后,ASA 代理 ARP(因为它可能对您的第一个块进行处理,具体取决于它的设置方式),以便为外部接口所属的广播域上的那些 IP 提供本地传送的流量。

教训:如果您的外部接口上已经有一个公共 IP 块,请始终请求将后续块直接路由到您的外部接口 IP。这将为您提供额外的可用 IP,并且您仍然可以使用静态 NAT。

无论是直接路由还是 ASA 代理 arp——使用 1:1 静态 NAT,您都可以开始使用第二个 /26,而不必在 dmz 子网中乱来。一旦您的 dmz 子网超出了您的范围,您将不得不做出一些调整——但同样有一个抽象层,您不必在 WAN 端四处游荡。

最终答案:这取决于,但对于 IPv4,我倾向于在您的情况下使用 NAT。