前陣子將伺服器改成通過ipfilter+ipnat+dhcp——freebsd5.4下ipfilter+ipnat包過濾、轉寄和DHCP伺服器架構筆記,但最近感覺伺服器時常會掉線,就在伺服器再開了個dns快取服務,通過緩衝希望能緩解一下目前的狀況。
首先介紹在freebsd上如何建立高速dns快取服務器,引用freebsd中文手冊中的話:
緩衝網域名稱伺服器是對任何域都不提供權威解析的網域名稱伺服器。 它自己簡單地完成查詢, 並記住這些查詢以備後續使用。 要建立這樣的伺服器, 只需像平時一樣配置一個網域名稱伺服器, 而不佈建網域就可以了
安裝如下:
所使用的軟體是BIND,安裝完freebsd6.0後BIND是自動安裝好的,版本為BIND9,路徑一般為/etc/namedb。freebsd5.2及更早版本的使用者可以通過到ISC網站上下載BIND9.3。目前, BIND 由 Internet Software Consortium http://www.isc.org/ 維護。
1、建立本地DNS反向解析域檔案
proxy4bak# cd /etc/namedb
proxy4bak# sh make-localhost
在/etc/namedb/master目錄下會產生localhost.rev檔案。
2、編輯dns設定檔/etc/namedb/named.conf
內容如下:
options {
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
// forwarders {
// 221.228.255.1; 218.2.135.1;
// };
};
zone "." {
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "master/localhost.rev";
};
這裡我沒有用到forwarders(轉寄),在freebsd中文手冊中有這樣一段話:
要從上級的緩衝中受益, 可以在此處啟用 forwarders。 在一般情況下, 網域名稱伺服器會逐級地查詢 Internet 來找到特定的網域名稱伺服器, 直到得到答案為止。 啟用這個將讓它首先查詢上級網域名稱伺服器 (或另外提供的網域名稱伺服器), 從而從它們的緩衝中得到結果。 如果上級網域名稱伺服器的負載很重, 在更快的網域名稱伺服器上啟用它將有助於改善服務品質。
3、更改/etc/resolv.conf
將resolv.conf內容更改為:
nameserver 127.0.0.1
3、使named啟動
編輯/etc/rc.conf,加入啟動內容,如下:
proxy4bak# cd /etc
proxy4bak# ee rc.conf
加入
named_enable="YES"
添加完成後重啟伺服器,使用top命令可以查看named進程是否啟動。也可以通過nslookup查詢一個網址,如果可以,說明緩衝已經建立了,顯示如下:
proxy4bak# nslookup
> set type=any
> www.google.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
www.google.com canonical name = www.l.google.com.
Authoritative answers can be found from:
google.com nameserver = ns4.google.com.
google.com nameserver = ns1.google.com.
google.com nameserver = ns2.google.com.
google.com nameserver = ns3.google.com.
在搜尋相關參考資料時還發現了一個dns緩衝軟體——djbdns,也有朋友已經在用了。我為了方便,就直接用BIND了,因為freebsd安裝時就帶上了。但在效能上具體還不知道哪個會好些。
第一次建立dns快取服務器,寫的有錯誤之處請指出。希望這篇筆記能對想要在區域網路中建立高速dns快取服務器的朋友有用。