这篇文章的目的是让我遇到一些我很难理解的事情,并希望以更专业,客观更好的方式实施。我的一些选择我根本不知道是好还是坏。我相信开放式问题对于那些可以按照文档设置工作的本地DNS服务器的人来说非常有启发性 - 但希望了解并了解事情是如何以正确的方式完成的。因此我选择在这里问一下!
我有一个域sakujo.tld
,并使用namecheap的FreeDNS服务作为授权DNS。我在其区域配置中为以下host.domains配置了条目
nas.home.sakujo.tld
,gateway.home.sakujo.tld
(DDNS通过curl通过cron记录到我的路由器)vps.sakujo.tld
(关于低端精神的VPS记录)*.home.sakujo.tld
,home.sakujo.tld
(他们映射到CNAME gateway.home.sakujo.tld
)mysql, ns01, nzbget, sonarr
(.sakujo.tld
)(他们映射到CNAME nas.home.sakujo.tld
)到目前为止,这么好,非常简单。我在eeePc上运行基于Arch linux的家庭NAS,可以立即处理很多事情。其中一个现在是绑定安装。我的意图是覆盖home.sakujo.tld
及其所有主机,但显然我必须引入相当多的冗余才能实现这些目标。
我想实现一个天真的说话,就像这样
gateway IN A 192.168.0.1
nas IN A 192.168.0.91
phone IN A 192.168.0.41
user2.phone IN A 192.168.0.42
tab IN A 192.168.0.43
htpc IN A 192.168.0.51
tv IN A 192.168.0.55
quad IN A 192.168.0.101
red IN A 192.168.0.111
我希望像这样设置的区域将是所有需要的,但遗憾的是,这太过天真并且不够。我的希望是那个
nas.home.sakujo.tld
(以及gateway.home.sakujo.tld
)现在将解析为192.168.0.91
(和192.168.0.1
),而不是名称标记的外部DNS上的DDNS A记录
这样,如果我使用mysql.sakujo.tld
或sonarr.sakujo.tld
,则DNS查找首先会找到规范名称(CNAME)nas.home.sakujo.tld
(因为它当然是)我希望这个规范名称在上面的区域文件中定义的A记录现在192.168.0.91
。遗憾的是,实际上,mysql
或sonarr
已解析为nas.home.sakujo.tld
(这很好并且想要),但是仍然有一个在namecheap上定义的外部A记录(也为nas.home.sakujo.tld
定义了CNAME的地方。)
所以实质上我必须建立第二个区域。我已经home.sakujo.tld
了,现在我添加了sakujo.tld
。该新区域现在使用我在外部的namecheap配置中定义的所有信息。它是这样的:
mysql IN CNAME nas.home
nzbget IN CNAME nas.home
sonarr IN CNAME nas.home
(我似乎无法让代码在这里工作,道歉)
但是mysql
,nzbget
,sonarr
已经在namecheap上设置了区域条目。这似乎是多余的。我必须这样做吗?或者我可以在namecheap或home.sakujo.tld
的某个地方制作一些vodoo条目并让它转移/更新/授权诸如此类别(我真的不知道从现在开始的事情,你可能已经注意到我试图学习和理解导致这一点的一切 - 从现在开始我已经5岁了。
第一件事:我不知道将什么放入sakujo.tld
@ A记录中,只需指向127.0.0.1
即可。理想情况下,我会把这个条目留下来,因为我没有任何有意义的地方sakujo.tld
映射到。
接下来,我被告知/需要将这些行添加到区域中以使它们变得更好"
$TTL 30
; home.sakujo.tld
@ IN SOA ns01.home.sakujo.tld. postmaster.home.sakujo.tld. (
2015041917 ; Serial
28800 ; Refresh
1800 ; Retry
604800 ; Expire - 1 week
86400 ) ; Minimum
IN NS ns01
IN NS ns02
ns01 IN A 192.168.0.91
ns02 IN A 192.168.0.91
@ IN A 192.168.0.1
我知道TTL是什么,评论可能无关紧要。我相信我可以查看括号中的内容,我已经知道串行设置了。我对这个问题的看法更具实用性。我需要所有这些条目吗?
两个 NS条目和两条A记录都引用它们吗?
@ A记录?
@ SOA条目? (我明白这很可能是 - 我问,因为这可能与第一段有关)
我还尝试用CNAME条目替换@的A记录,但无济于事。它无法解决。
无论哪种方式,我读了很多,我应该有两个名称服务器。我想在VPS上设置另一个外部DNS是有意义的吗?这是微不足道的/与我如何设置第一个相同吗?我想两个ns01条目之间存在关联,并且SOA条目中也出现了ns01。
域名是否应该以这种方式设置?我目前使用两种不同的条目
物理/虚拟主机的唯一FQDN,例如我的NAS的nas.home.sakujo.tld
或电视的tv.home.sakujo.tld
(家庭是位置,子网) - 这就是为什么{{1不在家里。
语义标记的别名。像vps.sakujo.tld
一样。这将是我的主要MySQL服务器 - 我目前只在MariaDB安装中使用单个数据库。或mysql.sakujo.tld
- 因此应该映射到我的Sonarr安装的主机。这样做的好处是,在一年内我可能会使用另一台机器作为MySQL数据库,因此我的配置和数据中的引用应该与物理/虚拟主机无关。
也许有些东西我不明白?即使它类似于"将路由器命名为sonarr.sakujo.tld
而不是portal/router
"更常见。
对于后代,我粘贴了完整的gateway
和区域文件。现在我提到我不知道我是否需要允许更新和通知设置,但我能够自己跟踪文档的这一部分(我只是想我会提到这个以防万一关于为什么我有这些问题的问题,我根本就不知道)
的named.conf
现在我考虑事情,最好设置以下名称服务器
/etc/named.conf
指向ns01.sakujo.tld
nas.home.sakujo.tld
指向namecheap DNS 我可以在这里使用CNAME吗?我是否还必须设置ns02.sakujo.tld
?如果可以,我可以在那里使用CNAME吗?
freenode上#bind的某个人想知道为什么我开始使用单独的子域作为我的家庭网络。他建议我改用观点。
我是否将我的本地网络上的主机放入他们自己的子域是不是随意的?毕竟他们也在他们自己的子网中,从语义上说它似乎有意义。
我读了一些有关观点的内容,但他的建议似乎并不适用于我第一次快速和天真的一瞥。我的意思是我不打算将我的本地DNS暴露给互联网,因此没有必要为不同的客户端分别配置区域。我希望所有区域配置都适用于使用DNS的所有客户端。
也许他建议在namecheap的DNS上使用观点?那甚至会起作用吗?另外,namecheap将如何判断我是从家庭网络还是从外部网络发出DNS请求?在我不在我的本地子网中之后,将ns0#.home.sakujo.tld
上的主机映射到home.sakujo.tld
并没有那么多帮助。