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