用BIND9 在 XP 架設DNS @ 發騷集 :: 隨意窩 Xuite日誌
  • 台中市,已婚
    PC第一代開始用電腦
    追求新知的渴望

  • facebook
  • plurk
  • Xuite電影貼紙
    1. 沒有新回應!
  • 200808292313用BIND9 在 XP 架設DNS

    終於成功了,終於在XP的環境下,用免費的BIND 9 架好了DNS Server

    因為不久前申請了一組 泛英文的網域 ( xxxxx.tw) ,錢繳了之後才發現,它只提供DNS型的轉址,也就是它要你自己建一個 DNS。原本以為不用DNS只要指到自己的網站IP就好,結果網站有時通,有時不通。無計可施,只好設法自己架DNS

     因為網路上提到DNS Server的架設,幾乎清一色是在Linux 的環境,絕少有人會提到在XP之下要注意哪些問題。連BIND 9的官方網站的文件資料,都是在講named.conf 的內容參數,正解檔、反解檔。這些東西,去別人架好的DNS Server拷貝來改一改就好了,根本不用大費周章。一般人在XP 架設DNS 的問題根本不是這個。所以我一定要把這篇寫出來,讓一般人也能輕易架好DNS Server

     DNS Server的工作事實很簡單,只是別人來詢問位址,回答正確的IP而已。設定檔都大同小異,卻被專家搞得很專業似的,如果你之前用BIND 9XP架不成功,現在看了這篇架成功了,也請算看看省了多少學費喔。

    為了讀者方便,先將讀者分為2類,

     

    第一類,還沒用BIND9開始在XPDNS的,請從[PART1]讀起

    第二類,已經用BIND9開始在XPDNS,卻一直無法成功的,可以跳過PART1從[PART2]讀起

    [PART1]

     

    首先去下載 BIND9 Windows版,例如現在最新的是 9.5,解壓縮後是個資料夾BIND9.5.0-P2,將它拷貝到要安裝DNS Server XP主機,執行裡面的BINDInstall.exe

    (那兩欄空欄是要你設定 named 這使用者的密碼)

    它會在 C:\windows\system32\ 建立一個叫做 DNS 資料夾 ,裡面有 bin etc 兩個資料夾。Bin是放程式的地方,etc是放DNS 資料的地方(也就是named.conf 、正解檔、反解檔的地方)。並且會建立一個新的使用者叫做named,是用來執行程式的。BIND DNS 主程式是bin 裡的named.exe

     安裝完後你會發現 etc 裡面是空的,常在安裝套裝軟體的我,真的很想罵一聲ㄍㄢ四聲,它連附一個範例檔也沒有,所以新手安裝到這裡大概就要放棄了,要不然就像我,上網去搜尋DNS Server架設的知識。

     bin裡有一個readme1st.txt 是英文的,內容主要是告訴你,在 C:\windows\system32\dns\etc 裡面建立一個文字檔叫做named.conf 這是主要設定檔

    內容要有:

    options {

                    directory "C:\WINDOWS\system32\dns\etc";

            };

     然後在[命令提示字元]下,進入C:\windows\system32\dns\bin\  (如附圖2~3)

    執行 rndc-confgen –a




    這樣會在 C:\windows\system32\dns\etc 裡面產生一個 rndc.key 的檔案,這是named.exe執行的檢查碼的檔,內容大概是這樣

    key "rndc-key" {

            algorithm hmac-md5;

            secret "iDjjbaaqJo/wRMgES5dA8w==";

    };

     Secret 後面就是檢查碼,每次產生會不一樣。

    rndc.key 內容拷貝到 named.conf 裡面。並加上下列文字

     controls {

            inet 127.0.0.1 port 953 allow { localhost; } keys { "rndc-key"; };

    };

     named.conf 是主要設定檔,內容大致如下

    ===============================================

    options {

       directory "C:\WINDOWS\system32\dns\etc";

    }; 

     key "rndc-key" {

            algorithm hmac-md5;

            secret "iDjjbxxdKxxxqJoxxxA8w==";

     };

      controls {

           inet 127.0.0.1 port 953

                   allow { localhost; } keys { rndc-key; };

    };

     zone "." IN {

         type hint;

         file "named.root";  //. 的正解檔

    }; 

     zone "localhost" IN {                 

         type master;

         file "localhost.zone"; 

         allow-update { none; };         

    };

     zone "0.0.127.in-addr.arpa" IN {

         type master;

         file "localhost.rev";

    }; 

     zone "mydomain.tw"  {

         type master;

         file "mydomain.tw.dns";   // 我網域的正解檔

    }; 

     zone "121.122.123.in-addr.arpa"  {

         type master;

         file "121.122.123.in-addr.arpa.zone";  // 我網域的反解檔

    }; 

    ========================================================

    mydomain.tw.dns 的內容大致如下

    ========================================================

     02:54:24 +0800

     $ORIGIN mydomain.tw.

    $TTL 10800

    @       IN SOA  ( dns.mydomain.tw. ; Primary DNS server
                  nobody.invalid. ; Responsible person
     
                  2008082401   ; Serial number
       
               10800        ; Refresh
     
                  3600         ; Retry
     
                  777600       ; Expire
     
                  3600       ) ; Minimum TTL
     
    @       IN NS   dns.mydomain.tw.
     
    dns     IN A    192.168.X.XXX
     
    ftp     IN A    192.168.X.XXX
     
    www     IN A    192.168.X.XXX

    ==================================================所以,在etc 之內除了named.conf之外,我還應該有
    named.rootlocalhost.zonelocalhost.revmydomain.tw.dns121.122.123.in-addr.arpa.zone 這幾個檔
    供參考,因為我不是DNS專家。

     

     

    [PART2]

     

    對於正解檔和反解檔,我就不再詳談,網路上資料多得很。

    我只針對BIND9 XP 下的『眉角』,做分享,以下才是打通穴道的重點
     假設 named.conf、正解檔和反解檔都設好了,可是很奇怪,named.exe好像沒啟動,要如何啟動呢?

    [控制台]->[系統管理工具]->[服務] 可以找到 ISC BIND 的啟動位置


    把它點2下,會出現 ISC BIND內容

     

    可是當我們,按下啟動卻出現1067的錯誤,為什麼呢?

    我們可以看[登入] 項目的內容

    它是以一個named這個使用者來啟動,可是 named這使用者又不具備系統管理員身份,當然啟不動啦!
    我們可以從[控制台]->[系統管理工具]->[電腦管理] 的使用者內找到 named這使用者。所以,發現ISC BIND 幫你建個使用者,卻不設定正確的權限,真是想罵人。

    最簡單的方法刪了這使用者。然後再到[控制台]->[使用者帳戶] 建立一個叫做named的使用者,並且設為系統管理員,設上密碼。

    記得在[控制台]->[系統管理工具]->[服務]->[ISC BIND] 的登入畫面的密碼欄輸入一樣的密碼。



    好了,啟動看看吧,應該是會啟動成功才對。

    最後,是許多新手常會疏忽的地方,就是防火牆。進入[控制台]-[windows防火牆] 新增連接埠,增加一組名為 DNS 編號 53  UDP

     

    最最後,建議在 named.conf 加入下列

    ----------------------------------------------------------------------------------

    logging {                                                           // 建立log 便於偵錯

    channel default_log {

    file "C:\WINDOWS\system32\dns\etc\dns-default.log" versions 10 size 1m;

    severity info;

    };

    channel lamer_log {

    file "C:\WINDOWS\system32\dns\etc\dns-lamer.log" versions 3 size 1m;

    severity info;

    print-severity yes;

    print-time yes;

    print-category yes;

    };

    channel query_log {

    file "C:\WINDOWS\system32\dns\etc\dns-query.log" versions 10 size 10m;

    severity info;

    };

    channel security_log {

    file "C:\WINDOWS\system32\dns\etc\dns-security.log" versions 3 size 1m;

    severity info;

    print-severity yes;

    print-time yes;

    print-category yes;

    };

    category lame-servers { lamer_log; };

    category security{ security_log;};

    category queries { query_log;};

    category default {default_log;};

    };

    會建立log 便於偵錯,也可以知道誰在對這DNS查詢。

     

     

     

     

    PC變Mac - Tiger ...|日誌首頁|用更多的記憶體換取時間才是正確...上一篇PC變Mac - Tiger Milk 使用推薦...下一篇用更多的記憶體換取時間才是正確的設計 -- 對於 Chrome比IE 8更耗記憶體 的看法...
    回應