是否可以使用转换DNS后缀的Bind9设置DNS转发?

时间:2019-03-25 23:21:31

标签: azure dns azure-virtual-network bind9

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

例如,我可以设置Bind9来解析[ { "op": "test", "path": "/rev", "value": 1 }, { "op": "remove", "path": "/relations/0" } ] 的DNS请求,将这些请求转发到machine-name.my-app.internal。在这种情况下,machine-name.k8zb98713j4bka.dx.internal.cloudapp.net是后缀,需要转换为my-app.internal

我在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设置运行良好。我遇到的一个问题是,如果我想使用机器名在VM之间进行通信,我将无法仅解析机器名。我需要使用:

k8zb98713j4bka.dx.internal.cloudapp.net

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

这里命名为.conf.options:

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

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

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

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; };
};

代替:

nslookup machine-name.my-app.internal

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

1 个答案:

答案 0 :(得分:1)

  

自定义DNS设置运行良好。我遇到的一个问题是,如果我   想在虚拟机之间使用机器名进行通信,我无法   仅解析计算机名称。

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

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