NAT 导致巨大的外部(实际上是内部)带宽使用量

NAT 导致巨大的外部(实际上是内部)带宽使用量

我们在数据中心运行了 4 台服务器,分配了内部 IP:192.168.3.*。硬件(FORTIGATE)防火墙配置了 NAT,它将流量引导为:外部 IP:

111.222.333.10 -> 192.168.3.10  www.server1.com
111.222.333.11 -> 192.168.3.11  www.server2.com
111.222.333.12 -> 192.168.3.12  www.server3.com

在 DNS 中,我们有 www.server1.com A 111.222.333.10

现在,如果我从 www.server2.com 向 www.server1.com 发送大量数据,数据将通过 111.222.333.10(外部 IP)发送,这会导致我们的带宽使用量巨大(昂贵!)。

我的解决方法是向 server2 添加本地主机映射:

192.168.3.10  www.server1.com. 

这样,当从 server2 向 www.server1.com 发送文件时,它将是内部的。

然而,我们的服务器越来越多,手动为每个服务器添加映射会很困难。

我只是想知道我们还有其他解决方案吗?我们可以在 FORTIGATE 防火墙中做些什么吗?

ps. 使用的DNS服务器是公共的,例如opendns,Google dns等。

答案1

192.168.3.10不会,与进行通信不会影响您的外部带宽www.server2.com

流量将从服务器 1 路由到 Fortigate,然后 Fortigate 会将其发送到服务器 2。它永远不会穿越 Fortigate 上的外部网络。

每台服务器上的静态主机文件是最好的方法。只需编写一次,然后使用简单的脚本将其推送到每台主机。您的替代方案是运行自己的 DNS 服务器,并创建一个拆分 DNS,其中内部主机获取本地 IP,但其他主机则不获取。

答案2

您使用什么 DNS 服务器?您是否依赖某些可以控制的东西?

如果您可以控制所有机器的 DNS 服务器,则可以设置裂脑 DNS。如果您只为 LAN 运行 DNS 服务器,这实际上会更容易。您只需将其配置为对 server1.com 返回 192.168.3.10,而不是返回公共 IP。

答案3

您可能能够从/etc/hosts文件中获取内部地址。您需要将其复制到所有服务器。如果您无法将文件配置为优先于 DNS 服务器,您可以在服务器上设置 dnsmasq 并向其提供 hosts 文件。然后配置服务器以引用它。

相关内容