DNS服務(wù)器既可以是主控服務(wù)器也可以是輔助服務(wù)器。主控服務(wù)器也稱為主服務(wù)器,是判定域名的最終來源。主控服務(wù)器同時(shí)也是傳送到輔助服務(wù)器的區(qū)傳送(zone transfer)的源頭。輔助服務(wù)器接收所有來自主控服務(wù)器的區(qū)信息。一個(gè)常見的錯(cuò)誤是試圖改變二級(jí)服務(wù)器上的區(qū)數(shù)據(jù)庫(kù)文件而沒有改變主控服務(wù)器上的區(qū)數(shù)據(jù)庫(kù)文件(zone file)。為什么要兩個(gè)服務(wù)器呢?在任何配置中使用冗余都是一個(gè)好主意,這是BIND和DNS的一個(gè)原生部分。幸運(yùn)的是,在機(jī)房中增加第二臺(tái)Linux機(jī)器作為輔助DNS服務(wù)器一般來說不會(huì)影響你的預(yù)算。
要記住當(dāng)有兩種類型的服務(wù)器時(shí),主控服務(wù)器也可以同時(shí)擔(dān)當(dāng)其他域的輔助服務(wù)器。在大多數(shù)ISP環(huán)境當(dāng)中都可以看到這種情形,客戶擁有自己的主控DNS服務(wù)器,同時(shí)又出于備份的目的把ISP當(dāng)作二級(jí)服務(wù)器。這種類型的配置以及BIND中幾乎所有的其他配置項(xiàng)都是通過named.conf文件完成的。這個(gè)文件以純文本的形式存放各服務(wù)器信息和區(qū)信息。如表A所示。
named.conf 文件示例
options { notify-source 10.0.0.2, pid-file "/var/run/named.pid", },
zone "." { type master, file "root.db", },
zone "example.com" { type master, file "/var/named/sample.com.zone", },
DNS服務(wù)器有多種可用的選項(xiàng),如果你需要某種特殊的安裝方式,我建議你通讀一遍附帶的文檔
。上面的例子中notify-source指明服務(wù)器把區(qū)變動(dòng)通知(NOTIFY)消息發(fā)送到什么地方,當(dāng)主控服務(wù)器檢測(cè)到區(qū)數(shù)據(jù)庫(kù)文件發(fā)生變動(dòng)時(shí)就會(huì)向輔助服務(wù)器發(fā)出這樣的消息。pid-file選項(xiàng)只是告訴守護(hù)進(jìn)程(daemon)服務(wù)器寫入ID信息的路徑,通常是/var/run/named.pid,但如果你重新設(shè)置了目錄的布局的話也可以根據(jù)需要對(duì)其進(jìn)行更改。
上面的例子中第一個(gè)區(qū)登記項(xiàng)用來通知BIND在何處定位根服務(wù)器的信息。服務(wù)器發(fā)送和接收的不僅是你自己的域信息同時(shí)也包括Internet上所有的域信息。并不是每個(gè)服務(wù)器上都有每個(gè)域名的登記項(xiàng),但每個(gè)服務(wù)器都知道怎樣獲取信息。當(dāng)然,由于列表會(huì)定期更新,所以也應(yīng)當(dāng)定期作記錄。
在named.conf示例文件中第二個(gè)區(qū)登記項(xiàng)是一個(gè)"主控"域項(xiàng),意思是這個(gè)DNS服務(wù)器保存著example.com的有效信息, Internet上其他所有的DNS服務(wù)器都將用它來參照任何與這個(gè)域相關(guān)的信息。Example.com項(xiàng)引用/var/named/sample.com.zone這個(gè)文件。這是一個(gè)純文本文件,它告訴DNS服務(wù)器所有有關(guān)example.com的信息,包括serial值、刷新率、所有的DNS紀(jì)錄以及其他一些項(xiàng)目。表B顯示了這個(gè)區(qū)數(shù)據(jù)庫(kù)文件的示例。
DNS區(qū)數(shù)據(jù)庫(kù)文件示例
@ IN SOA ns1.sample.com. ( 200101111 ,serial 14400 ,refresh after 4 hours 3600 ,retry after 1 hour 604800 ,expire after 1 week 86400) ,minimum TTL of 1 day , ,Nameservers , IN NS ns1.sample.com. , IN NS ns2.sample.com. , , ,Domain Mail Handlers , sample.com. IN MX 10 mail , ,Hosts in order , www IN A 212.204.219.71 ftp IN A 212.204.219.71 mail IN A 212.204.219.71 pop IN CNAME mail
SOA是Start of Authority的縮寫,所有區(qū)文件都要以它打頭
。順序號(hào)(serial)使服務(wù)器能夠紀(jì)錄所進(jìn)行過的各次更新,守護(hù)進(jìn)程最近一次啟動(dòng)后只要數(shù)字出現(xiàn)了增長(zhǎng),它就會(huì)重新把信息讀入到數(shù)據(jù)庫(kù)中去。舉例來說,你可以從0開始然在每次更新之后加讓一個(gè)數(shù)字,也可以使用日期項(xiàng)如200101111。這很有用,因?yàn)樗屇隳軌蚩醋罱囊淮胃碌陌l(fā)生并且看出一天是否發(fā)生過多次更新。接下來的四行以秒的形式處理刷新和超時(shí)周期,如果BIND數(shù)據(jù)庫(kù)沒有發(fā)生過人工或者服務(wù)器范圍的刷新,服務(wù)器會(huì)自動(dòng)的重新讀入信息。不需要經(jīng)常改變此處所列出的數(shù)值,只有由于某種原因域非常頻繁地改變它們的信息時(shí)才需要對(duì)這些數(shù)值進(jìn)行更改。接著列出的是域名,這樣BIND就會(huì)知道是誰(shuí)控制整個(gè)域。
接著列出的是MX紀(jì)錄,,它使服務(wù)器知道當(dāng)有郵件信息請(qǐng)求sample.com時(shí)應(yīng)當(dāng)發(fā)出什么信息,在本例中,mail.samle.com的優(yōu)先級(jí)是10。你可以列出多個(gè)MX紀(jì)錄作為郵件服務(wù)器的備份。數(shù)字越小優(yōu)先級(jí)越高。要注意的是還有一個(gè)相應(yīng)的A紀(jì)錄給出了mail.sample.com的IP地址,這是必不可少的,這樣DNS服務(wù)器就可以知道怎樣根據(jù)域直接把郵件請(qǐng)求發(fā)往何處。一個(gè)A紀(jì)錄僅僅是把IP地址賦給一個(gè)子域項(xiàng),如www、mail、ftp或者ns,這些都必須用上面的格式錄入,而且必須與一個(gè)IP地址相關(guān)聯(lián)。比如說,當(dāng)某個(gè)用戶請(qǐng)求www.sample.com時(shí),他將會(huì)被指向該域所在的Web服務(wù)器的IP地址212.104.219.71。
上面的例子中還有一個(gè)CNAME項(xiàng),CNAME是指canonical name,用于指定IP地址的別名,使用這些別名時(shí)還是要回過頭參考已經(jīng)使用過的A紀(jì)錄。
輔助服務(wù)器部分
看過name.conf中的主控服務(wù)器部分后我們?cè)賮砜纯摧o助服務(wù)器部分: zone "sample2.com" { type slave, file "/var/named/sample2.com.zone", master { 10.0.0.1, },
最主要的兩個(gè)區(qū)別一是type項(xiàng),它既可以是master也可以使slave,二是IP地址指定的是主控DNS服務(wù)器
。其他的都和Master項(xiàng)相同。
啟動(dòng)BIND 用于啟動(dòng)DNS服務(wù)的程序是named,讀作"name D"。你可以通過執(zhí)行/etc/rc.d/init.d/named start命令來運(yùn)行這個(gè)程序。如果服務(wù)器已經(jīng)處于運(yùn)行狀態(tài),你可以用restart命令。這個(gè)腳本程序應(yīng)該是在安裝時(shí)放進(jìn)正確的目錄中的,它在啟動(dòng)時(shí)運(yùn)行以初始化服務(wù)器。你總是應(yīng)當(dāng)用ps aux命令檢查一下named是否已經(jīng)運(yùn)行,這個(gè)命令會(huì)列出當(dāng)前所有進(jìn)程的清單。
總結(jié) 現(xiàn)在你對(duì)如何在Linux上使用BIND有了一個(gè)比較好的了解。通過下載最新的版本,對(duì)它進(jìn)行基本的配置后你就可以把一個(gè)Red Hat Linux的機(jī)器變成一個(gè)成熟的DNS服務(wù)器。有關(guān)DNS和BIND的主題很容易塞滿整本書。我建議你使用程序附帶的文檔,以及OReilly出版的《DNS和BIND》一書(譯注:中文版由水利出版社出版)。域名解析是Internet能夠工作所必備的,也是Linux一個(gè)出色的用途。
|