歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> Linux文化 >> bind8配置參考

bind8配置參考

日期:2017/2/27 12:21:24   编辑:Linux文化

前些天在這兒問有沒有中文的bind8資料,結果沒找到,只好啃man,
前天和linuxrat聊,要我把心得寫一寫,今天周末有點時間,把一點心得
貼出來,與朋友們共享,希望對你配置bind8有所幫助。

同時也把這篇文章獻給一個在國外的老朋友yi tang.希望她在異國他
鄉工作順利,生活快樂。

眾所周知,以前在internet上用的DNS系統是bind4, bind8是bind4的
後一個版本。和bind4相比,bind8更完善,管理者能更充分的控制它的行
為,但這兩者之間的差別還是很大的,變化的不僅是格式,也多了很多新
的概念。在bind8裡可用的語句有logging,options,zone,acl,key,trusted
-keys,server,controls,include. 它裡面的說明可以用c,c++,或shell/
perl的格式。我想主要介紹一下用bind8配置基本的能工作的主、輔域名
服務器的方法(它們是internet上主要使用的兩種域名服務器),如果有興
趣更深入的了解可以參考man和
RFC 882, RFC 883, RFC 973, RFC 974, RFC 1033, RFC 1034, RFC1035,
RFC 1123, RFC 2308 "Name Server Operations Guide for BIND".

主域名服務器正常工作的必要條件:
1. 安裝bind8軟件,這在很多unix的發行版中都可以找到,
在小紅帽裡有rpm包可以直接安裝.或者去http://freesoft.online.sh.cn,
ftp://studio.sinet.net.cn都可以找到。
2. 幾個必須的配置文件:
named.conf
named.ca
named.local
mater file(就是bind4裡的zone file)

在這幾個配置文件中,最主要的是named.conf,在/etc下,
它是named啟動時缺省的啟動文件.一個典型的named.conf文件至少包括
options,和zone.如:

options {
directory "/var/named";
};

zone "0.0.127.in-addr.arpa" in {
type master;
file "named.local";
};

zone "." in {
type hint;
file "named.ca";
};

zone "99.cn.net" in {
type master;
file "db.99.cn.net";
};

在這裡面,options定義master file存放的路徑,對應於某一個域,
named就會到這裡找數據文件,如有一個www.99.cn.net的require請求,
named就會到/var/named下找db.99.cn.net這個文件,查出www.99.cn.net
的ip. Zone定義一個域,如99.cn.net這個域,type定義域名服務器的類
型,master 說明這是一個主域名服務器,第一個zone定義本地服務器為
它自己的回送域的主服務器,將地址127.0.0.1映射為localhost,幾乎在
所有類型的域名服務器裡都可以看見這個域。第二個 zone用來定義一個
高速緩存初始化文件,在named.ca 裡至少包含著根服務器的名字和地址
(這些根服務器也會變化). 一般named.ca不需要修改,named.local裡只
需要修改SOA紀錄裡域和聯系人。(有些書上說named.local裡的NS紀錄是
個擺設,但我建議最好還是有這一句) file定義99.cn.net這個域的
master file.以下就是這個master file的內容:


@ IN SOA ns.your.domain. Root.your.domain. (
1999110901 ; Serial Number
10800 ; Refresh after 3 hours
3600 ; Retry after 1 hour
3600000 ; Expire after 6 weeks
86400 ) ; Minimum TTL of 1 day

@ IN NS ns.your.domain.
Localhost IN A 127.0.0.1
www IN A 202.98.106.12

這裡面的@定義當前域,也就是your.domain, IN定義這是一個inter
-net類型的紀錄,SOA(start of authority)標志一個授權域的開始,
ns.your.domain. 為開創該域的服務器,可以用主域名服務器,
root.your.domain.定義聯系人,root後的. 就是email裡的@,括號裡的幾
個數字定義和本域有關的幾個參數,單位是秒,前四個參數用於輔域名服
務器更新master file,其中;後面的是說明,serial number用於輔域名服
務器判斷主域名服務器的 master file是否更新,所以如果你有輔域名服
務器,在每次修改 master file後就應該修改這個序列號,以便輔域名服
務器更新這個域的 master file. Refresh定義輔域名服務器刷新的時間,
retry定義如果主服務器未響應,輔服務器重試的時間間隔,expire 定義
這個域的過期時間,就是說如果輔服務器在連續42天裡都沒有從主服務器
取到該域的信息,輔服務器就丟棄該域。第五個參數定義這個域在其他域
名服務器的cache 裡的有效期,過了這個時間其他的域名服務器就會到這
裡來重新查詢相關的信息。

NS表明這個域的域名服務器是ns.your.domain. NS紀錄可以有多個。
Localhost和www這兩條A紀錄的含義是將localhost解析到127.0.0.1 和將
www.your.domain解析到202.98.106.12, 現在一個基本的主域名服務器就
建立好了,但需要特別說明的是,在master file裡,ns.your.domain.後
面的. 這個. 表示這是一個完整的紀錄,否則服務器就會自動給你加上當
前域,例如,www表示www.your.domain,而www.your.domain就會變成
www.your.domain.your.domain,正確的表示方法可以是www或www.your.domain.
如果不給這個.足夠的重視,就很容易出錯。

如果你需要維護很多域,可以在named.conf裡加上相應的zone,然後
在/var/named下建立該域的master file,最後用SIGHUP來reload域名服務
器。如果你需要作反向解析,可以仿照上面named.conf裡第一個zone進行,
在它相應的master file裡用PTR指針將ip轉換為域名。

輔域名服務器的建立

建立輔域名服務器的方法和主域名服務器基本相同,主要的區別在於
named.conf裡的zone類型,它的type為slave,以下是一個輔域名服務器的
named.conf:

options {
directory "/var/named";
};


zone "0.0.127.in-addr.arpa" in {
type master;
file "named.local";
};

zone "." in {
type hint;
file "named.ca";
};

zone "99.cn.net" in {
type slave;
file "db.99.cn.net";
masters { 202.98.21.141; };

可以看出,這個配置文件與主域名服務器的區別,type用salve定義
該服務器為輔域名服務器,然後指出主域名服務器的 ip。但是需注意第
一個zone的type仍為master.另一個區別就是輔域名服務器的master file
不用手動建立,它自己會從主域名服務器傳過來,named-xfer 缺省一次
傳10個域。輔域名服務器的master file和主域名服務器的master file
基本沒有什麼區別。這樣一個可以工作的輔域名服務器就建好了,如果這
是一個新建的輔域名服務器,那麼在你啟動它後很快就會看見/var/named
下多了很多master file. :)

還有一點我想說明的是,如果 internet上的域名服務器亂了,那麼
整個internet 就亂了,所以維護域名的人一定要謹慎從事。因為以前在
internet上工作的都是bind4,如果你維護的域比較多,在從bind4轉到
bind8時可能會為建立格式完全不同的named.conf而頭痛,一個好消息是
在bind8的發行版中有一個named-bootconf的shell腳本和named-bootconf.pl
的perl腳本可以幫你完成從bind4的named.boot到bind8的named.conf的
轉換,為了偷懶,我也寫了一個perl腳本完成從主域名服務器的named.conf
到輔域名服務器的named.conf的轉換,見附錄(僅供參考)。

附錄:named-masterslave.pl

作用:將主域名服務器的named.conf轉換為輔域名服務器的named.conf
用法:將主域名服務器的named.conf和這個腳本放在同一個目錄下,
將腳本中masters裡的ip改為你自己的主域名服務器的ip,運行這個腳本,
就會得到一個named.confd的文件,將文件中有關named.local和named.ca
的zone按上面的例子修改,然後存成 /etc/named.conf就可以了。如果你
有興趣也可以把這個腳本改進一些,使其他人用起來更方便, 不過不要忘
了告訴我一聲噢。 *_^

#!/usr/bin/perl
$filename="named.conf";
open(In,"$filename");
@lines=;
close(In);
open(Out,">named.confd");
foreach $line(@lines) {
if ($line=~ /type/)
{ $line=~ s/master/slave/;}
if ($line=~ /file/) {
$line=~ s/;/;\n masters { 202.98.21.141; };/;}
print Out "$line";
}
close(Out);


--
※ 修改:·ttao 於 Nov 13 00:25:09 修改本文·[FROM: bbs.ndc.neu.edu]
※ 修改:·ttao 於 Nov 13 12:40:09 修改本文·[FROM: bbs.ndc.neu.edu]
※ 修改:·ttao 於 Nov 13 13:11:58 修改本文·[FROM: bbs.ndc.neu.edu]
※ 來源:·BBS 水木清華站 bbs.net.tsinghua.edu.cn·[FROM: bbs.ndc.neu.edu]


——摘自:水木清華站


Copyright © Linux教程網 All Rights Reserved