在RHEL 5下通過Bind實現(xiàn)DNS功能
原創(chuàng)DNS的作用及相關(guān)概念不屬于本文討論內(nèi)容,在本文中只講述如何通過RHEL 5.1的BIND實現(xiàn)DNS常見功能。
BIND所需包:bind(BIND服務(wù)器軟件包,默認(rèn)沒有被安裝到RHEL5系統(tǒng)中),bind-utils(提供了對DNS服務(wù)器的測試工具程序 ,系統(tǒng)默認(rèn)安裝),bind-chroot、caching-nameserver。
通過yum方式安裝BIND
下面的安裝包是一個配置文件的例子:
配置chroot
chroot是BIND的一種安裝機(jī)制,使用chroot后,它會為BIND虛擬出一個/以及/etc等BIND需要使用的目錄。這個虛擬的目錄可通過/etc/sysconfig/named文件修改,但一般直接使用默認(rèn)的虛擬目錄即可。
1:位于該文件的***一行。它表示對于BIND而言/var/named/chroot就是/。比如某個BIND配置文件中寫到/etc/named.conf,那么這個文件的實際路徑應(yīng)該是var/named/chroot/etc/named.conf。
在后面的所有BIND配置都在/var/named/chroot中完成
BIND配置步驟
BIND的使用首先通過全局配置文件獲得DNS相關(guān)選項并決定需要啟用的主配置文件,主配置文件中定義了可查詢的區(qū)域以及每個區(qū)域?qū)偷膮^(qū)域配置文件,區(qū)域配置文件中定義了相關(guān)資源記錄。
#p#
全局配置
在etc目錄下有一個全局配置的例子文件,將其復(fù)制一份改名為named.conf。如下圖復(fù)制時一定要加-a,因為如果全局配置文件的擁有組不是named時,BIND服務(wù)是無法運行的。
修改全局配置文件
1:選項配置如下:
◆ listen-on port 53 { 127.0.0.1; };這個是DNS偵聽本機(jī)的端口及IP。這里設(shè)置表示只偵聽127.0.0.1這個地址。如不定義此選項表示偵聽所有網(wǎng)絡(luò)
◆ directory “/var/named”指主配置文件路徑,這個路徑也是相對路徑,它的絕對路徑/var/named/chroot/var/named
◆ query-source port 53;客戶端在進(jìn)行DNS查詢時必須使用53做為源端口
◆ allow-query { localhost; };允許提交查詢的客戶端,如不定義此選項表示允許所有查詢
◆ allow-recursion {192.168.0.0/24;192.168.0.1/24}:允許提交遞歸查詢的客戶端,如不定義此選項表示允許所有
◆ allow-transfer {192.168.0.254;}:允許區(qū)域傳輸?shù)腄NS服務(wù)器(輔助DNS),不寫表示允許所有
forwarders {192.168.0.9;}:轉(zhuǎn)發(fā)器
◆ forward only|first:only表示如果在指定的轉(zhuǎn)發(fā)器找不到,不會去向根查詢,first表示快速轉(zhuǎn)發(fā)(默認(rèn))
2:定義主配置文件,此部分可有多個,只要求localhost_resolver這個名字不重復(fù)
◆ match-clients { localhost; };客戶端的源IP
match-destinations { localhost; };解析出的目標(biāo)IP
recursion yes;如果客戶端提交的FQDN本服務(wù)器沒有,那么服務(wù)器會幫助客戶端去查詢
◆ include “/etc/named.rfc1912.zones”; 指定主配置文件
上面參數(shù)中所有指定地址范圍(如:listen-on、match-clients等)時都可以多個寫法如下:
◆ 單個IP:192.168.0.1;
◆ 網(wǎng)段:192.168.0.0/24;
◆ 指定多個IP:192.168.0.1;192.168.0.2;
◆ 網(wǎng)段:192.168.0.;
還可以使用!表示不包括
◆ none:不匹配所有
◆ any:匹配所有
◆ localhost:DNS主機(jī)
◆ localnet:與DNS主機(jī)同網(wǎng)段
可以在全局配置文件的最頂部通過以下文件給定義一個計算機(jī)的集合,在指定地址范圍進(jìn)也可使用該集合名稱
1:偵聽本機(jī)所有IP的DNS請求,但只響應(yīng)192.168.0.0/24及192.168.1.0/24二個網(wǎng)段的客戶端。
2:當(dāng)客戶的IP屬于192.168.0.0/24網(wǎng)段時,啟用/etc/example0.com這個主配置文件; 當(dāng)客戶的IP屬于192.168.0.1/24網(wǎng)段時,啟用/etc/example1.com這個主配置文件。
主配置文件
在etc目錄下有一個主配置的例子文件,將其復(fù)制一份改名為example0.com。如下圖復(fù)制時一定要加-a,因為如果主配置文件的擁有組不是named時,BIND服務(wù)是無法運行的。
主配置文件的其它內(nèi)容無需修改,只要將已有的正向及反向區(qū)域內(nèi)容復(fù)制一份進(jìn)行修改
zone:指定區(qū)域名稱;type:指定類型
類型 |
說明 |
Master |
主DNS服務(wù)器:擁有區(qū)域數(shù)據(jù)文件,并對此區(qū)域提供管理數(shù)據(jù) |
Slave |
輔助區(qū)域:擁有主DNS服務(wù)器區(qū)域數(shù)據(jù)文件的副本,輔助DNS服務(wù)器從主DNS服務(wù)器同步所有區(qū)域數(shù)據(jù) |
Stub |
stub區(qū)域和slave類似,但它只復(fù)制主DNS服務(wù)器上的NS記錄,而不像輔助DNS服務(wù)器會復(fù)制所有區(qū)域數(shù)據(jù) |
Forward |
一個forward zone是每個域的配置轉(zhuǎn)發(fā)的主要部分。一個zone語句中的type forward可以包括一個forward和或forwarders子句,它會在區(qū)域名稱給定的域中查詢。如果沒有forwarders語句或forwarders是空表,那么這個域就不會轉(zhuǎn)發(fā),消除了options語句中有關(guān)轉(zhuǎn)發(fā)的配置 |
Hint |
根域名服務(wù)器的初始化組指定使用的線索區(qū)域hint zone,當(dāng)服務(wù)器啟動時,它使用根線索來查找根域名服務(wù)器,并找到最近的根域名服務(wù)器列表。如果沒有指定class IN的線索區(qū)域,服務(wù)器使用編譯時默認(rèn)的根服務(wù)器線索。不是IN的類別沒有內(nèi)置的默認(rèn)線索服務(wù)器 |
file:指定區(qū)域配置文件,該文件中將定義資源記錄
allow-update:指定動態(tài)更新類型,none表示不允許動態(tài)更新
此處已指明example.com區(qū)域的區(qū)域配置文件名為example.com.zone,192.168.0.0/24的反向區(qū)域配置文件名為zone.example.com。這個二文件應(yīng)該位于/var/named(在全局配置文件中定義的)目錄下,這個路徑也是相對路徑,它的絕對路徑/var/named/chroot/var/named。
區(qū)域配置文件
在/var/named中正向、反向各有一個例子,將這二個例子復(fù)制一份進(jìn)行修改,如下圖復(fù)制時一定要加-a,因為如果區(qū)域配置文件的擁有組不是named時,BIND服務(wù)是無法運行的。
編輯正向配置文件
在編寫資源記錄是@表示繼承主配置文件中的區(qū)域名稱,最左邊列不寫表示繼承上一行的內(nèi)容,這只是為了方便編寫,每次全部寫全也可以。
$TTL:DNS緩存時間,單位:秒
SOA記錄
◆ 主域名服務(wù)器:區(qū)域的DNS服務(wù)器的FQDN
◆ 管理員:管理員的郵件地址中@用.代替
◆ 序列號:區(qū)域復(fù)制依據(jù),每次主要區(qū)域修改完數(shù)據(jù)后,要手動增加它的值
◆ 刷新間隔:默認(rèn)以秒為單位,也可如上圖中寫明時間單位,輔助DNS服務(wù)器請求與源服務(wù)器同步的等待時間。當(dāng)刷新間隔到期時,輔助DNS服務(wù)器請求源服務(wù)器的SOA記錄副本。然后,輔助DNS服務(wù)器將源服務(wù)器的SOA記錄的序列號與其本地SOA記錄的序列號比較,如果不同,則輔助DNS服務(wù)器從主要DNS服務(wù)器請求區(qū)域傳輸。這個域的默認(rèn)時間是900秒
◆ 重試時間:默認(rèn)以秒為單位,也可如上圖中寫明時間單位,輔助DNS服務(wù)器在請求失敗后,等待多長時間重試。通常這個應(yīng)該短于刷新時間。默認(rèn)為600秒
◆ 過期時間:默認(rèn)以秒為單位,也可如上圖中寫明時間單位,當(dāng)這個時間到期時,如輔助DNS服務(wù)器還無法與源服務(wù)器進(jìn)行區(qū)域傳輸,則輔助DNS服務(wù)器會把它的本地數(shù)據(jù)當(dāng)作不可靠數(shù)據(jù)。默認(rèn)值是86400秒
◆ TTL:默認(rèn)以秒為單位,也可如上圖中寫明時間單位區(qū)域的默認(rèn)生存時間和緩存否定應(yīng)答名稱查詢的***間隔。默認(rèn)值是3600秒
NS記錄
A資源記錄
CNAME資源記錄
MX資源記錄
#p#
配置輔助區(qū)域
在上面講述主要區(qū)域時,已經(jīng)允許192.168.0.254進(jìn)行區(qū)域傳輸,只需192.168.0.254上的BIND的區(qū)域配置文件。
masters:指定主服務(wù)器。
files:指輔助區(qū)域配置文件,這個文件一定是存放在slaves(該目錄的絕對路徑/var/named/chroot/var/named/slaves)目錄。輔助區(qū)域配置文件不需要建立,只要重啟named服務(wù),這二個輔助區(qū)域配置文件的內(nèi)容會從主服務(wù)器復(fù)制過來。
手動區(qū)域傳輸
dig -t axfr|ixfr 區(qū)域名稱 @輔助DNS服務(wù)器
axfr:完全傳輸
ixfr:增量傳輸
dig -t axfr example.com @192.168.0.254表示將區(qū)域example.com內(nèi)容完全傳輸?shù)捷o助區(qū)域所在DNS服務(wù)器192.168.0.254。
配置轉(zhuǎn)發(fā)
◆ 完全轉(zhuǎn)發(fā)
修改主全局配置文件。
◆ 條件轉(zhuǎn)發(fā)
轉(zhuǎn)發(fā)服務(wù)器的查詢模式必須允許遞歸查詢。
轉(zhuǎn)發(fā)服務(wù)器列表如為多個DNS服務(wù)器,則會依次嘗試,直到獲得查詢信息為止
配置委派
將位于192.168.0.14上的區(qū)域example.com的子域wh.example.com委派給192.168.0.254。
在192.168.0.14的example.com區(qū)域配置文件中加入以下內(nèi)容
在192.168.0.254上建立區(qū)域wh.example.com
緩存服務(wù)器
只需在全局配置文件中加以下配置即可
【編輯推薦】