使用两个 ForeFront TMG 2010 防火墙进行非对称路由

使用两个 ForeFront TMG 2010 防火墙进行非对称路由

我遇到了一个奇怪的网络问题。

有一个网络,单个 IP 子网:192.168.60.0/24。

网络有两个与 Internet 连接的防火墙(运行 ForeFront TMG 2010),192.168.60.253(生产)和 192.168.60.240(开发);这是必要的,因为有两个环境,每个环境都需要自己的 Internet 发布规则;但是,由于历史原因,它们共享相同的 IP 子网,并且这不容易更改。因此,生产计算机使用 192.168.60.253 作为其默认网关,而开发计算机使用 192.168.60.240。只要不涉及其他网络,一切都会正常。

但是,当然,还有另一个网络(实际上不止一个,但我们简化一下)连接到生产防火墙上的第三个 NIC,即 192.168.100.0/24。此网络中的计算机使用该防火墙作为其默认网关。它们可以与主网络中的生产计算机通信,反之亦然。

当 192.168.100.0/24 网络中的计算机尝试与主网络中的开发计算机通信时,这是行不通的,因为他们的默认网关(开发防火墙)不知道如何发回数据包。这是意料之中的。所以我向开发防火墙添加了一个永久静态路由,告诉它“当你需要发送数据包到 192.168.100.0/24 时,将其发送到 192.168.60.253“;我还在TMG端的网络配置中定义了网络,启用了两个网络之间的所有流量。

现在,真正奇怪的是:两个网络之间的 ping 可以工作,但任何其他协议都不行。HTTP、RDP、SMB……什么都无法通过,尽管路由似乎可以工作,并且防火墙策略对所有事物都开放。

发生了什么事,为什么,我该如何解决它(除了手动向每个开发服务器添加静态路由,这是我想避免的)?


更新:

我检查了开发防火墙中的流量日志,发现 TCP 数据包被丢弃的原因是:从防火墙的角度来看,它们与任何打开的连接无关。这实际上是有道理的,因为当启动连接时,TCP 握手的初始数据包会通过生产防火墙,而答案会尝试通过开发防火墙返回……并且 TMG 会丢弃它,因为它根本看不到第一个数据包。这也解释了为什么 TCP 不起作用而 ICMP(可能还有 UDP)起作用。

但是,如果可以的话,我该如何解决这个问题并使这种不对称路由正常工作呢?

答案1

我认为...

从 192.168.100.x 到 DEV 盒的数据包被路由:

  • 进入TMG-PROD
  • 然后到 DEV 框

但是,从 DEV Box 到 192.168.100.x 的数据包

  • 走进TMG-DEV
  • 然后到 TMG-PROD
  • 然后到 192.168.100.x

因此,您需要使这些路由相同,因此一个建议是向 DEV 框添加静态路由,以便 192.168.100.x 流量被定向到 TMG-PROD 网关(192.168.60.253)

相关内容