2008年11月11日 星期二

(1)CentOS 5.x 的DNS設定

最近搞定了一大堆不得不寫的計畫案,撇開作業,總算是開始有時間去弄伺服器整合了,在CentOS底下找了Dns的named.conf檔老半天,最後終於找到原來是要額外安裝套件才有named.conf啦~


以下是正式操作過程:


 


1.安裝除了bind套件以外的caching-nameserver套件


   yum install caching-nameserver


 


2.看看是不是有必要取消掉chroot的安全功能(換句話說就是把dns相關的路徑都丟到/var/named/chroot/之下)  


vi /etc/sysconfig/named


(---20101017後記:太久沒用,結果翻筆記時發現以下這句話一定要寫下:沒有取消該功能的請記得修改named.conf和正反解檔的路徑都在/var/named/chroot底下喔!named.conf會在/var/named/chroot/etc/底下;正反解檔寫在/var/named/chroot/var/named/底下.---)


3.把套件裡的named.rfc1912.zones改成named.conf


cd /etc
grep -v '//' named.rfc1912.zones > named.conf
chown root.named named.conf                         (改變群組,權限)
chmod 640 named.conf


 


4.寫入named.conf設定檔


vi /etc/named.conf


options {
    directory    "/var/named";               --->你的正反解zone目錄!重要!
    dump-file    "/var/named/data/cache_dump.db";
    statistics-file    "/var/named/data/named_stats.txt";  


        };             -->其他options項目參看鳥哥的網站即可


named.conf檔案末端則依實際需要加入例如苗栗縣網學術網路網域,注意!要一個正解對應一個反解喔!


zone "mlc.edu.tw" IN {
    type master;
    file    "named.mlc.edu.tw";  <--檔名,隨自己高興,如果options有指定目錄就在該目錄下
                              };


zone "1.168.192.in-addr.arpa"{          ;(如果是192.168.1的網域就要倒寫為1.168.192.in-addr.arpa)(特別注意!)
    type master;
    file    "named.192.168.1";
                              };


 


5.編輯剛剛寫入的網域正解資料檔(仍以mlc.edu.tw為例),在設定上面原則為


 zone域名  IN  SOA  主機名稱  管理員email (五組更新時間參數)


五組更新時間參數分別代表i.Serial新舊序號,通常用時間即可 ii.Refresh過多久更新 iii.Retry 如果不能更新,重試的時間 iv.Expire 如果連retry都掛掉,多久以後放棄更新   v.Minimun:和TTL差不多意思          另外,根據鳥哥的網站說法,這幾個數字是有大小限制的!補充如下:     


  • Serial <= 2^32 = 4294967296

  • Refresh >= Retry * 2

  • Refresh + Retry < Expire

  • Expire >= Retry * 10

  • Expire >= 7Days

  • 還有,根據鳥哥的說明,在域名的部份加上了 . 表示這個完整的主機名稱,亦即是 "hostname + domain name" 了, 如果沒有加上 . 的話,表示該名稱僅為 "hostname" 而已,也就是說假設主機名稱是Server.mlc.edu.tw,在此處的寫法必須是Server.mlc.edu.tw.  不然的話,單單只寫Server.mlc.edu.tw  會自動被改為Server.mlc.edu.tw.mlc.edu.tw的意思!


    會用到的部份還有:NS 後面接的一定是你設定dns解析的主機名稱,意思是"這個 zone 的查詢請向後面這部主機要求"、A意思是說該部主機的 IP 對應、@代表的是在named.conf裡已經被規範的域名(zone)


    TTL的大小可以看DNS是否常常變動決定,以免DNS一天到晚都在忙碌的重新讀取cache


     


    舉例如下


    vi /var/named/named.mlc.edu.tw


    $TTL    86400


    ;$ORIGIN mlc.edu.tw.  <=將本正解檔的@網域設定為origin參數後面寫定的網域,本參數可以不寫  
    @  IN      SOA     xxx.mlc.edu.tw.     zoro.webmail  (
                                                            2008110900;       Serial
                                                            28800    ;       Refresh
                                                            14400        ;       Retry
                                                            604800;       Expire
                                                            86400   );
    @         IN      NS      xx1.mlc.edu.tw.
    @         IN      NS      xx2.mlc.edu.tw.         (如果有兩台以上的話)
    xx1.mlc.edu.tw.    IN      A       192.168.1.253
    xx2.mlc.edu.tw.    IN      A       192.168.1.100
    @        IN      MX      0       webmail.mlc.edu.tw.     (有mail-Server才要加,直接設定為mail主機名稱即可)
    www                     IN      CNAME   xx1.mlc.edu.tw.   (用來設定主機別名,也可以長得像下一行)
    ILoveyou                IN     CNAME   xx1.mlc.edu.tw.


     特別要注意的是,別名代表著都指向同一台主機,如果有眾多不同主機,依照應該要一台一台的設定正解(也就是A)


     


    6.編輯反解檔案


    vi /var/named/named.192.168.1


    $TTL    86400
    @  IN   SOA     xxx.mlc.edu.tw.     zoro.webmail.mlc.edu.tw.  ( 2008110900 28800 14400 604800 86400 )


    @         IN      NS      xx1.mlc.edu.tw.
    @         IN      NS      xx2.mlc.edu.tw.
    253       IN     PTR     xx1.mlc.edu.tw.
    100       IN     PTR     xx2.mlc.edu.tw.


    7.大功告成,重新啟動DNS!






    /etc/init.d/named start


     


    這一個東西,花了我快要三個小時才搞定...看在高手眼中也許不怎麼樣,不過第一次學正反解都是痛苦的,希望這一篇可以解決一些人的困難囉!