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


22

从内部到内部NAT aka NAT环回解决了从内部接口上的计算机访问ASA外部接口上的Web服务器或类似设备时发夹式NAT问题。这样可以防止DNS管理员必须维护一个重复的内部DNS区域,该区域具有为其服务器配置为NAT到公共地址的相应RFC1918地址。我不是网络工程师,所以我可能会缺少一些东西,但是配置和实现这似乎很容易。非对称路由可能是一个问题,但可以轻松缓解。

以我的经验,网络管理员/工程师更喜欢系统人员只运行split-dn,而不是配置其防火墙以正确处理NAT发夹。为什么是这样?


也许是因为DNS视图更易于解决?
NickW

2
可能,但是在AD域控制器上使用DNS时(常见情况),视图不存在。
MDMarra

2
为什么需要将您的AD区域发布到Internet?如果您的AD ad.example.com相同或相似(应该是!),则所有公共example.comDNS条目都将存在此问题,并且内部没有外部发布任何内容。当然,如果您将AD命名为与公共场所相同,则必须使用split-DNS,但这不是最佳实践AD设计。
MDMarra

5
我要补充一点,如果客户端永不间断地进行DNS视图的访问,则更易于解决。当客户将缓存的内部结果带到外部时,事情可能会变得奇怪。
LapTop006

3
客户端不应该缓存DNS答案,这就是DNS 服务器的作用。我知道Windows非常喜欢无声(致命)缓存,但这就是我认为不适合生产使用的众多原因之一。
MadHatter在2013年

Answers:


11

我不这样做的原因有几个:

  • 如果不需要,为什么还要对DMZ路由器和防火墙施加额外的压力?我们的大多数内部服务不在DMZ中,而是在一般公司范围内,其中DMZ中的代理服务用于偶尔的远程访问。从内到内做nat会给DMZ增加更多的负载,在我们的情况下这将是很大的。
  • 如果您不执行DNAT + SNAT,则会得到不对称的路由,这是很难正确完成的。因此,您进行SNAT并丢失源IP信息。但是,将源IP链接到人员以进行故障排除非常有用。或在愚蠢的情况下偶尔进行自我射击。“嘿,这个IP在未经身份验证的服务X上做着奇怪的事情。”“哦,让我们看看imap服务器的日志是谁”。

2
请注意,如果您的防火墙正在执行L3路由,并且您的外部和内部客户端路由都经过防火墙,那么您就不必担心非对称路由,对吗?
MDMarra

12

显然,对此没有确切的答案,但我可以想到许多原因:

  1. 优雅:NAT最初并不是很优雅,但是IPv4受限制的地址空间是必需的。如果我可以避免NAT,我会的。有了IPv6,问题无论如何都会消失。
  2. 复杂性:特别是在您没有一个单独的“核心”路由器创建所有安全边界的情况下,过滤器配置可能会变得非常棘手。否则,您将不得不在几乎所有路由器设备上传播和维护NAT规则。
  3. 参考:无论防火墙管理员与服务器管理员团队的其他成员是谁,都很难联系到他们。为了确保更改不会因防火墙管理员的积压(或休假)而延迟,请选择将职责保留在同一团队中的选项
  4. 可移植性和通用做法:使用DNS视图是“所有人都知道要做的事情”来解决此问题。并非每个边界路由器都会以直接的方式支持环回NAT,因此更少的人可能会知道如何在您的特定环境中正确设置它。在对网络问题进行故障排除时,工作人员将需要了解发夹式NAT配置及其所有含义-即使他们正在追赶一个看似无关的问题。

1
1.在这种情况下,无论如何都在使用NAT。这不是在2之前没有NAT的地方添加NAT。在我的示例中,它们全部由同一设备或设备集群处理。4.如我在上面的评论中所述,一种非常常见的情况是内部使用AD域控制器进行DNS。Windows DNS不支持视图。另外,我发现大多数最新的路由器/防火墙固件都以一种或另一种方式支持NAT发夹。
MDMarra

1
@MDMarra一些评论:1.-我基本上是在说“-不用担心一个NAT怪异”,2.-您的问题并未明确说明,但是仅使用一个路由器,显然会更容易处理。 ,4.有了对所有客户端都是强制性的内部DNS,您就不需要视图-您只需创建一个内部区域并获得与您在问题中提到的效果相同的效果,上面的推理仍然适用。
the-wabbit

1
但是,什么是NAT怪异?这会导致什么特定行为而导致问题?我在一所大学工作,该大学在Netscreen群集上为100多个外部主机配置了NAT发夹,而我们从来没有遇到过问题。
MDMarra

另外请注意,在这种情况下使用发夹NAT实际上是使它看起来更加像IPv6解决方案,因为在IPv6下,系统将有一个全局可达地址; 发夹式NAT模拟了这种行为。
Paul Gear

@MDMarra对于“发夹式NAT”而言,最突出的“ NAT怪异”将是非最佳路由路径,这意味着重写的数据包将必须经过它们进入的大部分路径。对连接进行故障排除时,在数据包转储中看到的情况充其量是令人困惑的。我相信其他人已经在答案中提到了非对称路由问题,这是相关的。毫无疑问,您可以使其正常运行。但是在大多数情况下,IMO都不值得付出努力。
比特猫(

7

免责声明-这是一个烈火的答案。

我认为避免使用此类解决方案的常见原因是网络工程师对NAT的不合理恐惧/憎恨。如果您想查看一些讨论示例,请查看以下内容:

据我所知,这种担心很多源于思科对NAT的不良实施(因此从某种意义上说,这可能不是不合理的),但是在我看来,“经典”网络工程师在“ NAT是糟糕的世界观”,他或她看不到像这样的显而易见的例子,因为这很有意义,并且实际上简化了解决方案。

你去了-投票支持你的内心!:-)


1
我不知道我是否会认为这是非理性的恐惧。经验告诉我,NAT可以破坏很多东西或做一些奇怪的事情。

1
@Kce但是,如果您已经在外部接口上使用NAT,那么配置NAT环回有什么不同?
MDMarra

@MDMarra-真的没有。我的意思是,有些时候网络服务团队对NAT的恐惧不是不合理的。

我不害怕NAT,我讨厌它。
迈克尔·汉普顿

1
编辑帖子以包含仇恨。:-)
Paul Gear

3

我的猜测是:

  1. 拆分DNS更容易理解。
  2. NAT发夹会占用路由器上的资源,而split-dns不会。
  3. 路由器可能具有带宽限制,您无法通过split-dns设置来获得带宽限制。
  4. 由于您避免了路由/ NAT步骤,Split-dns始终会表现更好。

在发夹式NAT的有利方面,

  • 设置完成后就可以使用。
  • 在工作网络和公共互联网之间移动的笔记本电脑的DNS缓存没有问题。
  • 服务器的DNS仅在一个地方进行管理。

对于对内部服务器的流量要求较低的小型网络,我会使用发夹式NAT。对于与服务器建立许多连接且带宽和延迟很重要的大型网络,请使用split-dns。


2

从我的角度来看,这在Cisco Pix到ASA的过渡之间有所改变。丢失alias命令。通常,从Cisco防火墙的内部接口访问外部地址需要某种技巧。请参阅:如何通过外部IP访问内部服务器?

不过,我们并不总是需要维护重复的内部DNS区域。如果在NAT语句上配置,Cisco ASA可以将外部地址的DNS查询重定向到内部地址。但是我更喜欢为公共DNS区域保留一个内部区域,以便具有这种粒度并能够在一个地方进行管理,而不是一步步进入防火墙。

通常,在环境中只有少数服务器可能需要此服务(邮件,Web,一些公共服务),因此这并不是一个大问题。


如果它得到思科的支持和记录,是否会很棘手?当然,这还有更多工作要做,但这会使它变得棘手或棘手吗?
MDMarra

诡计,因为人们不知道/不期望/不思考。这是一个常见的问题:如何从Cisco防火墙内部访问外部IP
ewwhite

Typically, there are only a few servers that may require this within an environment也许在某些地方,但是我在一所大学中工作,其中一所DMZ中有100多个服务器/设备,我还曾在一家测试/认证提供商中工作,其中40多个服务器分布在三个DMZ中。对于较小的公司,您可能只将一台或两台服务器暴露在外部,但这不一定对每个人都是如此。
MDMarra

如果服务器位于DMZ中,那么这不是问题,对吗?
ewwhite

在这种情况下,“ DMZ”是指使用适当的区域之间的默认拒绝规则连接到所述防火墙的外部接口。
MDMarra

2

我可以想到一些原因:

  1. 由于不想将所有内部DNS信息发布给全世界,因此许多组织已经拆分了DNS,因此,无需过多的精力来处理也通过公共IP公开的少数服务器。
  2. 随着组织及其网络的不断壮大,他们通常将为内部人员提供服务的系统与为外部人员提供服务的服务器分开,因此路由到外部人员以供内部使用可能会花费更长的网络路径。
  3. 中间设备对数据包所做的修改越少,则在延迟,响应时间,设备负载和故障排除方面就越好。
  4. (承认,这是非常小的),如果NATing设备没有超出数据包的报头并使用新的IP地址修改数据包中的数据,则NAT仍然会中断。即使只是机构记忆的一种情况,这仍然是人们避免使用它的一个正当理由,尤其是当他们正在处理自己不确定的协议时。

0

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

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


抱歉,我可能会误解您的意思,但是RFC1918地址没有通过Internet路由,因此我看不出试图通过WAN欺骗它们的方法。他们甚至不会跳第一跳。
MDMarra

目标地址是映射到服务器的端口上NAT的公用地址。源地址是NAT内部的专用IP地址之一。源地址不在路由中使用,也不是每个公用路由器都会检查的源地址。与合法内部查询的唯一区别是数据包来自WAN。
肯特郡英格兰
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.