2011年11月6日 星期日

看懂DNS關鍵資訊

在 domain 的部分,若可能的話,請盡量使用 FQDN,亦即是主機名稱結尾加上一個小數點的 (.) 就被稱為 FQDN 了


 ttl 就是 time to live 的縮寫,意思就是當這筆記錄被其他 DNS 伺服器查詢到後, 這個記錄會保持在對方 DNS 伺服器的快取中,保持多少秒鐘的意思



[domain]    IN  [[RR type]  [RR data]]
主機名稱.   IN  A           IPv4 的 IP 位址
主機名稱.   IN  AAAA        IPv6 的 IP 位址
領域名稱.   IN  NS          管理這個領域名稱的伺服器主機名字.
領域名稱.   IN  SOA         管理這個領域名稱的七個重要參數(容後說明)
領域名稱.   IN  MX          順序數字  接收郵件的伺服器主機名字
主機別名.   IN  CNAME       實際代表這個主機別名的主機名字.

台灣高品質學術網路:
http://www.twaren.net/

  • SOA :查詢管理領域名稱的伺服器管理資訊
如果你有多部 DNS 伺服器管理同一個領域名稱時,那麼最好使用 master/slave 的方式來進行管理。既然要這樣管理, 那就得要宣告被管理的 zone file 是如何進行傳輸的,此時就得要 SOA (Start Of Authority) 的標誌了。先來瞧瞧崑山科大的設定是怎樣:
[root@www ~]# dig -t soa ksu.edu.tw
;; ANSWER SECTION:
ksu.edu.tw.       3600   IN     SOA    dns1.ksu.edu.tw.   abuse.mail.ksu.edu.tw. 
  2010080369 1800 900 604800 86400
# 上述的輸出結果是同一行喔!
SOA 主要是與領域有關,所以前面當然要寫 ksu.edu.tw 這個領域名。而 SOA 後面共會接七個參數,這七個參數的意義依序是:
  1. Master DNS 伺服器主機名稱:這個領域主要是哪部 DNS 作為 master 的意思。在本例中, dns1.ksu.edu.tw 為 ksu.edu.tw 這個領域的主要 DNS 伺服器囉;
  2. 管理員的 email:那麼管理員的 email 為何?發生問題可以聯絡這個管理員。要注意的是, 由於 @ 在資料庫檔案中是有特別意義的,因此這裡就將 abuse@mail.ksu.edu.tw 改寫成 abuse.mail.ksu.edu.tw ,這樣看的懂了嗎?
  3. 序號 (Serial):這個序號代表的是這個資料庫檔案的新舊,序號越大代表越新。 當 slave 要判斷是否主動下載新的資料庫時,就以序號是否比 slave 上的還要新來判斷,若是則下載,若不是則不下載。所以當你修訂了資料庫內容時,記得要將這個數值放大才行! 為了方便使用者記憶,通常序號都會使用日期格式『YYYYMMDDNU』來記憶,例如崑山科大的 2010080369 序號代表 2010/08/03 當天的第 69 次更新的感覺。不過,序號不可大於 2 的 32 次方,亦即必須小於 4294967296 才行喔。
  4. 更新頻率 (Refresh):那麼啥時 slave 會去向 master 要求資料更新的判斷? 就是這個數值定義的。崑山科大的 DNS 設定每 1800 秒進行一次 slave 向 master 要求資料更新。那每次 slave 去更新時, 如果發現序號沒有比較大,那就不會下載資料庫檔案。
  5. 失敗重新嘗試時間 (Retry):如果因為某些因素,導致 slave 無法對 master 達成連線, 那麼在多久的時間內,slave 會嘗試重新連線到 master。在崑山科大的設定中,900 秒會重新嘗試一次。意思是說,每 1800 秒 slave 會主動向 master 連線,但如果該次連線沒有成功,那接下來嘗試連線的時間會變成 900 秒。若後來有成功,則又會恢復到 1800 秒才再一次連線。
  6. 失效時間 (Expire):如果一直失敗嘗試時間,持續連線到達這個設定值時限, 那麼 slave 將不再繼續嘗試連線,並且嘗試刪除這份下載的 zone file 資訊。崑山科大設定為 604800 秒。意思是說,當連線一直失敗,每 900 秒嘗試到達 604800 秒後,崑山科大的 slave 將不再更新,只能等待系統管理員的處理。
  7. 快取時間 (Minumum TTL):如果這個資料庫 zone file 中,每筆 RR 記錄都沒有寫到 TTL 快取時間的話,那麼就以這個 SOA 的設定值為主。
除了 Serial 不可以超過 2 的 32 次方之外,有沒有其它的限制啊針對這幾個數值?是有的,基本上就是這樣:
  • Refresh >= Retry *2
  • Refresh + Retry < Expire
  • Expire >= Rrtry * 10
  • Expire >= 7Days
一般來說,如果 DNS RR 資料變更情況頻繁的,那麼上述的相關數值可以訂定的小一些,如果 DNS RR 是很穩定的, 為了節省頻寬,則可以將 Refresh 設定的較大一些。

沒有留言:

張貼留言