1

是否可以设置 Bind9 来转发 DNS 请求,以便请求的 DNS 后缀是另一个更长、更复杂的后缀的别名。

例如,我是否可以设置 Bind9 来解析machine-name.my-app.internal这些请求将被转发到的 DNS 请求machine-name.k8zb98713j4bka.dx.internal.cloudapp.net。在这种情况下my-app.internal,后缀需要被翻译成k8zb98713j4bka.dx.internal.cloudapp.net.

我在 Azure 中设置了虚拟网络,并注册了自定义 DNS 服务器。我根据文章使用 Ubuntu 和 Bind9 设置了 DNS 服务器:

https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-private-network-dns-server-on-ubuntu-16-04

https://github.com/Azure/azure-quickstart-templates/tree/master/301-dns-forwarder/

自定义 DNS 设置效果很好。我遇到的一个问题是,如果我想在虚拟机之间进行通信,使用机器名,我不能只解析机器名。我需要使用:

ping machine-name.<unique-id>.dx.internal.cloudapp.net

这很烦人,而且容易出错,因为我需要复制粘贴完整的后缀。

这里是named.conf.options:

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

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

        recursion yes;
        allow-query { goodclients; };

        forwarders {
                168.63.129.16;
                8.8.8.8;
                8.8.4.4;
        };
        forward only;

        dnssec-validation auto;

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

如果存在这样的事情,我希望使用自定义 bind9 DNS 服务器注册一个“后缀别名”。

最坏的情况,我需要创建区域文件,并手动注册 A 记录以引用私有 IP 地址。但我更喜欢使用:

nslookup machine-name.my-app.internal

代替:

nslookup machine-name.k8zb98713j4bka.dx.internal.cloudapp.net

以上两个请求都将解析相同的私有 IP 地址,而无需手动注册 DNS A 记录。

4

1 回答 1

1

自定义 DNS 设置效果很好。我遇到的一个问题是,如果我想在虚拟机之间进行通信,使用机器名,我不能只解析机器名。

据我所知,如果名称解析在位于同一虚拟网络中的 VM或同一云服务中的 Azure 云服务角色实例之间有效。您可以直接使用主机名或 FQDN。其他方案仅适用于 FQDN。检查 Azure VNet 中的名称解析方案

因此,如果您只是在同一个虚拟网络中工作,您应该nslookup使用 Azure DNS Private Zones 或 Azure 提供的名称解析的计算机名称。不同虚拟网络中的 VM 之间的名称解析仅适用于 FQDN。

于 2019-03-26T08:11:31.523 回答