什麼是DNS?
數據庫
DNS(Domain Name System) 域名系統。它是現在互聯網上可以相互通訊的服務之一,對於如今的互聯網特別特別重要的,由於在這我的們不能很好記憶數字IP地址的問題上,輸入IP地址來訪問其餘的主機是很困難的,和不現實的,若是數字IP地址用咱們所熟悉的各類名稱(字符,例如:baidu taobao 等)就很好記憶啦。DNS就是來完成這個解析的功能的。
緩存
DNS工做的原理:服務器
首先,咱們先了解一個內容,例如www.baidu.com,ide
www.baidu.com 在DNS中是有階層的 .com 中國工具
.baidu.com 中國河南測試
www.baidu.com 中國河南XX市spa
那麼咱們說說DNS服務的工做機制以下圖:
3d
咱們對上圖進行下說明:blog
首先,客戶端想要訪問 www.baidu.com這個服務器遞歸
1,把請求發送給DNS服務器,DNS服務器收到請求後,發送給 .(根)服務器,
2,根服務器發現.com這個域是本身管轄的,就返回給DNS服務器,.com的地址,而後DNS服務器就去訪問com這個服務器
3,.com這個服務器收到DNS的請求後,就發現.baidu.com就在本身的域內,因而就把.baidu.com返回給DNS,讓它去找.baidu.com
4, .baidu.com收到DNS的請求後,發現對方要找的是本身域下的www,就告訴DNS你找對人啦,我就是你要找的,我這就把個人IP地址發給你,因而DNS請求到了目標IP地址。
5,DNS服務器把請求到的目標IP返回給PC機,PC機根據獲得的www.baidu.com的IP地址,就找www.baidu.com這個服務器通訊去啦,至此域名解析完成。
既然DNS這麼重要,那麼咱們怎麼樣要配置一個DNS服務器呢?
第一步, 咱們要知道,建立一個DNS服務器就比如一個市要開發一個新區同樣,必需要給上級申請,上級比準後才能建設是否是,這裏也是同樣,咱們必須向咱們上層的域管理者申請備案,而後才能得到認同,別的主機訪問咱們,上級才知道咱們是哪一個部分的,不然,上級都不知道咱們的存在,別的主機怎麼能訪問咱們呢?
第二步,纔是開始建設配置DNS服務器啦,下邊就詳細說 下
在一臺主機上建立一個DNS服務器,要準備一些環境。要能啓動該服務,咱們就須要bind這個工具,bind是DNS服務工具。
與DNS服務相關的幾個配置文件,先給大家說下:
/etc/hosts 它是最先記錄IP與主機名的檔案(那時的互聯網無法和如今比,因此一個文檔就能夠記錄了)
/etc/resolv.conf 它是DNS客戶端的配置文件,記錄DNS服務器IP的,這裏DNS指向以下圖:
/etc/named.conf 它是bind這個工具的主配置文件,它裏面定義了:
options {
director 「工做目錄(默認/var/named)」
recursion yes //是否接受遞歸查詢
};
zone "." IN {
type hint; //zone是定義區域的關鍵字,此處
file "named.ca" // 指定該區域的數據庫文件默認在/var/named/
};
好啦,配置文件介紹完了,下面開始簡單配置吧,
咱們主配置文件以下(只含有主要內容,其餘我都註釋掉了):
下一步咱們去 /etc/named.rfc1912.zones 這個文件內寫上要定義的域mage.com
看到file "mage.com.zone" 那行沒,那個文件名就是咱們要配置的正向解析庫文件,它在/var/named/mage.com.zone ,下面咱們來看看裏面的東西;
@ (本地域名) SOA(起始區域受權記錄) ns.magecom(就是DNS服務器的名字)
第一行的意思:區域受權的第一條記錄,因此任務該文件的第一行必須是SOA類型的,
域mage.com 受權 ns.mage.com這個DNS服務器管理下面的服務器
admin.mage.com 這個名稱是DNS服務器管理員的郵箱地址,
201401 表明的是此文件序列版本號,若是此文件內容有更新則必須修改此序列號,不然在主從服務器模式上,從服務器將不會從主服務器上跟新數據的。
3D 表明的是從服務器多久從主服務器上同步數據的刷新時間爲3天
1H 表明的重試間隔時間爲1小時,即從服務器聯繫不到主服務器,須要重試連接的時間間隔
1W 表明的過時時間1周,便是,從服務器多久後就再也不工做的時間
3H 記錄在緩存中的存留時間
每個服務器的名稱都應該對應一個存在的IP地址,且必須有一條A記錄也就是主機記錄,
爲何xxx.mage.com對應的不是IP地址呢?由於這是我給www.mage.com起的一個別名,至關於人的小名都表明同一個服務器。
至此,咱們就配置成功了,下面咱們要啓動這個DNS服務器。
service named start
/etc/rc.d/init.d/named start
用命令 ss -unl (看53號端口是否處於監聽狀態,若是有證實啓動成功)
既然啓動成功了,那咱們測試下DNS服務器可否解析域名成功呢?
有如下幾種命令:
nslookup 這個能夠直接用 nslookup ns.mage.com查詢
還能夠直接使用 nslookup,會出現一個交互界面:
顯示的都能解析出域名對應的IP,是否是。
另一種測試的命令是host命令如: host www.mage.com
而host -a www.mage.com則要顯示更爲詳細的內容
還有一個很是強大的命令就是dig,是如今很是流行的DNS測試工具之一,用法以下:
dig: 查詢選項
+trace 跟蹤查詢
+notrace 不跟蹤查詢
+recurse 遞歸查詢
+norecurse 不遞歸查詢
dig trace www.mage.com 正向跟蹤查詢
dig -x www.mage.com 則就是反向查詢了
對於反向查詢,首先咱們定義有反向區域,在反向區域內建立反向解析庫文件以下:
咱們在/etc/named.rfc1912.zones中,定義反向區域
編輯反向解析庫文件 172.16.249.zone
並修改該文件的權限爲640,且屬組爲named組,
看吧,成功解析出mail.mage.com這個域名,這就是反解的通常步驟。
上面就是主DNS服務器的配置,可是隻有一個主DNS服務器,那若是DNS服務器當機了怎麼辦呢?全部要有一個輔助的DNS主機也叫「從DNS服務器」
從DNS服務器的建立:
因爲從DNS的服務器中的解析庫數據是從主DNS服務器同步過來的,因此不須要手工創建數據庫文件。因此,咱們只需編輯從DNS服務器的配置文件就行,編輯以下:且要指定主DNS服務器的IP。
mkdir /var/named/slaves 還要在/var/named/建立目錄slaves,這是配置從DNS服務器的要求
同時還需在主DNS服務器裏面添加從DNS的SOA記錄與A記錄,
而後從新啓動從DNS服務器, service named start
你就會發如今slaves這個目錄下已經有同步的文件了
如今你就可使用從DNS服務器來完成主DNS服務器須要解析的域名啦,來看看吧:
我是經過從DNS來解析www.mage.com這個域名的,得出的和主DNS解析的同樣,是否是很簡單(⊙o⊙)?