網域名稱系統(DNS)知識課程

網域名稱伺服器是如何工作 (How Name Server Works)

第 6 課 : 網域檔案的開始授權資源記錄 (DNS Zone File SOA Record)


開始授權 (SOA) 資源記錄是放在每個網域檔案的開始, 它標示一個網域檔案的開始.

SOA 資 源 記 錄 主 要 記 錄 :

SOA Resource Record 資源記錄一般格式如下圖所示:

DNS Zone File SOA Record

除了以上的資料外, 網域名稱伺服器的設定也可以放在SOA資源記錄內. 網域名稱伺服器的設定有很多, 但一般只會設定重要的設定. 這裡介紹四個重要的設定, 如下:

以下是一個頗為完整的 SOA 資源記錄 :

DNS Zone File SOA Resource Record

Serial (資 料 編 號)

這是用來記錄網域檔案資料的更新編號. 每當檔案內資料的更新一次, 資料編號便會加一.

以上的例子為例 (200105508), 我們設定資料編號為年份 (2001), 月份(05), 及當月更新次數 (508 次). 當下次檔案資料更新, 資料編號便會改為 200105509, 再下次便是 200105510 了......

你也可以將資料編號設定從0開始, 資料每更新一次 ,資料編號便會加一.

當副網域名稱伺服器檢查主網域名稱伺服器的資料時, 發覺自己的資料編號和主網域名稱伺服器的資料編號不同, 便立即知道主網域名稱伺服器的資料更新了, 所以副網域名稱伺服器便會將自己的資料更新.

Refresh (更 新 資 料)

更新資料的數值一般用秒來表示. 以上的例子是 10080 秒 (即 3 小時).

更新資料是設定副網域名稱伺服器多久才檢查主網域名稱伺服器的資料有沒有更改.

Retry (再次嘗試)

再次嘗試的數值一般也是用秒來表示. 以上的例子是 3600 秒 (即 1 小時).

再次嘗試是設定: 如果副網域名稱伺服器不能聯絡主網域名稱伺服器, 它需要相隔多久才再次嘗試聯絡主網域名稱伺服器.

TTL (生存時間)

TTL 全名為 Time To Live, 我們將它譯成生存時間. 生存時間的數值也是用秒來表示. 以上的例子是 86400 秒 (即 24 小時).

我們知道, 當你的網域名稱伺服器沒有查詢的網域名稱的 IP 地址的時候, 它會向其他的網域名稱伺服器查詢, 最後將查詢結果答覆你的電腦. 並會將查詢結果保存在自己的 Cache 記憶體內一段時間, 然後才將查詢資料棄置. 這一段時間稱為生存時間. 如下圖所示:

DNS Zone File TTL Time to Live Flow Chart

為什麼將查詢結果保存在自己的 Cache 記憶體內一段時間呢?

理由十分簡單. 因為, 這個查詢很有可能再次發生. 如果真的再次查詢這個網域名稱, 這樣, 網域名稱伺服器便不需要向其他網域名稱伺服器查詢, 而直接從 Cache 記憶體取出結果答覆查詢. 大大提高查詢效率. 如下圖所示:

DNS Zone File Cache

但請記著, 這樣的資料只會保存在 Cache 記憶體設定的 TTL 時間.

你可能又會問: 既然提高查詢效率, 為什麼不保存在 Cache 記憶體長久一些, 例如一至二個月或甚至一年呢?

理由又是十分簡單. 因為, 如果網域名稱的資料更改了, 而留在 Cache 記憶體仍然是舊的資料. 這樣, 更改了資料的網域名稱便石沈大海了! 這解釋了為何更改了資料後, 你的網域名稱可能有一至二天突然失蹤了!

DNS Zone File Cache


網域名稱系統 DNS