前面我們自己配置了一個zone區域數據文件,但是里面的記錄不是太清楚,這章我們來研究下這些記錄的所用和區域數據文件的格式
1)DNS常用記錄類型
區域解析庫文件:每個域名都有一個自己的區域解析庫文件(zone文件),由一條條資源記錄來定義具體指向
SOA記錄:起始授權記錄,一個區域解析庫只能有一個SOA記錄,而且必須為第一條。打個比方,建了個海島,需要對外宣布世界上多了一個海島,這個事情就是SOA在做
NS記錄:域名服務記錄,一個區域解析庫可以有多個NS記錄,其中一個為主服務器。結合上面的例子,NS記錄可以理解為用來宣布島主是誰
A記錄:地址記錄,從域名解析為IP的記錄
AAAA:IPv6的地址記錄
PRT:反向解析記錄,從IP解析為域名
MX:郵件交換記錄。我們平時發郵件都是直接發到qq.com、163.com等域名上,但是這些域名肯定是有多台服務器的,MX記錄就是指明了哪個服務器會負責郵件。MX服務可以存在多個,由優先級來區分先后,0-99,數字越小優先級越高
CNAME記錄:給一個地址設置一個別名
在DNS服務器中每個域都要通過zone文件保存信息,文件語法格式是標准化的,一個典型配置如下:
$TTL 1D
@ IN SOA @ repo.com(
2 ;
604800 ;
86400 ;
2419200 ;
604800 ) ;
IN NS ns
ns IN A 192.168.56.6
www IN A 192.168.56.6
1,首先在區域解析庫zone文件的開頭定義SOA記錄,定義格式:
@ IN SOA @ repo.com(
2 ; #serial序列號,標識是第幾個版本
604800 ; #refresh刷新時間
86400 ; #retry重試時間
2419200 ; #expire過期時間
604800 ) ;#否定回答時間
2,定義當前區域的NS記錄,定義格式示例:
IN NS ns #NS記錄
ns IN A 192.168.56.6 #NS記錄所引用的A記錄
3,MX記錄定義格式示例(多了一個優先級):
@ IN MX 10 mx1.repo.com
@ IN MX 20 mx1.repo.com
4,A記錄記錄定義格式示例:
www IN A 192.168.56.6 #FQDN自動補齊:在區域數據文件中,沒有使用點號"."結尾的,在實際使用的時候都會自動補上域名,使其變為 FQDN。例如:上面文件中的 www,會自動補全為 www.repo.com.
5,PTR記錄(IP反過來寫,加特定后綴):
6.56.168.192.in-addr.arpa IN PTR www.repo.com.
6,CNAME記錄定義格式示例:
web.repo.com IN CNAME www.repo.com
2)兩種不同寫法的zone區域數據文件:
FQDN的寫法:
$TTL 600
@ IN SOA master.abc.com. woodie.abc.com. ( 2017022802 3H 15M 1W 1D )
@ IN NS master.abc.com.
master.abc.com. IN A 192.168.80.110
@ IN MX 10 www.abc.com.
www.abc.com. IN A 192.168.80.121
bbs.abc.com. IN CNAME www.abc.com.
ftp.abc.com. IN CNAME www.abc.com.
linux.abc.com. IN CNAME www.abc.com.
slave.abc.com. IN A 192.168.80.120
122.abc.com. IN A 192.168.80.122
簡寫:
$TTL 600
@ IN SOA master.abc.com. woodie.abc.com.( 2017022802 3H 15M 1W 1D )
@ IN NS master
master IN A 192.168.80.110
@ IN MX 10 www
www IN A 192.168.80.121
bbs IN CNAME www
ftp IN CNAME www
linux IN CNAME www
slave IN A 192.168.80.120
122 IN A 192.168.80.122
簡寫不太容易看明白,而FQDN的寫法,又太啰嗦,而且要注意.(點號),所以我個人偏好喜歡這樣的寫法。
$TTL 600
@ IN SOA master.abc.com. woodie.abc.com.( 2017022802 3H 15M 1W 1D )
@ IN NS master.abc.com.
master IN A 192.168.80.110
@ IN MX 10 www.abc.com.
www IN A 192.168.80.121
bbs IN CNAME www.abc.com.
ftp IN CNAME www.abc.com.
linux IN CNAME www.abc.com.
slave IN A 192.168.80.120
122 IN A 192.168.80.122
其中soa記錄的字段解釋:
master.abc.com. woodie.abc.com. :這里是SOA的固定格式,這里有兩部分內容,中間用空格隔開,前半部分:Zone的主 DNS 服務器的主機名,后半部分:管理Zone的負責人的電子郵件地址。在該電子郵件名稱中使用英文句點 (.) 代替“at”符號 (@)。
$TTL 指令:該zone的緩存時間
serial:數值Serial代表這個Zone的序列號,序號越大表明資料越新,主要用在 master / slave 同步使用,每次Zone文件更新,都需要修改Serial數值。RFC1912 2.2建議的格式為YYYYMMDDnn 其中nn為修訂號,,但序號的最大值不能大於2的32次方,即4294967296
refresh:數值Refresh設置Slave DNS多長時間與Master Server進行Serial核對。目前Bind的notify參數可設置每次Master DNS更新都會主動通知Slave DNS更新,Refresh參數主要用於notify參數關閉時;
retry:數值Retry設置當Slave DNS試圖獲取Master DNS Serial時,如果Master DNS未響應,多長時間重新進行檢查;
expire:如果master/slave在1周內都鏈接失敗,slave將不再嘗試鏈接master,但注意,此時slave還會繼續提供解析服務,只是數據不在更新。
Minimum:在 8.2版本之前,由於沒有獨立的 $TTL 指令,所以通過 SOA 最后一個字段來實現。但由於 BIND 8.2 后出現了 $TTL 指令,該部分功能就不再由 SOA 的最后一個字段來負責,由 $TTL 全權負責,SOA 的最后一個字段專門負責 negative answer ttl(negative caching)
名字解釋:
經常提到RR是什么意思呢?RR是Resource Record的縮寫,包括A, NS, SOA, CNAME, MX.
注:
1,TTL可以從全局繼承,不用每個記錄都定義具體的TTL
2,@符號可以表示當前區域的名稱,所以真需要寫@的時候由.來代替。如最后一行“www IN A 192.168.56.6” 代表www.repo.com是解析到192.168.56.6這個地址的
3, 相鄰的兩個記錄,如果NAME相同那么后面一條的NAME可以省略,如:
www IN A 192.168.56.6
IN A 192.168.56.7 #沒寫name
bbs IN A 192.168.56.100
4, 對於正向區域來說,如果MX、NS等類型的記錄VALUE為一個FQDN,那么此FQDN應該有一個A記錄,例如上面的NS記錄: