BIND的高级DNS设置,关于本地家庭网络的子域,它很好地集成到其父域(在外部网络上)

时间:2015-04-19 17:15:00

标签: dns

这篇文章的目的是让我遇到一些我很难理解的事情,并希望以更专业,客观更好的方式实施。我的一些选择我根本不知道是好还是坏。我相信开放式问题对于那些可以按照文档设置工作的本地DNS服务器的人来说非常有启发性 - 但希望了解并了解事情是如何以正确的方式完成的。因此我选择在这里问一下!

我有一个域sakujo.tld,并使用namecheap的FreeDNS服务作为授权DNS。我在其区域配置中为以下host.domains配置了条目

  • nas.home.sakujo.tldgateway.home.sakujo.tld(DDNS通过curl通过cron记录到我的路由器)
  • vps.sakujo.tld(关于低端精神的VPS记录)
  • *.home.sakujo.tldhome.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

我希望像这样设置的区域将是所有需要的,但遗憾的是,这太过天真并且不够。我的希望是那个

  1. nas.home.sakujo.tld(以及gateway.home.sakujo.tld)现在将解析为192.168.0.91(和192.168.0.1),而不是名称标记的外部DNS上的DDNS A记录

  2. 这样,如果我使用mysql.sakujo.tldsonarr.sakujo.tld,则DNS查找首先会找到规范名称(CNAME)nas.home.sakujo.tld(因为它当然是)我希望这个规范名称在上面的区域文件中定义的A记录现在192.168.0.91。遗憾的是,实际上,mysqlsonarr已解析为nas.home.sakujo.tld(这很好并且想要),但是仍然有一个在namecheap上定义的外部A记录(也为nas.home.sakujo.tld定义了CNAME的地方。)

  3. 所以实质上我必须建立第二个区域。我已经home.sakujo.tld了,现在我添加了sakujo.tld。该新区域现在使用我在外部的namecheap配置中定义的所有信息。它是这样的:

    mysql IN CNAME nas.home

    nzbget IN CNAME nas.home

    sonarr IN CNAME nas.home (我似乎无法让代码在这里工作,道歉)

  4. 但是mysqlnzbgetsonarr已经在namecheap上设置了区域条目。这似乎是多余的。我必须这样做吗?或者我可以在namecheap或home.sakujo.tld的某个地方制作一些vodoo条目并让它转移/更新/授权诸如此类别(我真的不知道从现在开始的事情,你可能已经注意到我试图学习和理解导致这一点的一切 - 从现在开始我已经5岁了。

    @和NS条目

    第一件事:我不知道将什么放入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

    现在我考虑事情,最好设置以下名称服务器

    1. /etc/named.conf指向ns01.sakujo.tld
    2. nas.home.sakujo.tld指向namecheap DNS
    3. 我可以在这里使用CNAME吗?我是否还必须设置ns02.sakujo.tld?如果可以,我可以在那里使用CNAME吗?

      修改

      freenode上#bind的某个人想知道为什么我开始使用单独的子域作为我的家庭网络。他建议我改用观点。

      我是否将我的本地网络上的主机放入他们自己的子域是不是随意的?毕竟他们也在他们自己的子网中,从语义上说它似乎有意义。

      我读了一些有关观点的内容,但他的建议似乎并不适用于我第一次快速和天真的一瞥。我的意思是我不打算将我的本地DNS暴露给互联网,因此没有必要为不同的客户端分别配置区域。我希望所有区域配置都适用于使用DNS的所有客户端。

      也许他建议在namecheap的DNS上使用观点?那甚至会起作用吗?另外,namecheap将如何判断我是从家庭网络还是从外部网络发出DNS请求?在我不在我的本地子网中之后,将ns0#.home.sakujo.tld上的主机映射到home.sakujo.tld并没有那么多帮助。

0 个答案:

没有答案