Linux、DNS服務(wù)器
項目十七、DNS 服務(wù)器一、簡介在Internet 中,對主機進行標識的方式是使用IP 地址,源主機只有知道目的主機的IP 地址才有可能進行通信。但是Internet 當中的IP 地址的數(shù)量非常大,我
項目十七、DNS 服務(wù)器
一、簡介
在Internet 中,對主機進行標識的方式是使用IP 地址,源主機只有知道目的主機的IP 地址才有可能進行通信。但是Internet 當中的IP 地址的數(shù)量非常大,我們記住所有要訪問的主機的IP 地址是很困難的,那么如何解決這個問題呢?我們可以給計算機起個“名字”,這就好比是記一個人的名字要比記住他的身份證號碼要容易得多,如果名字還遵循一定的規(guī)律那就更好記了。Internet 中對主機名有一套進行統(tǒng)一命名的方式,稱為“域名”系統(tǒng),因此需要計算機域名和它的IP 地址之間建立一定的映射關(guān)系,讓這個映射的解析過程由計算機系統(tǒng)自動完成。我們把在Internet 中對計算機進行標識的“名字”稱為計算機“域名”,負責解析計算機域名的系統(tǒng)稱為“域名系統(tǒng)DNS ”(domain name system)。
由于Internet 當中主機數(shù)量巨大,全世界采用一臺域名服務(wù)器進行解析是不現(xiàn)實的。因此,Internet 中的域名系統(tǒng)采用一種層次結(jié)構(gòu),域名就是“唯一的層次結(jié)構(gòu)的名字”。這里所說的“域”,是指層次化名字空間中的一個可被管理的區(qū)域,例如,“新浪網(wǎng)”的域名就是www.sina.com.cn
1)“.”表示“根域”,它負責解析頂級域名“org”、“com”、“edu”、“cn”等。
2)“com”是頂級域名,它負責解析在它之下的二級域名,例如“microsoft”等。
3)“microsoft”是二級域名,它負責解析在它之下的子域名稱,例如“training”等。
4)“training”是最底層的域名,它負責解析具體主機名與IP 地址的對應(yīng)關(guān)系,例如“Webserver1”。
二、 DNS 服務(wù)器安裝
首先確定系統(tǒng)是否已經(jīng)安裝了DNS ,輸出如下命令:
# rpm -qa | grep bind
如果結(jié)果顯示為“bind-9.2.1-9”,則說明系統(tǒng)已經(jīng)安裝DNS 服務(wù)器。 如果沒有安裝DNS 服務(wù)器或者重新安裝,可用rpm 來安裝
如果在命令行界面下,可以直接插入Red Hat Linux安裝光盤,定位到/RedHat/RPMS下,有關(guān)命令及操作如下:
# mount /dev/cdrom /mnt/cdrom //加載光驅(qū)
# cd /mnt/cdrom/RedHat/RPMS //進入光盤的RedHat/RPMS目錄
DNS 服務(wù)器的軟件包包括bind 和caching-nameserver ,可以使用下面的命令安裝到本機: # rpm –Uhv bind* //在第1張光盤
# rpm –Uhv caching-nameserver* //在第2張光盤
三、啟動DNS 服務(wù)器
啟動/重新啟動/停止DNS 服務(wù)
# service named start //啟動DNS 服務(wù)器
# pstree | grep named //驗證是否啟動
# service named restart //重新啟動DNS 服務(wù)
# service named stop //關(guān)閉DNS 服務(wù)
# service named status //查看運行狀態(tài)
四、配置DNS 服務(wù)器
配置文件:
/etc/named.conf: 主配置文件(重要)
/var/named/named.ca:緩存文件,指向根域名服務(wù)器的指示文件
/var/named/named.local:本地反向解析文件
/var/named/localhost.zone:本地正向解析文件
以下為用戶創(chuàng)建:
/var/named/named.host:主正向解析文件,用于映射主機名到IP 地址,由管理員創(chuàng)建 /var/named/named.rev:反向解析文件,用于將IP 地址映射到主機名,由管理員創(chuàng)建
配置文件分析:
1、主配置文件named.conf
通過以下語句可以查看DNS 服務(wù)器的主配置文件named.conf 的內(nèi)容:
[root@localhost root]#vi /etc/named.conf
以下就對文件中的部分內(nèi)容進行說明:
options{
directory "/var/named";
};
options 中的內(nèi)容為服務(wù)器的通用配置,這里表示named 的資源記錄保存在/var/named目錄中,也就是說,所有DNS 日志記錄都集中在這個目錄下。
controls{
inet 127.0.0.1 allow{localhost;}keys{rndckey;};
};
在controls 中,“inet ”表示利用TCP/IP Socket 訪問Internet 資源,它由指定的IP 地址和IP 連接產(chǎn)生,此處表示允許本機(localhost )利用rndckey 進行訪問。
zone ". "IN{
type hint;
file "named.ca ";
,};
上述語句用來定義一個DNS 區(qū)域以及DNS 服務(wù)器管理信息的方法。zone 后面的“. ”表示此處用來定義根網(wǎng)域的內(nèi)容,“IN ”表示根網(wǎng)域?qū)儆贗N (Internet )區(qū)域類型,并使用“type ”定義了此區(qū)域的類型為hint 。
zone "localhost "IN{
type master;
file "localhost.zone ";
allow update{none;};
};
上述語句表示此區(qū)域用來定義本機域的正解內(nèi)容,它屬于IN 類型,區(qū)域中的服務(wù)器類型是master ,使用localhost.zone 文件來記錄區(qū)域的資源記錄,最后一句表示不允許客戶端或服務(wù)器自動更新此DNS 記錄。
zone "0.0.127.in addr.arpa "IN{
type master;
file "named.local ";
allow update{none;};
};
include "/etc/rndc.key";
上面“0.0.127.in addr.arpa ”表示此區(qū)域是用來定義本機網(wǎng)域的反向解析內(nèi)容,“IN ”表示也屬于IN 類型,使用文件named.local 記錄區(qū)域的資源記錄,不允許客戶端或者服務(wù)器自動更新DNS 記錄。最后一句“include ”/etc/rndc.key“”表示將參照這個文件的內(nèi)容進行區(qū)域轉(zhuǎn)移,并且這個文件也可以用于DNS 更新的加密處理。
2、正向解析數(shù)據(jù)庫文件localhost.zone
可以通過vi 命令查看localhost.zone 文件的內(nèi)容,例如:
[root@localhost root]#vi /var/named/localhost.zone
$TTL86400
$ORIGIN localhost.
@ 1D IN SOA @ root (
42; serial (d.adams)
3H; refresh
15M; retry
1W; expiry
1D ); minimum
1D IN NS @
1D IN A 127.0.0.1
3. 逆向解析數(shù)據(jù)庫文件named.local
下面介紹逆向解析數(shù)據(jù)庫文件/var/named/named.local,其內(nèi)容如下:
$TTL86400
@ IN SOA localhost.root. localhost.(
1997022700 ; serial //版本號
28800; refresh //刷新時間
14400; retry //重試等待時間
,3600000; expire //過期時間
86400 ); minimum //最小值存活時間
IN NS localhost.
1 IN PTR localhost.
五、DNS 配置實例
如:配置一個www.tea.com 域名,實現(xiàn)如下:
1、修改主配置文件named.conf ,添加如下內(nèi)容:
zone "tea.com "{
type master;
file "tt.zone ";
};
表示master 告訴named 這是tea.com 域的主服務(wù)器,該域的數(shù)據(jù)需要從tt.zone 文件中加載。
在添加如下內(nèi)容:
zone "1.168.192.in-addr.arpa "IN {
type master;
file "tt.rev ";
};
表示將反向解析的設(shè)置存放在tt.rev 文件中。注意1.168.192(表示先去掉ip 地址最后一位,再倒寫)
2. 建立域名文件
已經(jīng)配置了named.conf 文件,并在里面建立了一個tea.com 域,要讓這個域發(fā)揮作用,還必須在/var/named目錄中創(chuàng)建正向解析文件tt.zone 和創(chuàng)建反向解析文件tt.rev ,通過在這個文件中添加資源記錄來進行域名解析。
建立正向解析文件:tt.zone
[root@localhost root]# vi /var/named/tt.zone
在該文件中添加如下內(nèi)容:
@ IN SOA tea.com. root.tea.com.( //主要服務(wù)器名稱 管理員E-MAIL 地址 1997022700;serial //區(qū)域版本編號
28800;refresh //同步更新時間
14400;retry //同步重試時間`
3600000;expire //同步到期時間
86400 ;tt1 //TTL默認值
)
IN NS localhost.
www IN A 192.168.1.120
建立反向解析文件:tt.rev
[root@localhost root]# vi /var/named/tt.rev
在該文件中添加如下內(nèi)容:
@ IN SOA tea.com. root.tea.com.( //主要服務(wù)器名稱 管理員E-MAIL 地址 1997022700;serial //區(qū)域版本編號
,28800;refresh //同步更新時間
14400;retry //同步重試時間`
3600000;expire //同步到期時間
86400 ;tt1 //TTL默認值
)
IN NS localhost.
120 IN PTR www.tea.com
3、更改/etc/resolv.conf文件(本機使用DNS 服務(wù)器地址和域名后綴)
search tea.com
nameserver 192.168.1.120
4、測試(客戶端的配置):
若客戶端是windows 系統(tǒng):
對于運行Windows 操作系統(tǒng)的客戶機,在Windows 客戶端中打開“Internet 協(xié)議(TCP/IP)屬性”對話框,將DNS 服務(wù)器的IP 地址分別輸入到“首選DNS 服務(wù)器”和“備用DNS 服務(wù)器”文本框中,單擊“確定”按鈕即可。
如下圖:
若客戶端是Linux 系統(tǒng):
[root@localhost root] #netconfig
進入“Configure TCP/IP”窗口,進行相應(yīng)設(shè)置。其中,在“Primary nameserver”文本框中輸入的是DNS 服務(wù)器的IP 地址(或用圖形界面網(wǎng)絡(luò)設(shè)置項中,把DNS 域改為DNS 服務(wù)器的IP 地址即可) 。
然后,要對/etc/resolv.conf文件進行修改
search tea.com //DNS搜尋路徑,即解析不完整名稱時默認的附加域名后綴 nameserver 192.168.1.120 //設(shè)置DNS 服務(wù)器的IP 地址
如下圖所示結(jié)果:
六、DNS 服務(wù)器測試工具和錯誤檢測
用于測試DNS 服務(wù)器的工具包括dig 、host 和nslookup 等,其中比較常用的是nslookup 。使用BIND 時,可以通過named checkconf 命令和named checkzone 命令檢查BIND 配置。
nslookup 工具
nslookup 是一個命令行工具,可以使用交互模式以及命令模式進行域名查詢。執(zhí)行nslookup 命令,可以看到當前使用的DNS 服務(wù)器的名稱與地址,并出現(xiàn)提示符“>”,在其后可以輸入相應(yīng)的命令進行查詢,比較常用的命令有如下幾個:
(1)help :用于顯示nslookup 命令的幫助信息。
(2)set :設(shè)置工作參數(shù)。
(3)exit :退出nslookup 命令。
(4)lserver :指定要使用的域名服務(wù)器。
(5)server :使用當前默認的域名服務(wù)器查找指定的目標。
bind 配置檢查工具
使用bind 時,一點小錯誤都可能導(dǎo)致named 不能正常運行,這些錯誤一般發(fā)生在主配置文件named.conf 或者數(shù)據(jù)庫文件中,查找起來比較困難,此時,可以使用BIND 提供的文件檢查工具進行排錯。
可以使用named-checkconf 工具檢查named.conf 文件。
[root@localhost root] #named-checkconf
還可以使用named-checkzone 檢查數(shù)據(jù)庫文件
[root@localhost root] #named-checkzone tea.com /var/named/tt.zone
[root@localhost root] #named-checkzone tea.com /var/named/tt.rev
在運行named-checkconf 命令檢查name.conf 文件時,如果檢測到錯誤,則給出提示(有時需要檢查所提示行數(shù)的附近兩行),如果沒有錯誤,就不會顯示任何信息。需要注意的是,不是所有語法錯誤都可以被該程序檢查到。
七、域名解析應(yīng)用(簡介):
實例:訪問某個域名站點。(本例結(jié)合Apache 和DNS 服務(wù)器配置)
1、完成Apache 服務(wù)器的安裝和配置;
2、完成DNS 服務(wù)器的安裝和實現(xiàn)所要求域名解析配置。
3、修改Apache 服務(wù)器中的httpd.conf 配置文件(/etc/httpd/conf/httpd.conf)
在末尾添加如下內(nèi)容:
NameVirtualHost 192.168.1.120
DocumentRoot /var/www
ServerName www.tea.com
完成后重新啟動Apache 和DNS 服務(wù)器,然后在本機或其他連網(wǎng)主機的地址欄里分別輸入http://192.168.1.120 和 http://www.tea.com測試,是否都可以。
如下圖(客戶端結(jié)果):