基礎認知篇
DNS服務的概述
DNS是Domain Name System 的縮寫,即域名系統。DNS服務主要功能是将域名轉換為相應的IP位址,提供DNS服務的系統就是DNS伺服器。形如它能夠把www.baidu.com這樣的域名轉換為61.135.169.125這樣的IP位址;沒有DNS,浏覽baidu.com這個網站時,就必須用61.135.169.125這麼難記的數字來通路。
DNS伺服器可以分為3種,即主域名伺服器(Master DNS)、輔助域名伺服器(Slave DNS)、緩存伺服器。
uMaster DNS:本身提供DNS 服務,并且本身含有區域資料檔案。
uSlave DNS:和Master一起提供DNS服務,當Master伺服器上的配置資訊修改的時候,會同步更新到Slave伺服器上
u緩存伺服器:沒有自己的區域資料檔案,隻是幫助用戶端向外部DNS請求查詢,然後将查詢的結果儲存到它的緩存中。
在linux系統下DNS服務的功能是通過bind軟體實作的,幾乎每個linux發行版都自帶了這個DNS服務軟體。下面将具體講述DNS服務的安裝、配置和使用。
伺服器搭建篇
第一部分:主DNS服務的搭建實作(包含知識點闡述)
環境介紹:CentOS6.4-x86_64
bind版本:bind 9.8.2-0.17.rc1.el6
一.安裝bind軟體:
CentOS系統下安裝bind時,一般都需要同時安裝bind-utils、bind-chroot、ypbind、bind-libs和caching-nameserver幾個支援bind的軟體包。
注:bind-chroot:安裝上這個包之後讓named程序有限的活動在/var/named/chroot/中防止黑客攻擊導緻伺服器的崩潰。這裡就不安裝了,因為安裝之後除了路徑改變之後其他均不變。是以為了更好的熟悉過程就暫時不裝了。
上面的幾個軟體包都可以從系統CD光牒中查找,可以通過指向yum源進行安裝:
[root@localhost ~]#yum install bind
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
二.配置DNS服務
l 準備工作:
dig(域資訊搜尋器)指令是個用于詢問 DNS 域名伺服器的靈活的工具。他執行 DNS 搜尋,顯示從受請求的域名伺服器傳回的答複。多數 DNS 管理者利用 dig 作為DNS 問題的故障診斷,因為他靈活性好、易用、輸出清楚。雖然通常情況下 dig 使用指令行參數,但他也能夠按批處理模式從文檔讀取搜尋請求。不同于早期版本,dig 的 BIND9 實作允許從指令行發出多個查詢。除非被告知請求特定域名伺服器,dig 将嘗試 /etc/resolv.conf 中列舉的任何伺服器。當未指定任何指令行參數或選項時,dig 将對“.”(根)執行 NS 查詢。
dig指令格式:
dig –t 資源記錄類型名稱@server-ip |
dig –x IP @server-ip 反向解析 |
dig –t axfr zone 驗證完全區域傳送 |
dig –t ixfr zone 驗證增量區域傳輸(通常需要指定序列号) |
l 配置工作:
主配置檔案:named.conf,主要作用是定義區域,定義各區域的全局配置,定義視圖,定義日志,注意每個完整語句都要使用分号結尾,否則視為文法錯誤。
bind安裝完畢之後,主程式目錄預設為/var/named。
1).named.conf檔案詳解
|
|
|
|
|
2).定義本地區域檔案解析
首先更改/etc/named.rfc1912.zones主區域配置檔案,在檔案尾部新增下面一段内容:
|
上面這段設定是用zone關鍵字來定義的一個正向區域,對應的域名為magedu.com。在這裡type類型有三種,他們分别為master、slave、hint,含義如下:
master:表示定義的主域名伺服器
slave:表示定義的是輔助域名伺服器
hint:表示是網際網路中的根域名伺服器
file用來指定存放DNS記錄的檔案(一般都是區域名稱.zone),allow-update定義是否允許客戶主機或伺服器自行更新DNS記錄,上面指定的這個正向區域不允許更新DNS記錄。
|
3).定義區域資料檔案:
[root@localhost ~]# cd /var/named/ #切換到區域檔案存放目錄
15 | |
下面我們分析一下我們已經設定好的magedu.com正向區域資料檔案的格式和含義:
可以看出,區域資料檔案的内容很簡單。
第一行是一個TTL設定,定義區域資料檔案裡面的各項記錄的宏,缺少此行不影響使用,但是會出現警告資訊。
第二行是一個SOA記錄的設定,“@“代表相應的域名,也就是在/etc/named.rfc1912.zones,如在這裡表示magedu.com,IN表示後面的資料使用的是Internet标準。SOA表示目前區域授權開始。每一個區域資料檔案隻能有一個SOA,不能重複,并且必須是所負責的zone中第一個”記錄“。在SOA後面分别指定這個區域的授權主機名稱和管理者的郵箱。
注:授權主機名和管理者信箱後面都要有一個”.”。由于”@”在區域資料檔案中有其他含義,是以管理者郵箱位址中用”.”代替“@“符号。
接下來包含在括弧内的5組數字是作為伺服器同步資訊而設定的,含義如下:
第一段表示配置檔案的修改版本,格式是年月日加上修改的次數,每次修改這個配置檔案時都應該修改這個數值,因為當DNS進行資訊同步時,會比較這個數值的值。如果這個數值比自身的數值大,就進行更新,否則忽略更新。(這個設定很重要,如果修改區域資料後沒有更新該值,那麼所做的更改就不會同步到其他DNS伺服器)
第二段表示用來設定DNS伺服器進行同步的間隔時間又稱重新整理時間。隻通知給本區域解析庫檔案中定義NS記錄的所有主機;
第三段表示同步更新失敗之後,在進行重試的間隔時間。
第四段表示同步更新失敗之後,多長時間清除對應的記錄,又稱過期時間
第五段表示否定的TTL值
接下來是對域名解析的具體設定,第1清單示不同的主機域名,但是省略了後面的域資訊(若為空白表示與上面域名相同)。例如:”www”其實是www.magedu.com等。“IN“後面的指令含義說明如下:
NS:用來定義這個主機是個域名伺服器,是個區域名稱
MX:定義郵件伺服器,這裡需要定義優先級的哦!這裡定義的交換級别為10
A:定義了一個A記錄,即域名到IP的記錄
CNAME:定義了域名的别名
[root@localhostnamed]# cp magedu.com.zone 172.16.18.zone #定義反向區域檔案
|
分析:可以看出,反向區域檔案基本結構和正向區域資料檔案基本完全相同,隻不過這裡多出了一個PTR選項。PTR用來定義一個反向記錄,也就是通過IP可以查到對應的域名資訊。最後四行的第一清單示是主機的IP位址,隻不過省略了網絡位址部分,系統會自動補全,如20對應的是172.16.18.20.
至此,DNS檔案配置部分已經基本配置完成,從過程可以看出DNS配置檔案對格式的要求非常嚴格。是以,在以後的配置中要格外的小心。
4).定義區域檔案的權限關系:
|
在這裡我們通過編輯建立的magedu.com.zone檔案,然後将該檔案的權限屬組更改成系統預設設定權限,這個授權很重要,要不然DNS無法正常工作。
|
這裡的named屬組屬主都是建立DNS時系統預設建立的。
5).檢查區域檔案文法錯誤與否:
|
三.測試DNS配置
在對DNS檔案的所有配置完成後,需要重新開機服務,以使配置生效。由于我們這裡還未啟動過服務是以執行如下指令啟動DNS服務:
|
建議:若之前啟動過服務,配置完成之後想重新啟動新資料,建議不要使用restart重新開機,因為這樣可能導緻網絡服務斷掉,是以要使用reload重新載入資訊。
|
下面我們使用dig指令對DNS正向區域解析情況進行測試。
16 17 18 19 | |
|
|
下面我們使用dig指令對DNS反向區域解析情況進行測試
|
|
從上面的輸出資訊可以看出,DNS都可以正确解析,說明我們的配置沒有問題,DNS伺服器已經正常工作了。
小拓展:如何不用指向本機就能做本地解析??
#直接将DNS指向本機即可
|
|