2012-10-09

DNS資源紀錄(Resource Record)介紹

 DNS server內的每一個網域名稱都有自己的檔案,這個檔案一般會稱為區域檔案 (zone file),例如之前所提到的”named.ca”或”named.local” 檔案…等等。區域檔案是由多個記錄組成的,每一個記錄稱為資源記錄(Resource Record,簡稱RR)。當在設定DNS名稱解析、反向解析及其他的管理目的時,您需要使用不同類型的RR,底下將介紹常用的RR類型及表示法。

類型

SOA

Start Of Authority,這種 record 放在 zone file 一開始的地方,每一個記錄檔只能有一個 SOA,而且一定是檔案中第一個“記錄”,它描述這個 zone 負責的 name server,version number…等資料,以及當 slave server 要備份這個 zone 時的一些參數。 緊接在 SOA 後面指定了這個區域的授權主機和管理者的信箱,這裡分別是 "school.edu.tw" 和" root.school.edu.tw",也就是school.edu.tw主機和 root 的信箱。這裡要注意的是我們以"root.school.edu.tw"代表"root@school.edu.tw"
e.g.

  @    IN      SOA          school.edu.tw. root.school.edu.tw.  (
                                    1999051401      ; Serial
                                    3600            ; Refresh
                                    300             ; Retry
                                    3600000         ; Expire
                                    3600 )          ; Minimum

                       

在兩個括號中間的選項表示SOA的設定內容,底下會有更詳細的說明。

NS

name server,用來指定操作的DNS伺服器主機名稱,需注意的是不可以IP位址表示。
e.g.
IN  NS   dns.twnic.net.tw.
                       

A

address,將DNS網域名稱對應到IPv4的32位元位址。
e.g.
server  IN  A  140.123.102.10
                       

AAAA

可將DNS網域名稱對應到IPv6的128位元位址。
e.g.
twnic.net.tw.  86400  IN  AAAA  3ffe: :bbb:93:5
                       

PTR

pointer,定義某個 IP 對應的 domain name,即將 IP 位址轉換成主機的FQDN。
e.g.
20   IN  PTR  mail.twnic.net.tw.
                       

CNAME

canonical name,可為同一部主機設定許多別名,例如 mix.twnic.net.tw的別名可為 www.twnic.net.tw和 ftp.twnic.net.tw,因此所設定的別名都會連至同一部伺服器。
e.g.
www  IN  CNAME  mix
                       

MX

mail exchanger,設定區域中擔任郵件伺服器的主機,所有要送往那部機器的 mail 都要經過 mail exchanger 轉送。而數字則是該主機郵件傳遞時的優先次序,此值越低表示有越高的郵件處理優先權。
e.g. 
server  IN   MX  10  mail.twnic.net.tw.   
                       

SOA設定內容說明

SOA record,以之前例子來看,其中 @ 這個符號是縮寫,代表 named.conf 中這個 zone file 所對應的 zone。 SOA 後面的兩個參數是指這個 zone file 是在哪部主機 (school.edu.tw)定義的,以及這個 zone file 的負責人 (注意是寫成 root.school.edu.tw),然後是用括號括起來的 5 個參數, 分別由底下說明。
Serial

代表這個 zone file 的版本,每當 zone file 內容有變動,name server 管理者就應該增加這個號碼,因為 slave 會將這個號碼與其 copy 的那份比對以便決定是否要再 copy 一次 (即進行 zone transfer)。
Refresh


slave server 每隔這段時間(秒),就會檢查 master server 上的 serial number。不過這裡會發生一個問題就是,在 master server 在 update data 完成到 slave server 來檢查時再 update 可能還有 好一段時間,因此這段期間 master/slave DNS server間 zone files 就可能出現不一致。所以在Bind較新的版本中便加入"notify"功能,使用者在 "named.conf" 設定中在需要的 zone 中加入"notify"的設定,則 master server在 update 完成某個 zone file 的 data 後便會主動發個訊息(NOTIFY),藉以通知該其它的 slave servers,因此如果 slave servers 也有支援這個"notify"功能時,接下來 slave servers 馬上就可以做 zone transfer 來update data。
e.g. 
zone "twnic.com.tw" {
    type master;
    file "twnic.hosts";
    notify yes;
    also-notify { 192.168.10.1; }; //指定slave server的IP位址
};
         
              

Retry
 
當 slave server 無法和 master 進行 serial check時,要每隔幾秒 retry 一次。

Expire

當時間超過 Expire 所定的秒數而 slave server 都無法和 master 取得連絡,那麼 slave 會刪除自己的這份 copy。

Minimum
代表這個 zone file 中所有 record 的內定的 TTL 值,也就是其它的 DNS server cache 這筆 record 時,最長不應該超過這個時間。

沒有留言:

張貼留言