經(jīng)常上網(wǎng)的朋友可能經(jīng)常去新浪、搜狐等大型網(wǎng)站,只需要在瀏覽器輸入它們的網(wǎng)址即可實(shí)現(xiàn)訪問,看似非常簡單,但是從技術(shù)層面來講,卻包含了一個(gè)復(fù)雜的過程:在訪問網(wǎng)頁的時(shí)候,首先在瀏覽器輸入網(wǎng)站域名,接著瀏覽器會(huì)根據(jù)本機(jī)DNS服務(wù)器的設(shè)置將輸入的網(wǎng)站域名轉(zhuǎn)換為對(duì)應(yīng)的IP地址,然后才去這個(gè)IP對(duì)應(yīng)的服務(wù)器上請(qǐng)求數(shù)據(jù),最后將請(qǐng)求得到的數(shù)據(jù)通過瀏覽器顯示出來。這個(gè)過程最主要的一個(gè)環(huán)節(jié)就是從域名到IP地址的轉(zhuǎn)換,而這個(gè)工作就是靠DNS服務(wù)器實(shí)現(xiàn)的。
一、 DNS服務(wù)概述
DNS是Domain Name System的縮寫,即域名系統(tǒng),DNS服務(wù)主要的功能是將域名轉(zhuǎn)換為相應(yīng)的IP地址,提供DNS服務(wù)的系統(tǒng)就是DNS服務(wù)器。
DNS服務(wù)器可以分為3種,主域名服務(wù)器(Master DNS)、輔助域名服務(wù)器(Slave DNS)和高速緩存服務(wù)器(Cache-only server)。
Master DNS,本身提供dns服務(wù),并且本身含有區(qū)域數(shù)據(jù)文件。
Slave DNS,和Master一起提供dns服務(wù),當(dāng)Master服務(wù)器上的配置信息修改的時(shí)候,會(huì)自動(dòng)更新到Slave服務(wù)器達(dá)到同步。
Cache-only server,沒有自己的區(qū)域數(shù)據(jù)文件,只是幫助客戶端向外部dns請(qǐng)求查詢,然后將查到的結(jié)果保存到它的緩存中。
在linux系統(tǒng)下DNS服務(wù)的功能是通過bind軟件實(shí)現(xiàn)的,幾乎每個(gè)linux發(fā)行版都自帶了這個(gè)DNS服務(wù)軟件,下面將具體講述DNS服務(wù)的安裝、配置與使用。
二、 DNS服務(wù)的搭建
這里我們的講述環(huán)境為:
操作系統(tǒng):Red Hat Enterprise Linux Server release 5
bind軟件版本:系統(tǒng)自帶bind-9.3.4
1. 安裝bind軟件
Rhel5系統(tǒng)下安裝bind需要同時(shí)安裝bind-utils、bind-chroot、ypbind、bind-libs、caching-nameserver幾個(gè)支持bind的軟件包。檢查系統(tǒng)是否正確安裝了bind軟件,執(zhí)行如下命令:
[root@localhost ~]# rpm -qa |grep bind
bind-libs-9.3.4-6.0.2.P1.el5_2
bind-utils-9.3.4-6.0.2.P1.el5_2
bind-chroot-9.3.4-6.0.2.P1.el5_2
ypbind-1.19-8.el5
bind-9.3.4-6.0.2.P1.el5_2
[root@localhost ~]# rpm -qa |grep caching-nameserver
caching-nameserver-9.3.4-6.0.2.P1.el5_2
上面的幾個(gè)軟件包都可以從系統(tǒng)安裝光盤找到,如果沒有安裝或者缺少某些包,請(qǐng)自行通過rpm方式進(jìn)行安裝,這里不在過多講述。
如果你的系統(tǒng)支持yum方式自動(dòng)升級(jí),只需執(zhí)行如下命令即可自動(dòng)完成安裝:
[root@localhost ~]#yum install bind caching-nameserver
2.配置DNS服務(wù)
Bind軟件在rhel 5版本中使用了chroot技術(shù),與其它linux版本下的配置不盡相同,例如沒有DNS服務(wù)的核心配置文件named.conf以及任何區(qū)域數(shù)據(jù)文件,安裝程序的路徑也與其它版本不同。不過這些并不影響我們對(duì)DNS的配置,下面首先講述bind在rhel5下的安裝目錄結(jié)構(gòu)。
Bind安裝完畢,主程序目錄默認(rèn)為/var/named,由于rhel5下的bind默認(rèn)安裝后沒有named.conf文件,而我們?cè)谏厦姘惭b了caching-nameserver包,這個(gè)包提供了rhel5下bind的初始化模板文件,所以/var/named/chroot/etc是DNS的核心配置文件目錄,/var/named/chroot/var/named目錄則是系統(tǒng)自帶的區(qū)域數(shù)據(jù)文件及自己建立的區(qū)域數(shù)據(jù)文件的位置。
。1)named.conf文件詳解
這里我們通過系統(tǒng)提供給bind的初始化模板文件構(gòu)造出named.conf文件來。
[root@localhost ~]#cd /var/named/chroot/etc
[root@localhost etc]# cp named.rfc1912.zones named.conf
[root@localhost etc]#chown root:named named.conf
在這里,我們通過拷貝named.rfc1912.zones文件構(gòu)造出了named.conf主配置文件。然后將named.conf的權(quán)限設(shè)置為root:named,注意,這個(gè)授權(quán)很重要,要不然DNS無法正常工作。
[root@localhost ~]#vi /var/named/chroot/etc/named.conf
// named.rfc1912.zones:
// Provided by Red Hat caching-nameserver package
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// See /usr/share/doc/bind*/sample/ for example named configuration files.
在named.conf配置文件中主要使用“//”和“/* */”來進(jìn)行注釋。
options {
directory "/var/named";
};
上面這段通過OPTIONS選項(xiàng)定義了一些影響整個(gè)DNS服務(wù)器的環(huán)境設(shè)置,directory選項(xiàng)指定named從/var/named目錄下讀取DNS數(shù)據(jù)文件,這個(gè)目錄用戶可自行指定并創(chuàng)建,指定后所有的DNS數(shù)據(jù)文件都存放在此目錄下。
zone "ixdba.net" IN {
type master;
file "ixdba.net";
allow-update { none; };
};
上面這段設(shè)置是用zone關(guān)鍵字來定義一個(gè)正向域區(qū),對(duì)應(yīng)的域名分別為ixdba.net,一個(gè)zone關(guān)鍵字定義一個(gè)域區(qū)。在這里type類型有三種,它們分別是master,slave和hint,它們的含義分別是:
l Master:表示定義的是主域名服務(wù)器。
l slave:表示定義的是輔助域名服務(wù)器。
l hint:表示是互聯(lián)網(wǎng)中根域名服務(wù)器。
file用來指定存放DNS記錄的文件,allow-update定義是否允許客戶主機(jī)或服務(wù)器自行更新DNS記錄,上面指定的這個(gè)正向區(qū)域不允許更新DNS記錄。
zone "60.168.192.in-addr.arpa" IN {
type master;
file "60.168.192.zone";
allow-update { none; };
};
上面這段設(shè)置是定義一個(gè)IP為192.168.60.*的反向區(qū)域。
。2)區(qū)域數(shù)據(jù)文件的設(shè)定
在/var/named/chroot/var/named目錄下,我們定義出上面指定的幾個(gè)區(qū)域數(shù)據(jù)文件。
[root@localhost ~]#cd /var/named/chroot/var/named
[root@localhost named]#cp localhost.zone ixdba.net
[root@localhost named]#cp named.local 60.168.192.zone
[root@localhost named]#chown root:named ixdba.net 60.168.192.zone
下面我們分析下正向區(qū)域數(shù)據(jù)文件的格式和含義,主要看下我們已經(jīng)設(shè)定好的ixdba.net區(qū)域數(shù)據(jù)文件:
[root@localhost named]#more /var/named/chroot/var/named/ixdba.net
$TTL 86400
@ IN SOA ns.ixdba.net. root.ixdba.net.(
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns.ixdba.net.
IN MX 10 mail
IN A 192.168.60.133
ns IN A 192.168.60.133
www IN A 192.168.60.135
mail IN A 192.168.60.136
linux IN CNAME www
可以看出,區(qū)域數(shù)據(jù)文件內(nèi)容很簡單。
第一行是一個(gè)TTL設(shè)定,定義區(qū)域數(shù)據(jù)文件里面的各項(xiàng)記錄的默認(rèn)TTL值為86400 秒,缺少此行不影響使用,但是會(huì)出現(xiàn)警告信息。
第二行﹐是一個(gè)SOA記錄的設(shè)定,“@”代表相應(yīng)的域名,也就是在named.conf中設(shè)定的zone,如在這里表示ixdba.net,IN表示后面的數(shù)據(jù)使用的是INTERNET標(biāo)準(zhǔn)。SOA,全稱是“Start Of Authority”的意思,表示目前區(qū)域授權(quán)開始。每一個(gè)區(qū)域數(shù)據(jù)文件只能有一個(gè)SOA,不能重復(fù),而且必須是所負(fù)責(zé)的zone中第一個(gè)“記錄”。在SOA后面分別指定了這個(gè)區(qū)域的授權(quán)主機(jī)名稱和管理者的信箱,特別注意,授權(quán)主機(jī)名和管理員信箱后面都要有一個(gè)“.”,而且授權(quán)主機(jī)名稱必須能夠在DNS設(shè)置中找到一個(gè)A記錄(下面會(huì)講到),由于“@”在區(qū)域數(shù)據(jù)文件中有其它含義,因此管理員信箱郵件地址中用“.”代替“@”符號(hào)。
接下來包含在括弧中的5組數(shù)字是作為與slave服務(wù)器同步信息而設(shè)置的,含義如下:
l Serial:表示配置文件的修改版本,格式是年月日加上修改的次數(shù),每次修改這個(gè)配置文件時(shí)都應(yīng)該修改這個(gè)數(shù)字,因?yàn)閟lave DNS進(jìn)行信息同步時(shí),會(huì)比較這個(gè)數(shù)值,如果這個(gè)數(shù)值比自身的數(shù)值大,那么就進(jìn)行更新,否則忽略更新。注意,這個(gè)設(shè)置很重要,如果你在修改區(qū)域數(shù)據(jù)文件后,沒有更新該值,那么所作的更改就不會(huì)更新到網(wǎng)上的其它DNS服務(wù)器。
l refresh:用來設(shè)定slave DNS與Master DNS進(jìn)行同步的間隔時(shí)間。
l retry:如果slave DNS在進(jìn)行更新失敗后,要隔多久再進(jìn)行重試。
l expiry:設(shè)定slave DNS在與Master DNS同步失敗后,多長時(shí)間清除對(duì)應(yīng)的記錄。
l Minimum:這是默認(rèn)的最小TTL值,如果在前面沒有指定TTL值,就以這個(gè)為基準(zhǔn)。
以上的數(shù)字都是以秒為單位,但也可以用 H(小時(shí))、D(天)、W(星期)來做單位。
第8至14行,是對(duì)域名解析的具體設(shè)置,第一列表示不同的主機(jī)域名,但是省略了后面的域信息。例如“www”其實(shí)是www.ixdba.net,“mail”是指mail.ixdba.net。其它具有相同的含義。“IN”后面的指令含義說明如下:
l NS:用來定義這個(gè)主機(jī)是個(gè)域名服務(wù)器。
l MX:定義了一個(gè)郵件交換器。
l A指針:定義了一個(gè)A記錄,即域名到IP的記錄。
l CNAME:定義了域名的別名。
從上面的例子可知,我們首先定義了一個(gè)NS(name server)為ns.ixdba.net,然后定義了一個(gè)郵件交換器,交換優(yōu)先級(jí)為10,接著定義了4個(gè)A記錄,不同域名指向了不同的IP地址。最后定義了一個(gè)www的別名,即訪問linux.ixdba.net與訪問www.ixdba.net是相同的。
下面接著分析一下反向區(qū)域數(shù)據(jù)文件60.168.192.zone的各個(gè)選項(xiàng)的含義:
[root@localhost named]#more /var/named/chroot/var/named/60.168.192.zone
$TTL 86400
60.168.192.in-addr.arpa. IN SOA ns.ixdba.net. root.ixdba.net.(
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns.ixdba.net
136 IN PTR mail.ixdba.net.
135 IN PTR www.ixdba.net.
可以看出,基本結(jié)構(gòu)與正向區(qū)域數(shù)據(jù)文件完全相同,只不過這里多出了一個(gè)PTR選項(xiàng)。PTR用來定義一個(gè)反向記錄,也就是通過IP可以查到對(duì)應(yīng)的域名信息。最后兩行的第一列表示的是主機(jī)的IP地址,只不過省略了網(wǎng)絡(luò)地址部分,如136對(duì)應(yīng)的IP為192.168.60.136,同理,135對(duì)應(yīng)的IP為192.168.60.135。
至此,DNS文件配置部分已經(jīng)講述完畢,從配置DNS的過程可以看出,DNS配置文件對(duì)格式要求非常嚴(yán)格,如果設(shè)置語句以空格鍵或tab 鍵開始的話,其設(shè)置被認(rèn)為是一個(gè)“記錄項(xiàng)”的內(nèi)容,如果設(shè)置語句不是以空格鍵、Tab鍵開頭,也不在SOA指定的括弧內(nèi),
億恩科技地址(ADD):鄭州市黃河路129號(hào)天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888
聯(lián)系:億恩小凡
QQ:89317007
電話:0371-63322206 本文出自:億恩科技【www.riomediacenter.com】
服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|