2009年6月23日 星期二

BIND 9 DNS server

經過幾天的努力(ㄜ~FreeBSD架設DNS真的很簡單,只是小弟天份低,不能即時參透這網路的大道理啊!),終於擠出一篇筆記了。

好吧,首先洋鬼子手冊裡面寫”FreeBSD本身就帶有chroot的bind版本”。嗯,信不信由你,不過你如果你喜歡嚐鮮,就來

cd /usr/ports/dns/bind9x; make install clean

勾選Replace_Base就會把系統帶來的BIND幹掉換新的(喔呵呵!舊的不去,新的不來~)

然後接下來到上層設定好你的dns指定,就是那個收了你錢的傢伙。基本上人家規定要填兩筆A record(一個正式、一個備援),不過,兩個寫一樣還是會通過檢查(靠~自己背靠背,金剛狼前傳裡劍齒虎跟他小弟的戰法就是這句:背靠背 back to back ! 但是他們沒有練瑜伽)。

然後首先設定一下BIND 9。”先進的”BIND 9已經揚棄ndc(8)這個工具(看縮寫就知道是NameD Control),改用rndc(8)來管理(看縮寫就知道是Remote NameD Control),所以可以從遠端來管理。要從遠端管理,首先連線就要有鑰匙,Here is the “key”.就算你說「沒有啊!我不要遠端管理,我都是到本機裡設定就好了」,抱歉了,孩子,你只剩下rndc陪伴你度過剩下的人生。還好手動加入key設定不難(真是不幸中的大幸)。

rndc-confgen

然後你就會看到rndc.key出現了,是的。如果你不滿意,多按幾次,key會一直更新,直到你停手為止。同時你會看到一份說明,上半部的藥單開給rndc.conf,剪貼進去。下半部的藥單開給named.conf,請分開剪貼進去,不要一起剪貼進去。

接下來編輯你買來的網域zone file。參考各大教學,你就會學到爛。簡單的說,named.conf加

zone “you.buy.me”{
type master;
file “your_zonefile.db”;
};



然後照規矩寫好your_zonefile.db,貼心的BIND 9還有檢查工具可以即時指正你的錯誤,記得先用named-checkconf(8)、named-checkzone(8)等工具,直到他們都沒得挑剔為止,常見錯誤如行末;沒有加上去、名字沒有用.結尾造成重複dn。NS先說明dn,跟著再說明dn的A record,不然又一堆咭咭歪歪地抱怨,不過你也會感謝他們,因為抱怨總比爆炸好。



準備首次啟動BIND 9(哇!好興奮喔!要倒數嗎?),有個偷懶的方法,就是從/etc/rc.d/named start啟動。如果一切如預想的順利,你的曲速引擎沒有爆炸的話,你應該上太空了。BIND 9最偉大的改進就是,她不喜歡你犯錯,所以如果你沒有上太空,你也不會上天堂,你只是還在原地,還有機會找把手槍服務一下自己,不是找機會服務一下自己手槍。



最後收工,把啟動服務放入rc.conf,以便開機自動執行




echo ‘named_enable=”YES”’ >> /etc/rc.conf




以上,就是很簡單的、用FreeBSD、BIND9架設DNS。接下來,我們可以嘗試複雜一點,用FreeBSD + jail + ipfilter + chroot BIND 9 + NAT…(消音中…)

沒有留言: