是否可以设置 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://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 记录。