自行管理 DNS (nameserver) 是非常簡單的,您只需要幾分鐘可以完成安裝與設定,有大約五個檔案需要設定,並且整個操作過程相當的直覺簡單。
首先,您需要自己安裝 BIND。因為 BIND (Berkeley Internet Name Daemon) 是非常普遍使用的軟體,您只需要輸入下列指令就可以安裝到最新的 BIND 9 在您的伺服器裡面。
apt-get install bind9 dnsutils
這裡是最重要的部份。下表的檔案就是我們需要修改的設定檔:
檔案 | 用途 |
---|---|
named.conf.local | 設定您的網域與轄區檔的位置 |
named.conf.options | BIND 的其他設定,例如額外的 IP 位置 |
resolv.conf | 設定您系統查詢的 DNS 主機 |
zone file | 轄區正解檔 |
reverse DNS zone file | 轄區反解檔 |
named.conf.local 這個設定檔是 BIND 的重要設定檔。您必須將您的網域設定放在這裡面。請使用您喜愛的編輯器來修改他,例如您是使用 nano 的話,請輸入:
nano /etc/bind/named.conf.local
然後,在這台伺服器增加您的網域設定, 加入如下面的網域設定(請將兩個 “whack-a-mole.eu” 都換成您的設定):
zone "whack-a-mole.eu" { type master; file "/etc/bind/zones/whack-a-mole.eu.db"; };
請記得要修改 named.conf.options 這個檔案:
nano /etc/bind/named.conf.options
如果您要管理很多網域名稱的解析,您需要將每個網域名稱的設定檔都獨立放在這個檔案內。同時,如果有轄區檔傳送(Zone transfer)的需求,也請在這邊進行設定。
例如,在這裡我們使用 ns6.gandi.net 來當作 whack-a-mole.eu 這個網域名稱的第二台名稱伺服器,所以設定如下:
zone "whack-a-mole.eu" ( type master; allow-transfer {217.70.177.40;}; file "/etc/bind/db.whack-a-mole.eu"; )
您必須在每個需要轄區傳送的網域名稱內都加入像這樣的設定,並且指定第二台名稱伺服器的 IP 位置,主伺服器才會允許其他名稱伺服器的轄區傳送。
您將會需要編輯 resolv.conf,並將您的域名伺服器的 IP 加入檔案中。注意,這個檔案並不是在 BIND 的目錄中而是在其他地方,/etc 的資料夾內,透過下列命令編輯他:
nano /etc/resolv.conf
請輸入如下的資料,請記得要將 “whack-a-mole.eu” 修改成您的網域名稱,並且要將 “217.70.190.17” 改成您的伺服器 IP 位置(不知道怎麼找嗎?). 伺服器的排序是有順序的。在下面的範例中我們使用 Gandi 的 ns6.gandi.net 這台伺服器(IP 217.70.177.40) 來當作第二個名稱伺服器。
search whack-a-mole.eu nameserver 217.70.190.17 nameserver 217.70.177.40
這個檔案紀錄了您的網域名稱對應到伺服器的解析紀錄,或是郵件伺服器的位置,我們稱這個檔案為 '轄區設定檔(zone file)'。如果您使用 Gandi 的(預設轄區檔),您可以在 Gandi 的界面看到跟這一樣的內容 。(more)
1. 首先建立存放轄區設定檔的資料夾: 這個資料夾存放你所有的轄區設定檔。
mkdir /etc/bind/zones
2. 幫您的網域名稱建立一個轄區設定檔
現在您需要建立一個 DNS 使用的轄區設定檔來對應您的網域名稱與 IP 位置(接下來的範例中,請將 whack-a-mole.eu 替換成您的真實資料)。使用下列指令來建立一個新檔案(記得替換 whack-a-mole.eu 為你的網域名稱):
nano /etc/bind/zones/whack-a-mole.eu.db
下面是轄區設定檔(zone file)中的範例:
whack-a-mole.eu. IN SOA boom.whack-a-mole.eu. admin.whack-a-mole.eu. ( 2006081401 28800 3600 604800 38400 ) whack-a-mole.eu. IN NS boom.whack-a-mole.eu. whack-a-mole.eu. 10800 IN MX 10 spool.mail.gandi.net. whack-a-mole.eu. 10800 IN MX 50 fb.mail.gandi.net. pop 10800 IN CNAME access.mail.gandi.net. imap 10800 IN CNAME access.mail.gandi.net. smtp 10800 IN CNAME relay.mail.gandi.net. webmail 10800 IN CNAME agent.mail.gandi.net. www IN A 217.70.190.20 mta IN A 217.70.190.17 boom IN A 217.70.190.17
(您將需要替換上面範例中的值,改成您的設定。這邊的範例是使用 Gandi 的 GandiMail 與網頁伺服器)
建立您的反解檔(使用您的 IP 位置的反轉後來取代 190.70.217)。
nano /etc/bind/zones/rev.190.70.217.in-addr.arpa
請依照下來原則來替換下列範例,修改成您的反解檔:
@ IN SOA whack-a-mole.eu. admin.whack-a-mole.eu. ( 2006081401; 28800; 604800; 604800; 86400); IN NS boom.whack-a-mole.eu. 17 IN PTR whack-a-mole.eu.
一旦您完成您的 DNS 伺服器設定,請執行:
/etc/init.d/bind9 restart
如果設定都正常,您會看到如下列訊息:
Stopping domain name service... bind [ OK ] Starting domain name service... bind [ OK ]
Gandi.net 提供 高擴充與獨立的代管服務 能依照您的需求建立自己的 網域/網頁服務。我們的服務能支援很小的規模,每月只要 $14 元起。十分鐘就能使用您自己的伺服器。更多代管伺服器的細節請參考我們的 http://www.gandi.net/hosting/。