我们正在将本地/数据中心服务从主机托管迁移到 Microsoft Azure。我们有多个域,我们将其称为 myapp.com。myapp.com Web 服务器可供全世界使用,此域的公共 DNS 由 Route 53 处理。
在 myapp.com 服务器所在的 Microsoft Azure VNET 中,我们为 myapp.com 创建了一个私有 Azure DNS 区域,并配置了 VNET 以使用它。这样我们就可以在这里放置内部主机名 - 例如 sql.myapp.com、test-host.myapp.com 等,以便解析指向内部 myapp.com 资源的主机名。
一旦我们在 Azure 中创建私有 DNS 区域并链接 VNET,所有公共条目都不可用,因为 Azure DNS 私有区域具有权威性。
我的疑问:有没有办法对同一个域使用 Azure 私有 DNS 和 Route53 公共 DNS,而无需在两个地方维护整个区域文件?
在共置环境中,我们使用本地服务器,DNSMASQ 作为内部 DNS,它只能使用其主机文件作为解析器,任何未解析的内容都会转发到公共 DNS。这真的很容易,因为它不是权威解析器,只包含内部主机。
显然,如果使用 Azure DNS(例如应用程序网关),某些 Azure 服务会运行得更好,因此我们希望使用它。
提前感谢任何帮助。
答案1
您需要设置一个带有条件转发器的自托管 DNS 服务器。例如,Ubuntu 上的 Docker 映像以无约束方式运行,其中有一个转发器区域用于内部域,其余区域用于 AWS。但我不明白为什么您在 Azure 中使用 route53,Azure dns 完全能够进行公共解析。
您可能需要创建一个 S2S vpn,以便能够使用来自 Azure 的 route53 进行解析
还有这个容器镜像https://github.com/whiteducksoftware/az-dns-forwarder/blob/master/README.md您需要在 aws 中配置出站路由 53 解析器。
在 Azure 中,您将需要配置入站解析器。
然后在 AWS 中为您希望转发到 Azure 的域创建路由 53 规则,以便在 Azure 中设置相应的入站解析器。
这将允许您解析内部 Azure DNS 区域。