Azure DNS 转发器不适用于公共资源

问题描述

我正在尝试解析 Azure 中数据库的私有和公共 IP 地址。我通过 VPN 连接做到这一点。我目前在 Azure 中有 2 个 DNS 转发器虚拟机,它们在我的 VPN 配置中指定为 DNS 服务器。 DNS转发配置如下:

acl goodclients {
    10.0.0.0/8;
    localhost;
    localnets;
};

options {
        directory "/var/cache/bind";

        recursion yes;
        allow-query { goodclients; };

        forwarders {
            168.63.129.16;
        };
        forward only;

        dnssec-enable yes;
        dnssec-validation yes;

        auth-nxdomain no;    # conform to RFC1035
        listen-on { any; };
};

我在 Azure 中有两个数据库服务器,一个一个私有端点,在私有 DNS 区域中有一个记录,另一个没有。当我现在尝试使用 nslookup 解析 ip 时,我得到以下结果:

  • 拥有私有链接的人按预期返回其私有 IP
  • 找不到私有链接的那个:** server can't find db1.database.windows.net: NXDOMAIN

这是否意味着我不能将私有 DNS 区域与同一域上的非私有资源结合使用?我希望 Azure DNS 能够同时解析两者(超过 168.63.129.16)

更新 我能够缩小范围。似乎当您添加一个私有端点并且不在您的私有 DNS 区域中注册它时,它不再起作用。我希望仍然能够解析公共 ip,因为当时 DNS 对私有端点一无所知,而且我没有更改数据库服务器上的防火墙设置? 在此特定场景中,我在 Azure 数据工厂上使用新的托管 VNet 选项来私下访问数据库。我暂时也希望能够使用公共 IP。

解决方法

this 文档中发现以下内容:

已使用给定类型的私有 DNS 区域的私有网络,只有在没有任何私有端点连接的情况下才能连接到公共资源,否则私有 DNS 区域需要相应的 DNS 配置才能完成DNS解析顺序。

这证实了我在问题更新中的发现和解释。