作者:劉穎博 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
時間:2003-6-6
mail:[email protected],請指正
轉載請註明出處及作者
環境
操作系統:red hat linux
內核版本:2.4.20-8
下載源代碼
在Internet Software Consortium(ISC)的ftp:
ftp://ftp.isc.org/isc/bind9/9.2.2/ 下載源代碼包bind-9.2.2.tar.gz
目前最高的rpm版本是9.2.1
rpm包可以下載:ftp://updates.redhat.com/7.3/en/os/SRPMS/bind-9.2.1-1.7x.2.src.rpm
解壓縮包
gzip -d bind-9.2.2.tar.gz
//執行成功後生成bind-9.2.2.tar文件,bind-9.2.2.tar.gz不存在
tar xvf bind-9.2.2.tar
//執行成功後生成目錄bind-9.2.2
或者tar zxvf binf-9.2.2.tar.gz
//執行成功後生成目錄bind-9.2.2
編譯
編譯前需要確認的環境變量:
在運行./configure之間需要確認的環境變量,這幾個環境變量將影響編譯:(主要是確認環境變量正確性,如不存在以下環境變量,沒有關係,執行./configure會自動配置)
CC
The C compiler to use. configure tries to figure out the right one for supported systems.
CFLAGS
C compiler flags. Defaults to include -g and/or -O2 as supported by the compiler.
STD_CINCLUDES
System header file directories. Can be used to specify where add-on thread or IPv6 support is, for example. Defaults to empty string.
STD_CDEFINES
Any additional preprocessor symbols you want defined. Defaults to empty string.
To build shared libraries, specify "--with-libtool" on the configure command line.
執行編譯安裝步驟:
./configure
//可以 ./configure --help獲得幫助
//自動配置系統信息,生成一些相關文件
make all
make install
//時間比較長,同時會產生一些warning,不會產生影響
注:make clean (make superclean)
//卸裝
這樣就安裝成功了!
配置
區數據文件(db.DOMAIN 與 db.ADDR文件) 配置
SOA記錄: 指示該區的權威
NS記錄:列出該區的一個名子服務器
其他記錄:有關該區中主機的數據,包括
A:名字到地址的映射
PTR:地址到名字的映射
CNAME:規範名字(相對於別名)
a.針對 db.DOMAIN db.ADDR文件
bind8.2版本以後使用$TTL語句設定默認的TTL(time to live生存期)的值
$TTL 86400 (或者用1D,24H等)
b. 針對db.DOMAIN db.ADDR文件
接下來就是SOA(start of authority)記錄,每個db.DOMAIN
db.ADDR文件都是必須有一個也職能有一個SOA記錄.我們的服務器享有對區yncnc.net的
權威,所以格式如下:
yncnc.net. IN SOA ns.yncnc.net. root.yncnc.net. (
1 ;序列號
3H ;3小時後刷新
15M ;15分鐘後重試
1W ;1星期後過期
1D) ;否定緩存TTL爲1天
其中IN 表示Internet
SOA後面的第一個名字(ns.yncnc.net.)是yncnc.net區的主名字服務器.第二個名字(roo
t.yncnc.net.)是管理該區的人的郵件.
c. 針對db.DOMAIN db.ADDR文件
NS(name server)記錄,爲我們的區的每一個權威名字服務器都添加一個NS記錄
如:
yncnc.net. IN NS ns.yncnc.net.
d. 針對db.DOMAIN 文件
地址和別名記錄,創建名字到地址的映射,加下列/資源記錄
;
;主機地址
;A代表地址
www.yncnc.net. IN A 221.3.128.268
ns.yncnc.net. IN A 221.3.131.4
mail.yncnc.net. IN A 221.3.131.5
;
;別名
;CNAME(canonical name,規範名)
pop.yncnc.net. IN CNAME mail.yncnc.net.
pop3.yncnc.net. IN CNAME mail.yncnc.net.
smtp.yncnc.net IN CNAME mail.yncnc.net.
e. 針對db.ADDR文件
PTR記錄,如下
5.131.3.221.in-addr.arpa. IN PTR mail.yncnc.net
注意:地址只能指向一個名字:規範名
上面就是完整的區數據文件中的各種資源記錄
bind配置文件 ànamed.conf
註釋
/**/
//
#
區數據文件的目錄
option {
directory “/var/named”;
//這裏放置區數據文件
}
區數據文件對應的說明
zone “yncnc.net” in {
type master;
file “db.yncnc.net”
}
配置根線索文件
zone “.” in {
type hint;
file “db.cache”
//ftp.rs.internic.net(198.41.0.6) 匿名下載domain目錄最新的named.boot,改名
}
地址匹配列表ACL的語法
acl name {address_match_lists;};
blackhole子句語法,避免對一些地址作出相應
options {
/*不對私有地址作出相應*/
blackhole {
10/8;
172.18/12;
192.168/16;
}
}
建立輔名字服務器
只需將區數據文件類似於
zone “yncnc.net” in {
type master;
file “db.yncnc.net”;
}
改爲
zone “yncnc.net” in {
type slave;
file “bak.yncnc.net”;
master {221.3.131.4;};
//其主域名服務器的地址
}
DNS中電子郵件 MX記錄的配置
yncnc.net. IN MX 0 mail.yncnc.net
yncnc.net. IN MX 10 mail2.yncnc.net
//假設存在兩個郵件服務器,其中0 ,10 是配置的優先級,值越小優先級越高
注意配置的優先級 和 必須使用規範名,不能使用別名
配置解析器
主要resolv.conf文件
search指令:搜索列表,支持8個域名
nameserver指令:查詢的名字服務器的地址,最多三個
options指令:debug,ndots,attempts,timeout,rotate,no-check-names幾個選項
sortlist指令:指定優先使用的子網和網絡,最多十個
domain指令:指定本地域名