本文主線是DNS服務相關概念和服務器搭建,在此之前了解一下域名這個東東很有其必要性,因為DNS服務就是應域名而生的。那么域名是什么哪?
域名
域名是用一串用點分開的字符串來表示的internet上的某一臺或者一組計算機的名稱,用于在數據傳輸時標識計算機的電子方位。舉個例子來說,如果我們要去訪問www.magedu.com這個站點,實際上是應該輸入該網站的IP地址來訪問的,但是由于無論是IPv4還是IPv6地址都相當的難以記憶,為此我們通過域名來對其進行管理,利用其見名知意的特性來方便我們記憶,而系統底層仍然是以IP地址來通信的,這種域名與IP地址之間的轉換是由DNS服務來完成的。以www.magedu.com來說明一下域名的組成部分:
類型:標記域名的類別(如 com, cn, edu, org, gov等)
域名:如上面的magedu,
主機名:標記一個域內的具體的主機
DNS(Domain Name System)
由上述可知,當我們訪問internet上的網站時,我們輸入的是域名,域名通過某種機制轉為IP地址后再由系統底層完成IP之間的相互通訊,而這種能夠完成域名與IP地址間的相互轉換的機制就是DNS服務。DNS服務一般是由dns服務器來實現的,提供dns服務的服務器將域名和IP之間的相互映射信息以分布式數據庫的形式存儲起來,每一條映射記錄稱作一條資源記錄,當用戶(一般是客戶端、應用程序等)利用域名訪問互聯網中的主機時,會向dns服務器提請域名解析請求,待dns服務器經查詢對應的映射資源記錄返回IP地址后,利用此IP方可與該主機進行通信,流程圖如下:
在linux中,域名的解析通常有兩種方式:一種是hosts文件中的IP地址和域名的直接映射;一種是通過dns服務器來解析,同一個域名默認是先讀取hosts文件來解析,如其中無此記錄,再轉向dns服務器請求解析,兩種解析方式的優先級在/etc/nsswitch.conf中定義
我們同樣用www.magedu.com 來測試此處的優先級特性
默認hosts文件中是沒有對應的www.magedu.com 解析條目的,對其進行ping操作
地址是域名對應的目的IP,在hosts文件中指定它的IP地址來測試
看到了吧,ping操作的目的IP是我們指定的IP地址了。
DNS資源記錄
DNS服務器中域名與IP地址相互轉換的映射信息以文本形式存儲在其區域解析中,每一行表示一對對應關系,稱之為資源記錄(RR Resource Record),每一條資源記錄都包含域名、IP地址和其它屬性信息。
資源記錄的基本屬性信息:
資源記錄的格式
[name] [ttl] IN type value
name 資源記錄引用的域對象名,可以是單臺主機或者整個域,字段值: "."是根域 "@"是默認域,即當前域
ttl 生存時間字段,以秒為單位定義該資源記錄的信息存放在DNS緩存中的時間長度。此字段缺省采用SOA記錄中的最小ttl值(即1小時)
IN 固定關鍵字,不可缺省
type 資源記錄類型
1、A(host) A記錄,成為主機記錄,DNS名稱到IP地址的映射,用于正向解析。
2、AAAA(host) 采用IPv6地址主機記錄
3、CNAME 別名記錄,用于定義A記錄的別名
4、MX(mail exchange)郵件交換器器記錄,用于告知郵件服務器進程將郵件發往指定的另一臺郵件服務器。
5、NS 用于標識區域的DNS服務器,即負責此區域的權威名稱服務器,一個區域可以有多條NS記錄,也就是說一個區域可以有一臺主dns服務器,一臺或多臺從dns服務器。
6、PTR 是IP地址到DNS名稱的映射,用于反向解析。
7、SOA 用于一個區域的開始,SOA記錄后的所有信息均是用于控制這個區域的,每個區域數據庫文件必須包含一個SOA記錄,并且必須是其第一條資源記錄,用于標識DNS服務器管理的起始位置,SOA說明能解析這個區域的dns服務器哪個是主服務器。
value 用于指定與當前資源記錄有關的數據,該字段的內容取決于字段類型
DNS的客戶端查詢工具
在我們配置dns服務器或者客戶端訪問網絡出現故障時,我們常常需要一些工具來查看dns服務的一些信息來排除故障,在Linux中有3中dns信息查詢工具,我們來一一說明一下
1、host 命令
使用方法:
host DOMAIN_NAME //host后面直接跟域名可以查詢到域名對應的ip地址
host -t TYPE NAME SERVER
-t TYPE //指定資源記錄的類型
NAME //指定需要查詢的資源記錄的name字段內容
SERVER //指定用于解析該域名的DNS服務器
2、nslookup 交互式DNS客戶端查詢命令
用法:
nslookup
>server x.x.x.x //指定用哪臺DNS服務器來執行解析
>set type={A|NS|MX} //定義需要查詢的資源記錄的類型
>NAME //指定需要查詢的資源記錄的name字段內容
3、dig 可以詳細顯示查詢結果的命令
用法:
dig -t TYPE NAME @SEVER
-t TYPE //指定資源記錄的類型
NAME //指定需要查詢的資源記錄的name字段內容
SERVER //指定用于解析該域名的DNS服務器
dig -x NAME @SERVER
-x //特指做反向解析
dig功能擴展選項
+trace 開啟dns查詢跟蹤
+notrace 關閉dns查詢跟蹤
+recurse 開啟dns遞歸查詢
+norecurse 關閉dns遞歸查詢
下面是dns查詢跟蹤示例
由上圖可以看到,客戶端發出查詢請求后,請求信息離開192.168.1.1這個本地服務器后,依根域–>一級域–>二級域–>目的主機的方式來完成查詢的,其實,此處用到了dns查詢的兩種方式迭代查詢和遞歸查詢,在客戶端向本地dns請求查詢過程式遞歸查詢,而本地dns之后的則使用迭代查詢。
遞歸查詢:
客戶端發出查詢請求,本地dns接收到后將請求信息發往根與服務器,根域服務器收到請求信息后,將請求信息發往以及域服務器,以及域服務器收到請求信息后,將請求信息發往二級域服務器,二級收到請求信息后將最終結果發給一級域服務器,一級與服務器收到結果后將結果放給根域服務器,根域服務器收到結果后將結果發給本地dns服務器,本地dns服務器將結果發給客戶端,完成查詢操作。
迭代查詢:客戶端發送查詢請求給本地dns服務器,本地dns服務器收到請求將該請求發給根域服務器,根域服務器經查詢后得到該請求對應的一級域服務器的IP地址,并將該地址發給本地dns服務器;本地dns服務器得到一級域服務器地址后,向一級域服務器發送查詢請求,一級域服務器經查詢后,將請求對應的二級域服務器的地址發送給本地dns服務器;本地dns服務器得到二級域服務器地址后,向二級域服務器發送查詢請求,二級服務器將查詢到的最終結果發送給本地dns服務器,本地dns服務器將其發給客戶端,完成查詢操作。
DNS服務器搭建
一、dns服務器的類型
1、主DNS服務器(Primary DNS Server, Master)
主DNS服務器存儲著一個域的zone配置文件,所有的關于域配置與修改都在此服務器上進行。
2、從DNS服務器(Secondary DNS Server,Slave)
從DNS服務器主要為主DNS提供冗余和負載均衡用,其自身不能更改域內的管理性數據信息,也不能手動創建、修改、刪除資源記錄,只能從主DNS服務器同步拉取。
3、緩存DNS服務器(Cache Only Server)
不存儲任何zone配置文件,不提供域名解析功能,僅僅依靠DNS緩存信息為客戶端提供服務,通常用于加速站點訪問速度和負載均衡
二、配置主DNS服務器
運行環境:
CentOS 6.5
VMware Workstation 10.0
域名 nod.com
ip地址:192.168.5.244
主dns服務器ip地址 192.168.5.244
1、bind安裝
DNS服務一般是由DNS服務器軟件來提供的,在眾多DNS服務軟件中bind是使用最廣泛的軟件,兼容于windows、linux、MAC OS等,該軟件由ISC進行開發和維護的。bind服務名named,默認使用TCP和UDP協議,監聽兩者的53端口,rndc默認使用953端口。
通過yum方式安裝bind和bind-utils # yum -y install bind bind-utils 。bind-utils則是bind提供的一組管理工具,有dig,nslookup,host,nsupdate,用來進行域名解析查詢和DNS調試工作。
確認軟件安裝成功:
查看安裝bind生成的文件和路徑信息
2、配置named主配置文件
3、主配置文件修改完畢后就可以啟動服務了
執行 chkconfig named on,永久開機啟動named服務
執行 service named start啟動named服務
使用 ss -tunl查看服務端口是否被監聽
4、編輯/etc/named.rfc1912.zones配置文件,定義正向測試域。
為nod.com域創建正向域解析文件nod.com.zone,區域解析庫文件都存放于/var/named目錄下以命名方式為“域名.zone”
配置正向解析庫文件之后,我們就可以嘗試對DNS服務器進行測試了,在此之前為了保證服務正常啟動,對主配置文件和區域文件做測試。
為便于測試,關掉防火墻和selinux
使用dig工具測試服務器是否可用
A記錄測試成功,解析結果為我們設置指定的ip地址,我們再測試一下MX記錄
5、MX記錄測試也沒有問題,下面我們再為其創建逆向解析庫文件,測試逆向解析,首先在主配置文件聲明逆向解析區域。
為反向解析區域創建反向解析庫文件
由于默認named服務有named用戶身份運行,因此修改逆向解析庫文件的屬組為named,權限改為640
使用service named configtest ,測試所有的配置文件和區域解析庫文件
測試通過,進行反向解析測試
逆向解析成功,至此,主dns服務器配置完成。
原創文章,作者:Silently,如若轉載,請注明出處:http://www.www58058.com/5085