Red Hat Linux上使用BIND建立DNS服務(wù)器
發(fā)布時間:2009-06-17 21:02:42 作者:佚名
我要評論
盡管Linux在桌面計算的世界中還沒有取得引人注目的進展,但作為網(wǎng)絡(luò)服務(wù)器它已經(jīng)小有名氣了。由于其出色的可靠性,我們可以放心地在Linux上運行當(dāng)今Internet時代所必需的各種重要服務(wù)程序。由此,Linux最普遍的一些用途包括用作郵件服務(wù)器、Web服務(wù)器以及DNS服務(wù)器。
盡管Linux在桌面計算的世界中還沒有取得引人注目的進展,但作為網(wǎng)絡(luò)服務(wù)器它已經(jīng)小有名氣了。由于其出色的可靠性,我們可以放心地在Linux上運行當(dāng)今Internet時代所必需的各種重要服務(wù)程序。由此,Linux最普遍的一些用途包括用作郵件服務(wù)器、Web服務(wù)器以及DNS服務(wù)器。
下面我們將研究怎樣在Red Hat Linux上使用BIND建立一個DNS服務(wù)器。BIND(Berkeley Internet Name Domain)是一個在UNIX/Linux系統(tǒng)上實現(xiàn)的域名解析服務(wù)軟件包。我們將學(xué)習(xí)在Linux上建立和運行一個DNS服務(wù)器所需的安裝、初始配置以及系統(tǒng)設(shè)置等步驟。
在本文中我們用Red Hat作為示例,所以你也許希望使用BIND的RPM版本,可以通過搜索www.rpmfind.net找到它,因為使用RPM形式的發(fā)行包是安裝BIND最簡便的方法。下載了BIND的RPM之后,比如bind-9.1.0-10.i386.rpm,需要以超級用戶的身份執(zhí)行rpm -ivh bind-9.1.0-10.i386.rpm命令。在RPM安裝BIND時要注意檢查任何能夠?qū)е掳惭b失敗的缺失的依賴關(guān)系。
如果你更愿意從源碼包安裝的話,在下載如 bind-9.1.3.tar.gz這樣的文件之后需要以超級用戶身份運行tar xvfz bind-9.1.3.tar.gz命令對它進行解壓。就本例而言會生成一個名為bind-9.1.3的目錄,它包含了進行安裝所必需的所有文件。下一步,進入這個新創(chuàng)建的目錄然后執(zhí)行./configure命令,在腳本程序完成所有配置工作后,運行make,接著運行make install完成安裝過程?,F(xiàn)在在你的系統(tǒng)中應(yīng)該已經(jīng)安裝好了基本配置的BIND,接下來要根據(jù)需要對它進行調(diào)整。
配置BIND
當(dāng)系統(tǒng)中安裝好BIND之后,你就可以把它配置成多種方式。最常用的兩種之一是使用ISP類型的設(shè)置,DNS服務(wù)器接受并解析來自任何人的請求 (或者一組預(yù)先定義的用戶);另一種是Web主機方式,服務(wù)器只解析對服務(wù)域名的請求。當(dāng)服務(wù)器的用途改變時,你也可以隨時改變配置的類型。
DNS服務(wù)器既可以是主控服務(wù)器也可以是輔助服務(wù)器。主控服務(wù)器也稱為主服務(wù)器,是判定域名的最終來源。主控服務(wù)器同時也是傳送到輔助服務(wù)器的區(qū)傳送(zone transfer)的源頭。輔助服務(wù)器接收所有來自主控服務(wù)器的區(qū)信息。一個常見的錯誤是試圖改變二級服務(wù)器上的區(qū)數(shù)據(jù)庫文件而沒有改變主控服務(wù)器上的區(qū)數(shù)據(jù)庫文件(zone file)。為什么要兩個服務(wù)器呢?在任何配置中使用冗余都是一個好主意,這是BIND和DNS的一個原生部分。幸運的是,在機房中增加第二臺Linux 機器作為輔助DNS服務(wù)器一般來說不會影響你的預(yù)算。
要記住當(dāng)有兩種類型的服務(wù)器時,主控服務(wù)器也可以同時擔(dān)當(dāng)其他域的輔助服務(wù)器。在大多數(shù)ISP環(huán)境當(dāng)中都可以看到這種情形,客戶擁有自己的主控 DNS服務(wù)器,同時又出于備份的目的把ISP當(dāng)作二級服務(wù)器。這種類型的配置以及BIND中幾乎所有的其他配置項都是通過named.conf文件完成的。這個文件以純文本的形式存放各服務(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ù)器有多種可用的選項,如果你需要某種特殊的安裝方式,我建議你通讀一遍附帶的文檔。上面的例子中notify-source指明服務(wù)器把區(qū)變動通知(NOTIFY)消息發(fā)送到什么地方,當(dāng)主控服務(wù)器檢測到區(qū)數(shù)據(jù)庫文件發(fā)生變動時就會向輔助服務(wù)器發(fā)出這樣的消息。pid-file選項只是告訴守護進程(daemon)服務(wù)器寫入ID信息的路徑,通常是/var/run/named.pid,但如果你重新設(shè)置了目錄的布局的話也可以根據(jù)需要對其進行更改。
上面的例子中第一個區(qū)登記項用來通知BIND在何處定位根服務(wù)器的信息。服務(wù)器發(fā)送和接收的不僅是你自己的域信息同時也包括Internet上所有的域信息。并不是每個服務(wù)器上都有每個域名的登記項,但每個服務(wù)器都知道怎樣獲取信息。當(dāng)然,由于列表會定期更新,所以也應(yīng)當(dāng)定期作記錄。
在named.conf示例文件中第二個區(qū)登記項是一個"主控"域項,意思是這個DNS服務(wù)器保存著example.com的有效信息, Internet上其他所有的DNS服務(wù)器都將用它來參照任何與這個域相關(guān)的信息。Example.com項引用/var/named /sample.com.zone這個文件。這是一個純文本文件,它告訴DNS服務(wù)器所有有關(guān)example.com的信息,包括serial值、刷新率、所有的DNS紀(jì)錄以及其他一些項目。表B顯示了這個區(qū)數(shù)據(jù)庫文件的示例。
DNS區(qū)數(shù)據(jù)庫文件示例
@ 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ū)文件都要以它打頭。順序號(serial)使服務(wù)器能夠紀(jì)錄所進行過的各次更新,守護進程最近一次啟動后只要數(shù)字出現(xiàn)了增長,它就會重新把信息讀入到數(shù)據(jù)庫中去。舉例來說,你可以從0開始然在每次更新之后加讓一個數(shù)字,也可以使用日期項如200101111。這很有用,因為它讓你能夠看最近的一次更新的發(fā)生并且看出一天是否發(fā)生過多次更新。接下來的四行以秒的形式處理刷新和超時周期,如果BIND數(shù)據(jù)庫沒有發(fā)生過人工或者服務(wù)器范圍的刷新,服務(wù)器會自動的重新讀入信息。不需要經(jīng)常改變此處所列出的數(shù)值,只有由于某種原因域非常頻繁地改變它們的信息時才需要對這些數(shù)值進行更改。接著列出的是域名,這樣BIND就會知道是誰控制整個域。
接著列出的是MX紀(jì)錄,,它使服務(wù)器知道當(dāng)有郵件信息請求sample.com時應(yīng)當(dāng)發(fā)出什么信息,在本例中,mail.samle.com的優(yōu)先級是 10。你可以列出多個MX紀(jì)錄作為郵件服務(wù)器的備份。數(shù)字越小優(yōu)先級越高。要注意的是還有一個相應(yīng)的A紀(jì)錄給出了mail.sample.com的IP地址,這是必不可少的,這樣DNS服務(wù)器就可以知道怎樣根據(jù)域直接把郵件請求發(fā)往何處。一個A紀(jì)錄僅僅是把IP地址賦給一個子域項,如www、mail、 ftp或者ns,這些都必須用上面的格式錄入,而且必須與一個IP地址相關(guān)聯(lián)。比如說,當(dāng)某個用戶請求www.sample.com時,他將會被指向該域所在的Web服務(wù)器的IP地址212.104.219.71。
上面的例子中還有一個CNAME項,CNAME是指canonical name,用于指定IP地址的別名,使用這些別名時還是要回過頭參考已經(jīng)使用過的A紀(jì)錄。
輔助服務(wù)器部分看過name.conf中的主控服務(wù)器部分后我們再來看看輔助服務(wù)器部分: zone "sample2.com" {
type slave;
file "/var/named/sample2.com.zone";
master { 10.0.0.1; };
最主要的兩個區(qū)別一是type項,它既可以是master也可以使slave,二是IP地址指定的是主控DNS服務(wù)器。其他的都和Master項相同。
啟動BIND
用于啟動DNS服務(wù)的程序是named,讀作"name D"。你可以通過執(zhí)行/etc/rc.d/init.d/named start命令來運行這個程序。如果服務(wù)器已經(jīng)處于運行狀態(tài),你可以用restart命令。這個腳本程序應(yīng)該是在安裝時放進正確的目錄中的,它在啟動時運行以初始化服務(wù)器。你總是應(yīng)當(dāng)用ps aux命令檢查一下named是否已經(jīng)運行,這個命令會列出當(dāng)前所有進程的清單。
下面我們將研究怎樣在Red Hat Linux上使用BIND建立一個DNS服務(wù)器。BIND(Berkeley Internet Name Domain)是一個在UNIX/Linux系統(tǒng)上實現(xiàn)的域名解析服務(wù)軟件包。我們將學(xué)習(xí)在Linux上建立和運行一個DNS服務(wù)器所需的安裝、初始配置以及系統(tǒng)設(shè)置等步驟。
在本文中我們用Red Hat作為示例,所以你也許希望使用BIND的RPM版本,可以通過搜索www.rpmfind.net找到它,因為使用RPM形式的發(fā)行包是安裝BIND最簡便的方法。下載了BIND的RPM之后,比如bind-9.1.0-10.i386.rpm,需要以超級用戶的身份執(zhí)行rpm -ivh bind-9.1.0-10.i386.rpm命令。在RPM安裝BIND時要注意檢查任何能夠?qū)е掳惭b失敗的缺失的依賴關(guān)系。
如果你更愿意從源碼包安裝的話,在下載如 bind-9.1.3.tar.gz這樣的文件之后需要以超級用戶身份運行tar xvfz bind-9.1.3.tar.gz命令對它進行解壓。就本例而言會生成一個名為bind-9.1.3的目錄,它包含了進行安裝所必需的所有文件。下一步,進入這個新創(chuàng)建的目錄然后執(zhí)行./configure命令,在腳本程序完成所有配置工作后,運行make,接著運行make install完成安裝過程?,F(xiàn)在在你的系統(tǒng)中應(yīng)該已經(jīng)安裝好了基本配置的BIND,接下來要根據(jù)需要對它進行調(diào)整。
配置BIND
當(dāng)系統(tǒng)中安裝好BIND之后,你就可以把它配置成多種方式。最常用的兩種之一是使用ISP類型的設(shè)置,DNS服務(wù)器接受并解析來自任何人的請求 (或者一組預(yù)先定義的用戶);另一種是Web主機方式,服務(wù)器只解析對服務(wù)域名的請求。當(dāng)服務(wù)器的用途改變時,你也可以隨時改變配置的類型。
DNS服務(wù)器既可以是主控服務(wù)器也可以是輔助服務(wù)器。主控服務(wù)器也稱為主服務(wù)器,是判定域名的最終來源。主控服務(wù)器同時也是傳送到輔助服務(wù)器的區(qū)傳送(zone transfer)的源頭。輔助服務(wù)器接收所有來自主控服務(wù)器的區(qū)信息。一個常見的錯誤是試圖改變二級服務(wù)器上的區(qū)數(shù)據(jù)庫文件而沒有改變主控服務(wù)器上的區(qū)數(shù)據(jù)庫文件(zone file)。為什么要兩個服務(wù)器呢?在任何配置中使用冗余都是一個好主意,這是BIND和DNS的一個原生部分。幸運的是,在機房中增加第二臺Linux 機器作為輔助DNS服務(wù)器一般來說不會影響你的預(yù)算。
要記住當(dāng)有兩種類型的服務(wù)器時,主控服務(wù)器也可以同時擔(dān)當(dāng)其他域的輔助服務(wù)器。在大多數(shù)ISP環(huán)境當(dāng)中都可以看到這種情形,客戶擁有自己的主控 DNS服務(wù)器,同時又出于備份的目的把ISP當(dāng)作二級服務(wù)器。這種類型的配置以及BIND中幾乎所有的其他配置項都是通過named.conf文件完成的。這個文件以純文本的形式存放各服務(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ù)器有多種可用的選項,如果你需要某種特殊的安裝方式,我建議你通讀一遍附帶的文檔。上面的例子中notify-source指明服務(wù)器把區(qū)變動通知(NOTIFY)消息發(fā)送到什么地方,當(dāng)主控服務(wù)器檢測到區(qū)數(shù)據(jù)庫文件發(fā)生變動時就會向輔助服務(wù)器發(fā)出這樣的消息。pid-file選項只是告訴守護進程(daemon)服務(wù)器寫入ID信息的路徑,通常是/var/run/named.pid,但如果你重新設(shè)置了目錄的布局的話也可以根據(jù)需要對其進行更改。
上面的例子中第一個區(qū)登記項用來通知BIND在何處定位根服務(wù)器的信息。服務(wù)器發(fā)送和接收的不僅是你自己的域信息同時也包括Internet上所有的域信息。并不是每個服務(wù)器上都有每個域名的登記項,但每個服務(wù)器都知道怎樣獲取信息。當(dāng)然,由于列表會定期更新,所以也應(yīng)當(dāng)定期作記錄。
在named.conf示例文件中第二個區(qū)登記項是一個"主控"域項,意思是這個DNS服務(wù)器保存著example.com的有效信息, Internet上其他所有的DNS服務(wù)器都將用它來參照任何與這個域相關(guān)的信息。Example.com項引用/var/named /sample.com.zone這個文件。這是一個純文本文件,它告訴DNS服務(wù)器所有有關(guān)example.com的信息,包括serial值、刷新率、所有的DNS紀(jì)錄以及其他一些項目。表B顯示了這個區(qū)數(shù)據(jù)庫文件的示例。
DNS區(qū)數(shù)據(jù)庫文件示例
@ 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ū)文件都要以它打頭。順序號(serial)使服務(wù)器能夠紀(jì)錄所進行過的各次更新,守護進程最近一次啟動后只要數(shù)字出現(xiàn)了增長,它就會重新把信息讀入到數(shù)據(jù)庫中去。舉例來說,你可以從0開始然在每次更新之后加讓一個數(shù)字,也可以使用日期項如200101111。這很有用,因為它讓你能夠看最近的一次更新的發(fā)生并且看出一天是否發(fā)生過多次更新。接下來的四行以秒的形式處理刷新和超時周期,如果BIND數(shù)據(jù)庫沒有發(fā)生過人工或者服務(wù)器范圍的刷新,服務(wù)器會自動的重新讀入信息。不需要經(jīng)常改變此處所列出的數(shù)值,只有由于某種原因域非常頻繁地改變它們的信息時才需要對這些數(shù)值進行更改。接著列出的是域名,這樣BIND就會知道是誰控制整個域。
接著列出的是MX紀(jì)錄,,它使服務(wù)器知道當(dāng)有郵件信息請求sample.com時應(yīng)當(dāng)發(fā)出什么信息,在本例中,mail.samle.com的優(yōu)先級是 10。你可以列出多個MX紀(jì)錄作為郵件服務(wù)器的備份。數(shù)字越小優(yōu)先級越高。要注意的是還有一個相應(yīng)的A紀(jì)錄給出了mail.sample.com的IP地址,這是必不可少的,這樣DNS服務(wù)器就可以知道怎樣根據(jù)域直接把郵件請求發(fā)往何處。一個A紀(jì)錄僅僅是把IP地址賦給一個子域項,如www、mail、 ftp或者ns,這些都必須用上面的格式錄入,而且必須與一個IP地址相關(guān)聯(lián)。比如說,當(dāng)某個用戶請求www.sample.com時,他將會被指向該域所在的Web服務(wù)器的IP地址212.104.219.71。
上面的例子中還有一個CNAME項,CNAME是指canonical name,用于指定IP地址的別名,使用這些別名時還是要回過頭參考已經(jīng)使用過的A紀(jì)錄。
輔助服務(wù)器部分看過name.conf中的主控服務(wù)器部分后我們再來看看輔助服務(wù)器部分: zone "sample2.com" {
type slave;
file "/var/named/sample2.com.zone";
master { 10.0.0.1; };
最主要的兩個區(qū)別一是type項,它既可以是master也可以使slave,二是IP地址指定的是主控DNS服務(wù)器。其他的都和Master項相同。
啟動BIND
用于啟動DNS服務(wù)的程序是named,讀作"name D"。你可以通過執(zhí)行/etc/rc.d/init.d/named start命令來運行這個程序。如果服務(wù)器已經(jīng)處于運行狀態(tài),你可以用restart命令。這個腳本程序應(yīng)該是在安裝時放進正確的目錄中的,它在啟動時運行以初始化服務(wù)器。你總是應(yīng)當(dāng)用ps aux命令檢查一下named是否已經(jīng)運行,這個命令會列出當(dāng)前所有進程的清單。
相關(guān)文章

集成系統(tǒng)級Claw模式! Deepin 官宣發(fā)布 25.1 版本
deepin操作系統(tǒng)發(fā)布了最新的 25.1 版本更新,該版本基于 deepin 25 正式版積累的多輪內(nèi)測成果,在 AI 能力、內(nèi)核版本、桌面環(huán)境、文件管理器以及系統(tǒng)安全等方面進行了更新2026-04-13
又一代老硬件退場! Linux 內(nèi)核正式放棄Intel 486 CPU
在過去的幾十年間,CPU 的架構(gòu)已經(jīng)經(jīng)歷了飛速發(fā)展,x86 系列就是其中之一,而 i486 則屬于該系列中的一個,當(dāng)前,i486 的CPU處理器已經(jīng)夠老,從 Linux 7.1 開始將不再有對2026-04-09
趕緊收藏! 全網(wǎng)最全 Linux 命令總結(jié)
我把 Linux 中最常用、最實用、最常被問到的命令按照實際使用場景分類整理,方便你快速查閱和記憶,內(nèi)容覆蓋日常運維、開發(fā)調(diào)試、性能分析、文件處理、網(wǎng)絡(luò)、安全、系統(tǒng)管2026-04-08
一分鐘內(nèi)檢查Linux服務(wù)器性能? 9個性能檢測常用的基本命令
今天我們來看看Linux系統(tǒng)中用于性能監(jiān)控的一系列命令,這些命令可以快速查看機器的負(fù)載情況,詳細(xì)請看下文介紹2026-03-18
從零基礎(chǔ)到精通! 適合高級用戶的15款Linux發(fā)行版推薦
Linux作為操作系統(tǒng)領(lǐng)域靈活性和可定制性的基石,提供了大量滿足不同用戶需求的發(fā)行版,今天分享適合高級用戶的15款Linux發(fā)行版2026-03-10
開箱即用? 這4個高手級Linux發(fā)行版遠(yuǎn)沒你想象的那么安全易用
如果你正在糾結(jié)用哪個發(fā)行版?零基礎(chǔ)新手別被“高端”“極客”“聲明式”這些詞沖昏頭腦,先用好用的,再慢慢進階2026-03-10
這幾款SSH工具真的夠用了! Linux好用的ssh工具推薦
在Linux上使用SSH,您需要安裝一個SSH客戶端,今天整理找到的8 款 SSH / 終端工具,從免費開源到企業(yè)級商用,從輕量化命令行到一站式工具箱,每款都做了介紹與對比,希望能2026-03-09
在Linux系統(tǒng)下有兩種用戶,即高級用戶root,普通用戶,高級用戶root可以在系統(tǒng)中做任何事情,普通用戶僅可在Linux系統(tǒng)中做有限的事情,下面我們就來看看切換方法2026-02-28
揭秘當(dāng)前登錄用戶的身份! Linux中使用logname命令的技巧
logname命令就是這樣一個簡單但強大的工具,它能幫助我們輕松獲取當(dāng)前登錄用戶的用戶名,今天,我們就來深入探索一下這個命令的工作原理、使用方法和最佳實踐2026-02-26
在 Linux 系統(tǒng)中,DNS 緩存是一種將域名和 IP 地址映射關(guān)系緩存在本地的機制,可以加快域名解析速度,并減輕 DNS 服務(wù)器的負(fù)載2026-02-26



