如何将子域的 DNS 委托给我自己的 BIND9 服务器?

如何将子域的 DNS 委托给我自己的 BIND9 服务器?

我有一个 VPS(运行 Debian)和一个域名(“mydomain.net”)。我想要实现的是:我想为我家里的动态主机(例如我的 NAS 等)创建一个子域名“home.mydomain.net”,这样我就可以使用“nas.home.mydomain.net”从任何地方解析我的 NAS。(最后我想构建自己的 DynDNS 服务,但更新部分等不是这里的重点,我可以处理。)

让我们假设我想要一个指向test.home.mydomain.net现在的 DNS 条目8.8.8.8(因为我可以确定会有一个 ICMP 回显,所以我可以稍后更改它)。

从我研究如何配置事物时读到的内容来看,我认为我需要具备以下这些东西:

  • 在我的 VPS 上运行的 BIND9 DNS 服务器
  • DNS 区域A中的一条记录指向我自己的 DNS 服务器mydomain.net
  • DNS 区域NS中的记录,将请求委托给我的 VPS 上上述名称服务器mydomain.nethome.mydomain.net

在我的 VPS 管理后端,我可以编辑我的 DNS 区域,mydomain.net并添加了上面提到的条目,这些是现在的条目(123.123.123.123 代表我的 VPS 的固定 IPv4 地址):

mydomain.net        86400   SOA 0   ns1.myprovider.net. hostmaster.myprovider.net. 2018041707 3600 1200 2419200 86400   
mydomain.net        86400   NS  0   ns1.myprovider.net  
mydomain.net        86400   NS  0   ns2.myprovider.net  
mydomain.net        86400   NS  0   ns3.myprovider.net  
home.mydomain.net   86400   NS  0   ns.mydomain.net 
ns.mydomain.net     86400   A   0   123.123.123.123
mydomain.net        86400   A   0   123.123.123.123
www.mydomain.net    86400   A   0   123.123.123.123

到目前为止,这些是否正确?目前,我可以成功 ping ns.mydomain.net

nslookup www.mydomain.net当我从单独的 Windows 框执行操作时,它会正确解析为 123.123.123.123。

当我尝试查找不存在的内容时nslookup xyz.mydomain.net,我立即得到答案:该域不存在。

当我尝试解析例如 时test.home.mydomain.net,需要几秒钟才能得到DNS request timed out.。据我所知,到目前为止这是正确的,对吗?DNS 请求被委托给ns.mydomain.net,但尚未得到任何答复,因此我收到超时。

下一步:在我的 Debian VPS 上安装和配置 BIND9。我刚刚安装了它(apt install bind9)。现在我想以这样一种方式设置它,使它只负责解析 中的主机home.mydomain.net。我不需要一个成熟的 DNS 服务器来转发任意请求等,我所需要的只是它“感觉负责” 中的主机并且home.mydomain.net(目前)解析test.home.mydomain.net为 8.8.8.8。关于 bind9 配置的信息非常多,但我没能找出我到底需要做什么。以下是我尝试过的:

(更新) 这是我的/etc/bind/named.conf.local

zone "home.mydomain.net" {
    type master;
    file "/etc/bind/db.home.mydomain.net";
};

对应的是/etc/bind/db.home.mydomain.net

$TTL 5
@ IN SOA ns.mydomain.net. root.mydomain.net. (
    10;
    3600;
    1200;
    2419200;
    86400;
);
ns.mydomain.net  IN      A    [My NS IPv4 address]
ns.mydomain.net  IN      AAAA [My NS IPv6 address]
test             IN      A    8.8.8.8

重新启动 bind9 后,此方法不起作用,我无法解析test.home.mydomain.net到 8.8.8.8。,我仍然遇到请求超时。我想我可能没有完全理解 SOA 记录的作用,否则我错过了其他东西。有人能告诉我缺少什么和/或错误吗?

更新:

上述配置现在有效了 - 在为我的名称服务器添加 A 和/或 AAAA 记录后。感觉有点奇怪,你必须提供这些记录,因为它们指向本身? 这是为什么?

相关内容