前言:
在我們平時上網中,訪問的都是域名,那麼域名是如何轉換爲IP地址的呢?進而訪問我們的服務器主機的呢?這時候就需要用到DNS服務器了。DNS是由域名解析器和域名服務器組成的,域名服務器是指保存有該網絡中所有主機的域名和對應IP地址,並具有將域名轉換爲IP地址功能的服務器。
那麼接下就開始搭建DNS服務器吧!
1.首先搭建主DNS服務器,ch1主機配置如下:
[root@ch1 ~]# yum -y install bind ## 安裝bind程序 [root@ch1 ~]# ntpdate 172.18.0.1 ## 同步時間服務器 [root@ch1 ~]# vim /etc/named.conf ## 修改DNS服務器配置文件
[root@ch1 ~]# named-checkconf ## 檢查配置文件語法錯誤 [root@ch1 ~]# vim /etc/named.rfc1912.zones ## 在此配置文件中添加區域
[root@ch1 ~]# vim /var/named/test.com.zone ##在/var/named目錄下建立區域數據文件
[root@ch1 named]# vim /var/named/172.18.20.zone ## 建立反向解析區域數據文件
[root@ch1 ~]# chown :named /var/named/test.com.zone ## 修改屬組爲named [root@ch1 ~]# chmod o= /var/named/test.com.zone ## 移除其他的權限 [root@ch1 named]# named-checkzone test.com /var/named/test.com.zone ## 檢測區域文件語法錯誤 [root@ch1 named]# named-checkzone 20.18.172.in-addr.arpa /var/named/172.18.20.zone [root@ch1 named]# service named start ## 啓動DNS服務 [root@ch1 named]# dig -t A www.test.com @172.18.20.10 ## 測試DNS服務器172.18.20.10是否能正常解析A記錄 [root@ch1 named]# dig -x 172.18.20.11 @172.18.20.10 ## 測試DNS服務器172.18.20.10是否能反向解析172.18.20.11
主DNS服務器搭建完畢
2.搭建從DNS服務器,ch2配置如下
[root@ch2 ~]# yum -y install bind ## 安裝bind程序 [root@ch2 ~]# ntpdate 172.18.0.1 ## 同步時間服務器 [root@ch2 ~]# vim /etc/named.rfc1912.zones ## 定義一個從區域
[root@ch2 ~]# named-checkconf ## 檢查語法錯誤 [root@ch2 ~]# service named start ## 啓動DNS服務 [root@ch2 slaves]# cat test.com.zone ## 查看區域配置文件是否能夠同步
注意:要在主DNS服務器上配置一條指向從DNS服務器的NS記錄
3.配置子域
[root@ch3 ~]# yum -y install bind ## 安裝bind程序 [root@ch3 ~]# ntpdate 172.18.0.1 ## 同步時間服務器 [root@ch3 ~]# vim /etc/named.conf ## 修改配置文件
[root@ch3 ~]# vim /etc/named.rfc1912.zones ## 建立區域配置
[root@ch3 ~]# vim /var/named/ops.test.com.zone ## 建立區域配置文件
[root@ch3 ~]# named-checkconf ## 檢查語法是否錯誤 [root@ch3 ~]# service named start ## 啓動服務 [root@ch3 ~]# dig -t A www.ops.test.com @172.18.20.12 ## 測試子域是否能夠正常解析 [root@ch3 ~]# dig -t A www.test.com @172.18.20.12 ## 測試子域是否能夠解析父域
注意:子域同樣需要主DNS服務器上的授權
總結:
1. DNS是應用層協議,端口號爲tcp/53和udp/53
2. DNS查詢的過程
(1)客戶機將查詢www.test.com的信息傳遞到自己的首選DNS服務器。
(2)DNS客戶機的首選DNS服務器檢查區域數據庫,由於此服務器沒有test.com域的授權記 錄,因此,它將查詢信息傳遞到根域DNS服務器,請求解析主機名稱。
(3)根域DNS服務器把負責解析“com”頂級域的DNS服務器的IP地址返回給DNS客戶機的首選 DNS服務器。
(4)首選DNS服務器將請求發送給負責“com”域的DNS服務器。
(5)負責“com”域的服務器根據請求將負責“test.com”域的DNS服務器的IP地址返回給首 選DNS服務器。
(6)首選DNS服務器向負責“test.com”區域的DNS服務器發送請求。
(7)由於此服務器具有www.test.com的記錄,因此它將www.test.com 的IP地址返回給首 選DNS 服務器。
(8)客戶機的首選DNS服務器將www.test.com的IP 地址發送給客戶機。
(9)域名解析成功後,客戶機將http請求發送給Web服務器。
(10)Web服務器響應客戶機的訪問請求,客戶機便可以訪問目標主機。
3. DNS服務器類型
主DNS服務器:維護所負責解析的域數據庫的那臺服務器;讀寫操作均可進行;
從DNS服務器:從主DNS服務器那裏或其它的從DNS服務器那裏“複製”一份解析庫;但 只能進行讀操作;
4. DNS區域數據庫文件常見類型
SOA:起始授權記錄; 一個區域解析庫有且只能有一個SOA記錄
NS:域名服務記錄;一個區域解析庫可以有多個NS記錄;其中一個爲主的;
A: 地址記錄,FQDN --> IPv4;
AAAA:地址記錄, FQDN --> IPv6;
CNAME:別名記錄;
PTR:Pointer,IP --> FQDN
MX:Mail eXchanger,郵件交換器;
5. DNS的配置文件
主配置文件:/etc/named.conf
或包含"include"設定的其它文件;
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
解析庫文件:
/var/named/目錄下;
一般名字爲:ZONE_NAME.zone
6. DNS測試工具
dig命令:
dig [-t RR_TYPE] name [@SERVER] [query options]
用於測試dns系統,因此其不會查詢hosts文件;
查詢選項:
+[no]trace:跟蹤解析過程;
+[no]recurse:進行遞歸解析;
反向解析測試: dig -x IP
模擬完全區域傳送: dig -t axfr DOMAIN [@server]
7. DNS中的安全相關的配置
訪問控制指令:
allow-query { }; 允許查詢的主機;白名單;
allow-transfer { }; 允許向哪些主機做區域傳送;默認爲向所有主機;
allow-recursion { }; 允許哪此主機向當前DNS服務器發起遞歸查詢請求;
allow-update { }; DDNS,允許動態更新區域數據庫文件中內容;