更新区域文件 - 添加 CNAME 记录 - 如何排除故障/我哪里做错了?

更新区域文件 - 添加 CNAME 记录 - 如何排除故障/我哪里做错了?

我提前为这个新手问题道歉。我之所以提出这个问题,是因为我似乎无法在这个网络或其他地方找到足够多的密切相关的查询*,而且 BIND 9.9 ARM 对新手并不十分友好。

* 我应该说我发现了很多相关的查询,但它们的答案往往涉及语法更正之类的内容。

无论如何,我的经理正在尝试为我们的网站设置一些营销自动化软件。他要求我将一些 CNAME、MX 和 TXT 记录添加到域的区域文件。我们在 Debian 8 系统上使用 BIND 9。

我大致了解了更新区域文件的过程。我知道我必须增加文件的序列号,并且我知道如何重新加载区域、重新启动 BIND 等。

我还了解我可以使用来检查区域文件的语法named-checkzone

为了说明这种情况,下面是我们区域文件的近似模拟:

$TTL    300

@       IN      SOA     ns1.example.com. 
jack.example.com. (
    2017122708      ; Serial
    10800   ; Refresh
    3600    ; Retry
    604800  ; Expire
    10800 ) ; Minimum

example.com.               IN NS   ns1.example.com.
example.com.               IN NS   ns2.example.com.
ns1.example.com.           IN A    199.195.xxx.yyy
ns2.example.com.           IN A    199.195.xxx.yyy
ipv4.example.com.          IN A    199.195.xxx.yyy
example.com.               IN A    199.195.xxx.yyy
remote.example.com.        IN A    173.9.zz.ccc
ftp.example.com.           IN CNAME        example.com.
www.example.com.           IN CNAME        example.com.
@                          IN MX   0 example-com.mail.protection.outlook.com.
autodiscover               IN CNAME        autodiscover.outlook.com.
sip                        IN CNAME        sipdir.online.lync.com.
lyncdiscover               IN CNAME        webdir.online.lync.com.
msoid                      IN CNAME        clientconfig.microsoftonline-p.net.
enterpriseregistration     IN CNAME        enterpriseregistration.windows.net.
enterpriseenrollment       IN CNAME        enterpriseenrollment.manage.microsoft.com.
_dmarc.example.com.        IN TXT  "v=DMARC1; p=none"
example.com.               IN TXT  "v=spf1 +a +mx +a:example.com include:spf.protection.outlook.com -all"

_sip._tls                  IN SRV  100 1 443 sipdir.online.lync.com.
_sipfederationtls._tcp     IN SRV  100 1 5061 sipfed.online.lync.com.

; I've been directed to add the records below:
34783aoauth._domainkey.example.com.        IN CNAME dkim.act-on.com.
mailer.example.com.        IN TXT "v=spf1 include:_spf.act-on.net -all"
mailer.example.com.        IN MX 10 est-mta.b2b-mail.net.
marketing.example.com.     IN CNAME example.actonservice.com.

我被指示添加最后四条记录。根据我对 DNS 的基本理解,我想我正在尝试将 eg 指定34783aoauth._domainkey.example.com为 的别名dkim.act-on.com。因此,我认为,假设我按照上述方法正确更新了区域,我可以nslookup像这样运行:

jack@example:~$ nslookup 34783aoauth._domainkey.example.com
Server:         127.0.0.1
Address:        127.0.0.1#53

** server can't find 34783aoauth._domainkey.example.com: NXDOMAIN

相反,我得到了NXDOMAIN错误。我认为这不太好。

所以,我想你可以把我的问题总结为我该如何排除配置故障,以便能够解析该 CNAME(加上其他 3 条记录)?此外,我应该如何检查它是否正确解析?我的方法合适吗?例如,nslookup使用 会更好吗?dig

我意识到整个区域文件有点乱。我最初是自己设置的,由于我是软件开发出身,我并不经常涉足这种系统管理,但到目前为止,它运行得还不错。

令我困扰的一件事是输出named-checkzone

jack@example:~$ sudo named-checkzone example.com /etc/bind/zones/master/db.example.com
zone example.com/IN: 'example.com' found SPF/TXT record but no SPF/SPF record found, add matching type SPF record
zone example.com/IN: 'mailer.example.com' found SPF/TXT record but no SPF/SPF record found, add matching type SPF record
zone example.com/IN: loaded serial 2017122708
OK

它似乎在抱怨两个 SPF 文本记录,但我不确定当它说我需要添加一个匹配的 SPF 记录时它是什么意思。BIND 9.9 ARM 似乎没有提到这一点,我不确定“不匹配”记录的影响是什么。也许这与我的问题有关,但也许本质上是巧合。


Jacob Evans 询问输出结果是什么sudo named-checkconf -z。输出结果如下(不过请注意,自原始帖子发布以来,我已编辑区域文件,因此也编辑了其序列号):

jack@example:~$ sudo named-checkconf -z
zone example.com/IN: 'example.com' found SPF/TXT record but no SPF/SPF record found, add matching type SPF record
zone example.com/IN: 'mailer.example.com' found SPF/TXT record but no SPF/SPF record found, add matching type SPF record
zone example.com/IN: loaded serial 2017122715
zone 0.168.192.in-addr.arpa/IN: loaded serial 1
zone localhost/IN: loaded serial 2
zone 127.in-addr.arpa/IN: loaded serial 1
zone 0.in-addr.arpa/IN: loaded serial 1
zone 255.in-addr.arpa/IN: loaded serial 1

答案1

事实证明,BIND 已设置为与 Plesk 配合使用,但它从与我预期不同的位置获取区域文件。当我对正确的区域文件进行更改时,一切都按预期运行。

感谢 Jacob Evans 和 Patrick Mevzek 帮助我解决这个问题!

相关内容