天天看點

DNS配置實驗小結

DNS server是完成域名和IP之間正向、反向查詢的一台服務提供者,由于網際網路上的各種類型(例如Web、Mail、FTP等)的伺服器位址都是由IP 構成,不友善記憶也不友善使用,是以需要使用一段友善記憶的文字(即域名)來翻譯它進行使用,而DNS就是完成這個翻譯過程的一個系統,DNS伺服器就是這個翻譯服務的提供者。

DNS命名用于Internet等TCP/IP網絡中,通過使用者名稱查找計算機和服務。當使用者在應用程式中輸入DNS名稱時,DNS服務可以将此名稱解析為與之相關的其他資訊,如IP位址。因為,你在上網時輸入的網址,是通過域名解析系解析找到相對應的IP位址,這樣才能上網。其實,域名的最終指向是IP。

配置DNS所需軟體包清單:

軟體包名稱

作用

bind-libs

包含DNS的庫檔案

Bind

DNS伺服器軟體,安裝此軟體前需要安裝libs

caching-nameserver

配置檔案模闆

bind-utils

DNS查詢工具軟體

bind-chroot

使DNS在chroot模式下運作,增強安全性(選擇性安裝)

在實驗中,為了說明設定DNS的具體步驟,不安裝bind-chroot這個檔案包。隻安裝前面四個檔案包就行了。

可以通過安裝CD光牒安裝檔案包,也可以建立一個yum庫來自動安裝檔案包。

<a href="http://linuxtro.blog.51cto.com/attachment/201003/3/1239505_1267610717op8m.jpg"></a>

好了,現在四個封包件都已經安裝完畢了。需要說明的是DNS的主配置檔案在/etc/named.conf中,區域配置檔案在/var/named/目錄下的一些檔案,具體檔案在後面的實驗中會逐個提到,這裡隻是大概說明一下。

因為caching-nameserver包給我們提供了一些檔案模闆,在配置DNS檔案時,我們可以參考這些模闆。首先我們來編輯DNS的主配置檔案。由于安裝了caching-nameserver包,這就友善多了。在/etc/目錄下,存在named.caching-nameserver.conf檔案,這個就是主配置檔案的模闆檔案。複制檔案并命名為named.conf

【注:】在複制時,建議加上-p ,因為在運作DNS時,是named使用者執行具體操作的。若檔案權限不修改,在後面執行時會報錯的,當然,複制完檔案後,再來修改檔案的屬主屬組權限也可以的。

<a href="http://linuxtro.blog.51cto.com/attachment/201003/3/1239505_1267610718tRMa.jpg"></a>

接着要做的就是來編輯主配置檔案了。在試驗過程中以192.168.0.0/24為例子。

現在來簡單定義一下主配置檔案。

zone "localhost" IN {

type master;

file "localhost.zone";

};

type master;表示的意思是該DNS伺服器為主DNS伺服器。

file "localhost.zone"; 表示的意思是定義的該區域的區域檔案名為localhost.zone

localhost 是定義本地正向區域檔案;

0.0.127.in-addr.arpa 是定義本地反向區域檔案;

.是定義根提示檔案,該檔案内容為全球公認的13台根DNS伺服器;

liuht.com是定義本次試驗的正向區域檔案;

0.168.192.in-addr.arpa是定義本次試驗的反向區域檔案;

<a href="http://linuxtro.blog.51cto.com/attachment/201003/3/1239505_12676107204ZOI.jpg"></a>

接下來要做的就是編輯區域配置檔案了。區域配置檔案在/var/named/目錄下,由于在主配置檔案中定義的本地區域檔案和根提示檔案已經存在(由caching-nameserver包提供并定義好)。我們要做的就是編輯本次試驗的正向、反向區域配置檔案。先來編輯正向檔案吧?

在編輯區域檔案時,切記要細心,因為一個小小的标點在這裡也關閉重大。比如圖中所示:

在該檔案中存在着SOA 、NS 、A、 MX、CANME五種記錄。

SOA 起始授權記錄,該标簽允許你配置此DNS區域的SOA記錄。當DNS伺服器加載DNS區域時,會通過SOA記錄來決定此DNS區域的基本資訊和主伺服器,它還包括幾個屬性。具體如下: 

主伺服器:主伺服器包含了此DNS區域的主DNS伺服器的FQDN,此名字必須使用“.”結尾。 

管理者郵箱:指定了管理此DNS區域的負責人的郵箱,當出現異常情況是給管理者發郵件,此名字必須使用“.”結尾(下圖中就出現了這樣的錯誤)。

serial 序列号:表示該區域檔案的版本号(或者叫做修訂号)。當區域中任何資源記錄被修改時,此序列号也要手動修改。主要作用:當輔助DNS進行區域檔案複制時,輔助DNS伺服器查詢主伺服器上DNS區域的版本号,如果主伺服器上DNS區域的版本号大于自己的版本号,則輔助DNS伺服器向主DNS伺服器發起區域複制。 

refresh 更新時間間隔:表示輔助DNS伺服器向主DNS伺服器發起區域檔案更新的時間間隔。當更新時間到期時,輔助DNS伺服器從主DNS伺服器上擷取主DNS區域的SOA記錄,然後和本地輔助DNS區域的SOA記錄相比較,如果序列号值不相同則進行區域檔案傳輸。預設情況下,重新整理間隔為3小時。

retry 重試時間間隔:表示在輔助DNS伺服器在向主DNS伺服器發起區域檔案更新請求失敗的情況下,輔助DNS會等待一段時間之後,重新發起第二次更新請求,retry就是來定義這段時間的時間間隔。預設情況下,重試時間間隔為15分鐘。

expiry 表示當主DNS伺服器不線上時,輔助DNS伺服器存活時間(繼續工作的時間期限,若超過這個期限,則輔助DNS就不會提供位址解析服務)。預設值為一周。

minimum 表示當輔助DNS伺服器得到負面回答(即主DNS伺服器不線上)時,否定回答的有效時間段,預設為一天。 

<a href="http://ciscolj.blog.51cto.com/330452/120173">本文出自 51CTO.COM技術部落格</a>

<a href="http://linuxtro.blog.51cto.com/attachment/201003/3/1239505_12676107238F3H.jpg"></a>

接下來要做的就是配置反向區域配置檔案。在該檔案中存在着SOA 、NS、 PTR記錄。

<a href="http://linuxtro.blog.51cto.com/attachment/201003/3/1239505_1267610725EK8d.jpg"></a>

到現在為止,我們的工作已經完成了一半了。我們還可以看一下本地區域配置檔案内的内容,如圖所示:

本地正向區域配置檔案内容

<a href="http://linuxtro.blog.51cto.com/attachment/201003/3/1239505_1267610728rgFz.jpg"></a>

本地反向區域配置檔案

<a href="http://linuxtro.blog.51cto.com/attachment/201003/3/1239505_1267610729JXC7.jpg"></a>

當所有檔案都配置完成後,可以使用service named configtest指令來檢查剛才的主配置檔案是否存在文法錯誤。對于區域配置檔案,可以用named-checkzone localhost /var/named/localhost指令來檢查本地正向區域配置檔案的文法。若要檢查其他區域配置檔案對應指令為 named-checkzone liuht.com /var/named/liuht.com.zone 後面兩項參數與主配置檔案的具體配置相對應。

<a href="http://linuxtro.blog.51cto.com/attachment/201003/3/1239505_126761073142Ww.jpg"></a>

當所有的文法檢查都沒有錯誤時,我們就可以在本機來測試一下DNS是否生效,常用的測試指令有 dig 和 host ,下面的幾個圖分别為dig和host的測試指令。

【注:】還要確定/etc/resolv.conf 檔案中的nameserver 值為 192.168.0.84(實驗主機IP)和127.0.0.1

<a href="http://linuxtro.blog.51cto.com/attachment/201003/3/1239505_1267610734UQul.jpg"></a>

<a href="http://linuxtro.blog.51cto.com/attachment/201003/3/1239505_1267610738QMGZ.jpg"></a>

<a href="http://linuxtro.blog.51cto.com/attachment/201003/3/1239505_12676107402u4P.jpg"></a>

<a href="http://linuxtro.blog.51cto.com/attachment/201003/3/1239505_1267611008c3aQ.jpg"></a>

除此之外,還可以用反向區域檔案來測試一下。如圖:

<a href="http://linuxtro.blog.51cto.com/attachment/201003/3/1239505_1267611012iBMd.jpg"></a>

好了,到此為止,我們的DNS伺服器就配置完成并測試通過了。但是再來考慮一下,在現實中,如果不懷好意的人來測試我們的DNS伺服器的版本号資訊,如圖所示:

<a href="http://linuxtro.blog.51cto.com/attachment/201003/3/1239505_1267611016PRCQ.jpg"></a>

那麼現在我們該怎麼辦呢?如果不顯示版本資訊,不就相對來說安全一些嗎?行!接下來就不讓别人獲得DNS版本資訊。

打開DNS主配置檔案,/etc/named.conf 在options 項中添加

version “None of your business”;

如圖所示:

<a href="http://linuxtro.blog.51cto.com/attachment/201003/3/1239505_1267611017BAjd.jpg"></a>

再來執行一下剛才的指令 “ dig txt chaos version.bind.”

<a href="http://linuxtro.blog.51cto.com/attachment/201003/3/1239505_1267611019gxFC.jpg"></a>

到此為止,本次DNS基本配置實驗就結束了,有關DNS的進階配置,比如配置輔助DNS,子DNS的配置,會在後面的實驗中逐漸來示範。

本文轉自 linuxtro 51CTO部落格,原文連結:http://blog.51cto.com/linuxtro/280307,如需轉載請自行聯系原作者

繼續閱讀