为什么没有更多的组织使用内部到内部的NAT或类似的解决scheme来允许NAT发卡?

从内部到内部的NAT(也称为NAT环回)解决了在ASA的外部接口上访问Web服务器或从内部接口上的计算机访问类似设备时的发夹NAT问题。 这样可以防止DNSpipe理员必须维护一个重复的内部DNS区域,该区域具有相应的RFC1918地址,用于其NAT地址为公用地址的服务器。 我不是一个networking工程师,所以我可能会错过一些东西,但这似乎是一个简单的configuration和实施。 不对称的路由可能是一个问题,但容易缓解。

根据我的经验,networkingpipe理员/工程师更喜欢系统人员运行split-dns,而不是configuration防火墙来正确处理NAT发夹。 为什么是这样?

有几个原因我不这样做:

  • 如果不需要,为什么还要在DMZ路由器和防火墙上加上额外的压力? 我们的大部分内部服务不在非军事区内,而是在一般企业区内,在非军事区内提供代理服务,以便偶尔进行远程访问。 做内部nat会给DMZ增加更多的负荷,在我们的情况下这将是非常重要的。
  • 如果你不做DNAT + SNAT,你会得到asynchronous路由,这是非常棘手的正确的。 所以你SNAT和丢失源IP信息。 但是,为了排除故障,将源IP链接到人们是非常有用的。 或者在愚蠢的情况下偶尔出现恐惧症。 “嘿,这个IP在未经authentication的服务X上做了些什么”“哦,让我们来看看它是谁的imap服务器日志。

显然,这个问题不可能有明确的答案 ,但我可以想到一些原因:

  1. 优雅:NAT起初不是很优雅,但是IPv4地址空间有限。 如果我能避免NAT,我会的。 有了IPv6,问题就会消失。
  2. 复杂性:特别是在没有一个“核心”路由器创build所有安全边界的情况下,filterconfiguration可能变得非常棘手。 无论是或者你将不得不遍布和维护几乎所有的路由器设备的NAT规则。
  3. 参考:无论哪个防火墙pipe理员与服务器pipe理员组的其他成员不同,他们可能很难联系到。 为了确保防火墙pipe理员的积压(或休假)不会延迟更改,可以select将责任保留在同一个团队中
  4. 可移植性和常见做法:使用DNS视图是“每个人都知道的事情”来解决这个问题。 并不是所有的边界路由器都能以直接的方式支持环回NAT,所以很less有人可能知道如何在特定的环境中正确设置NAT。 在解决networking问题时,机组人员需要了解发夹式NATconfiguration及其所有含义 – 即使他们正在追求一个显然不相关的问题

免责声明 – 这是一个flamebait答案。

我认为避免这种解决scheme的一个常见原因是networking工程师对NAT的非理性恐惧/仇恨 。 如果你想看到这方面的一些讨论的例子,看看这些:

据我所知,很多这种恐惧源于思科在NAT方面的糟糕实现(所以在这个意义上说它可能不是非理性的),但在我看来,“经典”的networking工程师是如此受到良好的“NAT是坏“的世界观,他或她看不到这样的明显的例子,这是非常有意义的,并且实际上简化了解决scheme。

在那里,你 – 倒退到你心中的内容! 🙂

我的猜测是:

  1. 拆分DNS更容易理解。
  2. NAT发夹在路由器上占用资源,而split-dns则不占用资源。
  3. 路由器可能会有带宽限制,你没有通过分裂DNS设置。
  4. 拆分的DNS将永远是更好的执行,因为你避免了路由/ NAT的步骤。

在发夹式NAT的优势方面,

  • 一旦安装它就可以工作。
  • 在工作networking和公共互联网之间,没有用于笔记本电脑的DNScaching问题。
  • 一台服务器的DNS只能在一个地方pipe理。

对于一个内部服务器stream量要求较低的小型networking,我会使用发夹NAT。 对于有很多连接到服务器的大型networking,带宽和延迟是重要的,请使用split-dns。

从我的angular度来看,这在Cisco Pix到ASA的转换之间有所改变。 失去了alias命令。 一般来说,从思科防火墙的内部接口访问外部地址需要某种欺骗。 请参阅: 如何通过外部IP访问我的内部服务器?

但是,我们并不总是需要维护一个重复的内部DNS区域。 如果在NAT语句上configuration,思科ASA可以将外部地址的DNS查询redirect到内部地址。 但我更喜欢为公有DNS区域保留一个内部区域,以便具有这种粒度,并且能够在一个位置pipe理这个区域,而不是一步到达防火墙。

通常情况下,在一个环境(邮件,networking和一些公共服务)中只有less数几个服务器可能需要这个服务器,所以它不是一个很大的问题。

我可以想到几个原因:

  1. 由于不想将所有内部DNS信息发布到世界上,因此许多组织已经将DNS拆分,因此处理less数也通过公共IP公开的服务器并不多。
  2. 随着组织及其networking的规模越来越大,他们经常将服务于内部人员的系统与服务于外部服务器的服务器分开,因此路由到外部服务器以供内部使用可能是更长的networkingpath。
  3. 中间设备对数据包的修改越less,在延迟,响应时间,设备负载和故障排除方面越好。
  4. (很less见的,不可否认)如果NAT设备没有超出数据包的标题,并且使用新的IP地址修改其中的数据,NAT协议仍然会中断。 即使这仅仅是一个机构记忆的情况,它仍然是人们避免它的一个合理的理由,特别是如果他们正在处理一个他们不能100%确定的协议。

如果我打算使用NAT环回,我会担心NAT设备如何处理欺骗源地址。 如果它不检查数据包进入哪个接口,那么我可以欺骗来自WAN的内部地址,并将数据包发送到具有内部地址的服务器。 我无法获得答复,但是我可能会使用内部地址来破坏服务器。

我会设置NAT环回,插入DMZ交换机并发送包含欺骗内部源地址的数据包。 检查服务器日志,看看是否收到。 然后,我会去咖啡店,看看我的ISP是否阻止欺骗地址。 如果我发现我的NAT路由器没有检查源接口,我可能不会使用NAT环回,即使我的ISP正在检查。