互联网子域名 A 记录是否可以指向内部 IP?这样做是否是一种好的做法?

互联网子域名 A 记录是否可以指向内部 IP?这样做是否是一种好的做法?

我们很快将开展一项工作,我们希望用户连接到基于互联网的服务器,但由于网络链接速度较慢,因此在现场时连接到本地服务器。我们将成为现场的分包商,基础设施将由主要客户提供。

我们希望我们的应用程序首先尝试连接到本地服务器,如果失败或找不到它,则尝试在互联网上连接全球服务器。我考虑使用我们的域名注册商为每个服务器 localproject.domain.com 和 project.domain.com 创建一个项目子域,而不是让开发人员在应用程序配置中使用原始 IP 地址。

我很乐意为 project.domain.com 提供 Web 服务器的公共 Internet IP,但是我可以提供 localproject.domain.com 和内部 192.168.xx 地址吗?

至于最佳实践,我是否应该要求客户端将 localproject.domain.com 的 DNS 条目添加到我们将搭载的基于 LAN 的 DNS 中,而不必前往基于 Internet 的 DNS 服务器?

答案1

您并不是第一个将 DNS 记录指向公共域上的内部 IP 空间的人。我对这个问题的理解是,它主要存在三个问题:

1) 您正在以某种方式暴露实体的内部运作。您将向任何想要知道主机名和与之绑定的内部 IP 地址的人提供这些信息,这可能使他们能够推断出有关该公司网络/设置内部结构的任何信息。这可能是最小或可减轻的风险。

2) 任何试图访问该地址的人都将尝试访问该本地 IP,即使他们不是内部人员——这对于随机的外部用户和在远程站点使用无效设置(没有 VPN、不在公司网络上,等等)的实际客户用户来说都可能造成混淆,从而导致额外的 IT 工作量。

3) 有点与 #2 一致——如果有人在公司网站之外尝试访问“local.domain.com”,并且解析到的 IP 是他们实际所在网络上的有效 IP,该怎么办?如果这是一台做坏事的服务器怎么办?这会带来安全风险,但同样,也有方法可以缓解这种情况(例如,应用程序有自己的身份验证和安全机制来实现这样的事情)。

如果上述 3 个问题不是太令人担忧,或者您愿意努力缓解这些问题,我认为这不是一个特别糟糕的选择。让应用程序首先尝试“local.domain.com”,如果无法解析或无法连接,则尝试“.domain.com”,这似乎是一种明智的处理方法,即如果私有服务器无法正常工作,应用程序应该将其发送到公共服务器。

答案2

至于最佳实践,我是否应该要求客户端将 localproject.domain.com 的 DNS 条目添加到我们将搭载的基于 LAN 的 DNS 中,而不必前往基于 Internet 的 DNS 服务器?

是的,绝对如此。您不仅可以避免 Nex7 指出的问题,还可以让客户更轻松地调试/更改地址(并允许您扩展:例如,当客户使用不同的本地网络打开第二个站点时,他们只需添加具有正确 IP 的本地服务器即可)。

相关内容