我有一个 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.net
home.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 记录后。感觉有点奇怪,你必须提供这些记录,因为它们指向本身? 这是为什么?