Domain-Name-System

更新區域文件 - 添加 CNAME 記錄 - 如何排除故障/我哪裡出錯了?

  • December 28, 2017

我提前為這個新手問題道歉。我之所以求助,是因為我似乎無法在此網路或其他地方找到足夠多的密切相關的查詢*,而且 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 的基本了解,我想我正在嘗試分配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

事實證明,BIND 已設置為與 Plesk 一起使用,並且它從與我預期不同的位置獲取區域文件。當我對正確的區域文件進行更改時,一切都按預期工作。

感謝 Jacob Evans 和 Patrick Mevzek 幫助我解決這個問題!

引用自:https://serverfault.com/questions/889801