由於bind8不再維護了,也越來越多威脅產生,故作一紀錄.
BIND8 vs BIND9 主要差異:
A. 對named.conf嚴格以待
只要named.conf 中,有任何有語法或是邏輯錯誤的領域 ,BIND9將拒絕載入且執行named.
BIND8則相對寬容.
以下例來說: 缺乏 master 資料, BIND8只會報怨一下仍然可以執行.
zone "test.example" {
type slave;
file "zone/test.example";
};
B.各領域設定中的TTL (time to live)變數將不可被省略.
C.預設的zone transfer 採用 many-answers , 而非 one-answer .
D.BIND9使用rndc 而非 ndc 程式 , rndc 相關設定如下:
建立 /usr/local/etc/rndc.conf , 預設會有一個 rndc.conf.sample 檔案可供參考.
並且新增 key 及 controls 參數進入您的 named.conf 檔案.
options {而 named.conf 中的controls及 key相關設定則如下所示:
default-server localhost;
default-key "rndc-key";
};
key "rndc-key" {
algorithm hmac-md5;
secret "jZhJ6D0KwJapRhr4Ln6RYQ==";
};
controls {上述設定告訴 named 聆聽所有本地端的網路介面(*)接收到的控制訊息
inet * allow { any; } keys { "rndc-key"; };
};
key "rndc-key" {
algorithm hmac-md5;
secret "jZhJ6D0KwJapRhr4Ln6RYQ==";
};
並且允許他們只要擁有 rndc-key 就可以從任何ip送出控制. rndc-key相關資料同 rndc.conf
E. BIND9是多程緒執行的, 也就是說用 ps ax指令會看到很多個 named 執行.
於FreeBSD下,安裝時必須勾選THREAD參數,才有THREAD功能.
F. BIND9不再檢查領域名稱, 也就是說可以使用任何字元,
但是需要注意的是並非所有解析端都可以讀取.
若仍使用 ndc 指令可能會出現如下錯誤:
ndc: error: ctl_client: evConnect(fd 3): No such file or directory
ndc: error: cannot connect to command channel (/var/run/ndc)
安裝:
cd /usr/ports/dns/bind95安裝過程可能會出現的警告: 例如說 openssl版本過舊啦..
make install
# 請依照個人需求安裝..
make clean

安裝過程的最後 的通知訊息 , 告知若在 chroot 環境啟動bind9的注意事項.
並提醒 rndc 的相關設定.

安裝的最後 由於我有勾選 REPLACE_BASE 選項 ,所以程式替換了原有的系統檔案.
若沒有選擇此項,則會安裝在 /usr/local/

設定:
rndc設定: 在 /etc/namedb/ 若沒有勾選 REPLASE_BASE 則在 /usr/local/etc/
新增 rndc.conf 內容 如 BIND9與BIND8差異D 所示 , 以及 rndc.key 內容.
需要特別注意的是 rndc.conf 和 named.conf 內容關於密碼部份需要相同
key "rndc-key" {補充: 您可以透過下列指令取得rndc相關資料.
algorithm hmac-md5;
secret "jZhJ6D0KwJapRhr4Ln6RYQ==";
};
rndc-confgen其餘領域設定與bind8大同小異,不加以說明,請參考本站舊站.
補充幾個特殊的named.conf參數 , 若安裝時有加上 XML 參數編譯 .
statistics-channels {上述設定為觀看BIND9的運行狀態, 其中 123.234.345.456 為您伺服器ip ,
inet 123.234.345.456 port 3388 allow { 123.234.345.789 };
};
3388為您自己選定的port, 而 123.234.345.789 則為您希望用哪台電腦(或範圍)觀看
觀看位址:
用 123.234.345.789 連結 http://123.234.345.789:3388/ 就會看到BIND9的運行狀態了.
若有勾選 THREADS 選項 ,則可以在狀態欄位看到 Thread-Model 變為 threaded .

啟動:
/etc/rc.d/named start當然了, /etc/rc.conf 中的 named_enable="YES" 也是要加上的.
重新載入 named.conf
rndc reload檢查設定檔是否正常:
named-checkconf檢查領域設定檔是否正常:
named-checkzone 要檢查的領域 要檢查的領域設定檔其中 named-checkconf 若正常就不會顯示任何訊息, 而 named-checkzone 則會顯示ok及序號.
建議參考書目:
BIND9 管理者參考手冊
http://www.isc.org/sw/bind/arm95/Bv9ARM-all.html
OReilly 的 DNS and BIND 5the edition 及 DNS & BIND Cookbook
泡泡: 這兩本書都好想買,其中BIND&DNS有買過第三版的,另外一本則沒有看過.
最近比較窮,透支...

