首先從http://www.isc.org/products/BIND/(version 9.2.2)下載bind,並如下將壓縮包解開。
tar -xzvpf bind-9.2.2rc1.tar.gz
然後,改變目錄至我們解壓產生的bind 原代碼目錄:
cd bind-9.2.2rc1
下一步,su成root用戶。
我們將bind安裝到“/usr/local/”目錄。如果沒有該目錄,就創建一個:
mkdir /usr/local
bind 使用autoconf, 所以編譯它是很容易的,如下:
./configure --prefix=/usr/local --mandir=/usr/local/share/man
大概幾分鐘時間,文件就配置好了。然後如下操作:
make
大約20分鐘,編譯工作可以完成。剩下的工作就是安裝(install)了。如下操作:
make install
這也需要幾分鐘時間。
當安裝完畢後,bind並不能立即使用,這是因為還有些配置文件沒有配置。我們將舉些簡單的配置作為例子。
在標准安裝,有一個named.conf文件, 一個rndc.conf文件,和一個namedb目錄,該目錄包含 localhost.rev文件。我們安裝這些到“/usr/local/etc”目錄。如果該目錄不存在,就先創建一個:
mkdir /usr/local/etc
同樣,我們還需要創建一個“namedb”目錄:
mkdir /var/namedb
現在,我們編輯 “named.conf”文件。我們以後可以添加更多的內容,但現在它看起來是這樣的(我們可以從這裡下載named.conf文件):
options {
directory "/var /namedb"; // 工作目錄
pid-file "named.pid"; // 放pid文件到工作目錄,否則pid文件在/var/run目錄
};
zone "." {
type hint;
file "named.root";
};
// 提供loopback地址127.0.0.1的反向地址映射
zone "0.0.127.in-addr.arpa" {
type master;
file "localhost.rev";
notify no;
};
zone "173.76.207.in-addr.arpa" in { type master; file "db.207.76.173";notify no; };
// 注意上面和下面形式不同的例子實際上完成的是一樣的功能。
zone "bind.com" {
type master;
file "bind.com.zone";
notify no;
};
其中named.root(有時也稱為named.ca,都是指的同一個東西,大家的習慣不同嘛)中包含的是目前全球頂級域名服務器地址信息,該文件有可能會隨著時間的推移而變得過時了,需要我們定期去網上更新。這裡是internic提供的免費下載的named.root,該文件的信息總是最新的。
下面,我們創建localhost.rev文件。該文件看起來是這樣的:
$TTL 3600
@ IN SOA user1.bind.com. hostmaster.bind.com.
(
1 ; Serial ; Increment by one after every change
3600 ; Refresh every hour
900 ; Retry every 15 minutes
3600000 ; Expire 1000 hours
3600 ) ; Minimum 1 hour
IN NS nameserv1.bind.com.
IN NS nameserv2.bind.com.
1 IN PTR localhost.
你也可以下載 localhost.rev文件,並將下載的文件放置到/var/namedb目錄中:
mv localhost.rev /var/namedb
你也可以下載地址解析文件的實例,從分析實例中得到學習。
下面我們創建rndc.conf文件,並用它補充named.conf文件。 rndc.conf 文件可以通過程序自動創建。我們先改變目錄至/usr/local/etc :
cd /usr/local/etc
然後,我們使用rndc-confgen產生該配置文件。由於 Solaris 7的一個bug,我們需要鍵入一堆字母來產生rndc聯系bind使用的key(我在Solaris 8中安裝時,是不需要的鍵入這些討厭的字母的)。命令格式如下:
/usr/local/sbin/rndc-confgen >; rndc.conf
一直鍵入直到console上提示“stop typing”為止。這將自動產生rndc.conf 文件。rndc.conf文件也包括一些必須加入到 named.conf的行。我們可以通過下面命令自動將這些行加到named.conf文件中
tail -n10 rndc.conf | head -n9 | sed -e s/#\ //g >;>; named.conf
現在,我們可以准備運行bind了。首先我們先在console上通過命令運行:
/usr/local/sbin/named -gc /usr/local/etc/named.conf &
在出現一些信息後,將最後顯示一行為“running”。
使用如下命令:
/usr/local/sbin/rndc status
它將顯示我們服務器已經運行了,顯示如下:
number of zones: 5
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
server is up and running
bind啟動後,我們可以用rndc來控制bind的運行、重新調配置文件,而不再需要野蠻地用kill對付bind了。
現在我們可以去設置dns服務器啟動時自動運行,不需要我們開一個窗口去運行它。我們可以在“/etc/rc2.d”目錄下做一個啟動文件,這樣每次服務器啟動時bind都會自動啟動起來。這個工作比較簡單,這裡就不再贅述了。