--- 已编辑以反映我在一个域上运行该应用程序的多个副本的事实 ----
遇到了一个无法解决的问题,想知道这里是否有好心人有经验!
我在 Azure VM(Windows Server 2019)上的单个域的各个子域上运行多个基于 Web 的 .NET 应用程序。比如说 app.clientdomain.com、app-test.clientdomain.com、app-dev.clientdomain.com。我无法控制此域的公共 DNS,因为客户端拥有该域(他们有一个 CNAME 记录,将 app.clientdomain.com 指向位于 VM 前面的 Azure 应用程序网关的 FQDN)。
应用程序需要本地 DNS 环回才能使某些功能正常工作,我使用了 Azure 私有 DNS 区域,将 clientdomain.com 作为主域,app.clientdomain.com、app-test.clientdomain.com 和 app-dev.clientdomain.com 的 A 记录都指向虚拟机的私有 IP 地址。这对于本地 DNS 环回来说非常有效。
我现在还需要能够访问同一域中的 FTP 服务器,例如 ftp.clientdomain.com。所涉及的特定 sFTP 服务器位于我的 Azure 订阅之外,不受我控制。
然而,我遇到的问题是,DNS 可以很好地解析外部世界的 ftp.clientdomain.com,但无法从 VNet 内部解析(NSLookup 报告“不存在的域”)。
我理想情况下不想在我的私有区域中放置 ftp.clientdomain.com 的 A 记录,因为客户端可能会在没有通知的情况下更改 IP 地址,这会破坏我的应用程序访问 sFTP 服务器的能力。
如果在私有区域中找不到匹配的 DNS 记录,我期望它应该到达外部公共 DNS,这是否不合理?是我做错了什么,还是出了什么问题?
提前感谢您的任何意见!
答案1
您已创建与公共区域匹配的私有区域。如果名称在私有区域中无法解析,则返回 NXDOMAIN。DNS 客户端或解析器不会尝试公共区域。
解决方案:为私有区域选择不同的区域名称,以便私有名称和公共名称都可以解析。