DMZ子网:去NAT还是不去NAT?

我正在考虑在思科ASA背后设置一个DMZ,它将包含大量的HTTP前端负载均衡器和SSL卸载服务 – 超过100个IP,主要集中在less量的主机上。

在过去,我将所有主机放在RFC1918专用IP上,并为每个通常在DMZ中公开的服务添加了静态映射(IP-by-IP)。 由于我们已经开始以足够快的速度添加额外的DMZ IP,使得每个IP地址单独设置变得令人讨厌,这已经变得非常烦人。 我想对其进行更改,以便整个DMZ子网设置为允许来自外部的HTTP和HTTPS – > dmz,以便负载平衡器可以根据需要抓取新的IP,而不必每次都更新ASAconfiguration。

我现在想知道的是DMZ是否在RFC1918子网上,在整个子网上使用静态NAT,还是我应该让DMZ直接分配外部IP,而仅仅依靠访问列表和身份NAT / NAT免除。

一些粗糙的ASCII艺术品:

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

使用NATed IP地址的示例:
   Internet ---> ASA ---> Internal(10.1.0.0/16)
                   |
      (1.2.3.0/24)+ -----> DMZ(10.99.0.0/24)

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

你和其他人提到的两个方向都有理由。

有一个静态1:1 NATforms的抽象层(types双关语)是很好的,因为如果您的WAN IP块更改,您可能不必重新编号内部主机。 但是,与简单路由和ACL检查相比,NAT引入的通过ASA的数据包stream的复杂性和细微差别可能会产生问题。

我个人的观点是,NAT在这里停留在IPv4。 对于主机上的IPv4堆栈,我不必在上游防火墙上使用静态NAT。 但是,对于主机上的IPv6堆栈,不需要NAT。 在ASA上,IPv4和IPv6都可以并行运行,IPv4使用NAT,IPv6使用传统路由。

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

如果你使用全部61个剩余的主机IP地址,并且需要更多的地址,那么你需要上游地址,然后说我需要另外的26个地址。 他们把它给你,并再次发送,直接到你的ASA的外部知识产权。 您不能像在IOS中那样,将第二个块中的第一个主机IP作为secondary IP地址分配给ASA的dmz接口。 这给你留下了一些select –

  • 在ASA上创build另一个接口dmz2(不可取)
  • 退款/ 26,要求/ 25,内部重新编号(不可取)
  • 执行静态NAT(在这个例子中我们正在争论)

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

  • 您可以直接请求上游路由直接连接到接口IP外部的ASA,因为上游不需要在块中分配地址作为设备上的secondary IP地址,甚至可以用作网关尽pipe你不需要它。 请注意,大多数提供商将前3个主机IP地址作为VRRP / HSRP的一部分,以减less您的可用性。
  • 如果你不要求直接路由块,上游通常会执行前一个选项的后半部分。 然后,ASA将代理ARP(对于您的第一个块,这取决于它的设置方式)可能用于在外部接口所属的广播域上的IP的本地交付stream量。

课程:如果您的外部接口上已经有一个公共IP块,请始终要求后续块直接路由到您的外部接口IP。 这会给你额外的可用的IP,你仍然可以静态NAT很好。

无论是直接路由或ASA代理ARP – 1:1的静态NAT,你可以开始使用第二个/ 26,而不必与dmz子网搞砸。 一旦你长大了你的dmz子网,你将不得不做出一些调整 – 但是又有一个抽象层,你不必在WAN端弄脏。

最后的答案:这取决于,但是对于IPv4,我倾向于NAT。

我不会NAT。 没有实际的价值。 重新编号的烦人的工作不是增加/删除地址,而是处理围绕它的所有垃圾,如转换DNS。