正反解析
我們知道現在要通路一個網站,隻要輸入一個網址就可以擷取到對應的頁面資訊,而不是用輸入IP位址通路,能夠完成這一功能的過程(将FQDN轉換成IP位址)這就是正向解析,有了正向解析,那麼反向解析又有什麼用呢,正向可以将域名轉換成IP地;反向解析的作用是将IP位址轉換成域名。正向解析是通過正向查找區域(即資料檔案中的A記錄來查找)反向解析是通過反向查找區域(即資料檔案中的PTR來查找),PTR記錄是郵件交換記錄的一種,郵件交換記錄中有A記錄和PTR記錄,A記錄解析名字到位址,而PTR記錄解析位址到名字。位址是指一個用戶端的IP位址,名字是指一個客戶的完全合格域名。通過對PTR記錄的查詢,達到反查的目的.
下面将圖解正反解析:
一、本機環境與軟體包
1
2
3
4
5
6
7
<code>#本機環境</code>
<code>[root@localhost etc]</code><code># lsb_release -a</code>
<code>LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch</code>
<code>Distributor ID: CentOS</code>
<code>Description: CentOS release 6.5 (Final)</code>
<code>Release: 6.5</code>
<code>Codename: Final</code>
bind軟體包版本
BIND 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6
正向區域
essun.com
反向區域
1.168.192.in-addr.arpa
二、主配置檔案(/etc/named.conf)
<a href="http://s3.51cto.com/wyfs02/M02/22/86/wKiom1Mf-NWzjjWrAAHyiTe4v5Y264.jpg" target="_blank"></a>
在/var/named下預設的資料檔案
<a href="http://s3.51cto.com/wyfs02/M02/22/7F/wKiom1MfMSyiAC7WAAD6UTv0M0E048.jpg" target="_blank"></a>
檢查文法
<a href="http://s3.51cto.com/wyfs02/M02/22/86/wKiom1Mf_dDi2r9XAAAtJ9fkNZw073.jpg" target="_blank"></a>
在/var/named目錄下新增兩個資料檔案,一個是正向的essun.com.zone資料檔案,一個是essun.com的反向資料檔案192.168.114.zone
正向資料檔案(essun.com.zone)
<a href="http://s3.51cto.com/wyfs02/M00/22/86/wKiom1Mf---gm5dWAAGmRhoFeRg471.jpg" target="_blank"></a>
資料檔案文法檢查(named-checkzone)
<a href="http://s3.51cto.com/wyfs02/M02/22/80/wKiom1MfOmzDvNEWAADrV7UxEKA129.jpg" target="_blank"></a>
反向資料檔案(192.168.1.zone)
<a href="http://s3.51cto.com/wyfs02/M00/22/86/wKiom1Mf_U7A03WKAAFWhviSAOE850.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M00/22/86/wKiom1Mf_pLTdGPpAADTI-xX8tA775.jpg" target="_blank"></a>
測試正向區域
<a href="http://s3.51cto.com/wyfs02/M00/22/86/wKiom1MgAe2Q4ytEAALVUCxdvLY584.jpg" target="_blank"></a>
反向解析
<a href="http://s3.51cto.com/wyfs02/M01/22/87/wKioL1MgAtbzJc5WAALJfPV5rV8890.jpg" target="_blank"></a>
經過以上的解析,都成功了,如想了解dig的詳細的使用請自覺man或google,也可以使用簡單的host指令:
<a href="http://s3.51cto.com/wyfs02/M02/22/88/wKioL1MgD_zAluTsAAIuN78ClMc448.jpg" target="_blank"></a>
===================DNS正反解析完成=========================================
DNS主從
原理:
主從DNS伺服器資料同步的過程:
①、主 DNS伺服器每次修改完成并重新開機服務後,将傳送notify給所有的Slave DNS伺服器。 ②、Slave DNS伺服器将查詢主伺服器的SOA記錄,主DNS伺服器收到請求後将SOA記錄發送給Slave DNS伺服器。
③、Slave DNS伺服器收到後同時對比查詢結果中的serial值,如果serial值不大于本機的話将結束資料同步過程;但是如果serial值大于本機的話,slave DNS将發送zone transfer請求要求(AXFR/IXFR)。
④、主DNS響應zone transfer請求并傳送結果,直到整個slave更新完成。
注:
當新增一台輔助域伺服器,第一次複制主伺服器時為完全區域傳送(axfr),以後主伺服器每一次修改都是增量傳送(infr)
主DNS的bind版本可以低于從DNS的bind版本;
向區域中添加從伺服器的關鍵兩步:
在上級獲得授權
在區域資料檔案中為從伺服器添加一條NS記錄和對應的A或PTR記錄;
主DNS的主配置檔案(/etc/named.conf)如下:
<a href="http://s3.51cto.com/wyfs02/M02/22/89/wKiom1MgHeqQL7HKAAE3eWVg6U0291.jpg" target="_blank"></a>
主的正向資料檔案内容如下:
<a href="http://s3.51cto.com/wyfs02/M00/22/8B/wKiom1MgHyziuRxDAAEyEeiwA-U718.jpg" target="_blank"></a>
主的反向資料檔案
<a href="http://s3.51cto.com/wyfs02/M00/22/8C/wKiom1MgIE-x7gnhAAEvfnK2Ub0221.jpg" target="_blank"></a>
完成後重新開機主的DNS伺服器
<code>#service named restart</code>
從伺服器配置(/etc/named.conf)如下:
<a href="http://s3.51cto.com/wyfs02/M02/22/93/wKiom1MgJTeQjBIuAAEHFql1kFc193.jpg" target="_blank"></a>
重新開機從DNS伺服器
檢視/var/named/slaves
<a href="http://s3.51cto.com/wyfs02/M00/22/95/wKiom1MgJmKyi94xAACopX6wKeU735.jpg" target="_blank"></a>
每個檔案的内容
192.168.1.zone
<a href="http://s3.51cto.com/wyfs02/M00/22/95/wKiom1MgJr2BmijvAAHvC2jf1Vs937.jpg" target="_blank"></a>
essun.com.zone
<a href="http://s3.51cto.com/wyfs02/M01/22/95/wKiom1MgJwWxEoOFAAH0lWJtz9Y858.jpg" target="_blank"></a>
當然也要修改/etc/resolv.conf中的nameserver的先後順序,這樣也算實作的最簡單的輪詢負載a_c!
當有新的記錄在主的資料檔案中被增加上,記得要修改序列号(每次修改後要改變序列号),這樣才能同步哦,以上實驗不考慮安全因素。
讓我們來看一下日志記錄(/var/log/messages),是如何做到主從同步的
<a href="http://s3.51cto.com/wyfs02/M01/22/96/wKioL1MgKUTjueSIAARV8fykh8E299.jpg" target="_blank"></a>
其實主從的原理,就是從日志分析出來的。
(注:有問題看日志,這是一個好習慣啊)
===========================主從完成===================================================
DNS子域授權
所謂的子域授權,就是将原來在同一個域中的部分區域分到一個特定的區域解析。(此處個人了解)
父域的資料檔案中添加“膠水”記錄
<a href="http://s3.51cto.com/wyfs02/M02/22/97/wKioL1MgSOKDzRLhAAG5-i2C9Xc397.jpg" target="_blank"></a>
父域文法檢查
<a href="http://s3.51cto.com/wyfs02/M00/22/96/wKiom1MgSYvTOqndAACX0BNFP8k796.jpg" target="_blank"></a>
重新開機bind服務
在子域安裝好bind,子域的配置檔案(/etc/named.conf)
<a href="http://s3.51cto.com/wyfs02/M00/22/97/wKioL1MgShbjGl2kAABIPzmX8Dw727.jpg" target="_blank"></a>
子域的資料檔案(/var/named/mozi.essun.com)
<a href="http://s3.51cto.com/wyfs02/M01/22/97/wKioL1MgSvmC0acxAAEoSpVDiKM591.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M00/22/97/wKioL1MgS2WTCIeBAAClpXz5rdM568.jpg" target="_blank"></a>
修改檔案權限(640)與檔案的屬主屬組
重新開機named服務
子域測試解析
<a href="http://s3.51cto.com/wyfs02/M01/22/96/wKiom1MgTKeTUdxgAAKZ7IOUQy8595.jpg" target="_blank"></a>
注:之是以沒有在dig後面指父域的IP位址,是因為我在設定IP位址時,将DNS指向了父域。
在父域測試
<a href="http://s3.51cto.com/wyfs02/M00/22/98/wKioL1MgTb_CJuZLAALMG69Yg7E059.jpg" target="_blank"></a>
如果有多個子域就如以上的步驟重複多次,如果子域同樣有主從,那麼從伺服器上的NS也要寫到父域中資料檔案中。
注:在子域測試父域内的主機是無法解析的,因為,如果目前區域無法解析此記錄,會将此記錄轉發給根,而外網并沒給此區域授權,是以将無法解析此記錄,最終解析失敗。
===============================子域授權完成==========================================
DNS轉發
接一個問題,如果想子域解析父域,這就用到了forward,它可以将非本區域負責的解析的記錄轉發到其指定的區域中。如果上一個問題在子域的配置檔案(/etc/namd.conf)中設定轉發區域,指向父域,這樣就可以解析到父域中的主機了,其原始内容不變,隻增加一個區域檔案,因為是轉發是以不需要資料檔案。
配置資訊如下:
<a href="http://s3.51cto.com/wyfs02/M00/22/97/wKiom1MgYzyR6eV6AADGHR8ZZrk719.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M02/22/98/wKioL1MgY2zh44yUAABHcW7P30Y089.jpg" target="_blank"></a>
無問題後,重新開機服務
測試解析父域
<a href="http://s3.51cto.com/wyfs02/M02/22/97/wKiom1MgZJ-Cco6wAALhSlTYncs838.jpg" target="_blank"></a>
以上這種轉發方式叫指定的區域轉發
還有一種請況就是當父域解析不到時,在options中可中設定
<code>options {</code>
<code> </code><code>directory </code><code>"/var/named"</code><code>;</code>
<code> </code><code>forward first;</code>
<code> </code><code>forwarders { 192.168.1.114; };</code>
<code>};</code>
forword 的類型有兩種:
forward first設定優先使用forwarders DNS伺服器做域名解析,如果查詢不到再使用本地DNS伺服器做域名解析。
forward only設定隻使用forwarders DNS伺服器做域名解析,如果查詢不到則傳回DNS用戶端查詢失敗。
=================================DNS轉發完成============================================
DNS的ACL(Access Control List)
簡要
通路控制清單(ACL)就是一個被命名的位址比對清單。使用通路控制清單可以使配置簡單而清晰,一次定義之後可以在多處使用,不會使配置檔案因為大量的 IP 位址而變得混亂。
<a>定義 ACL</a>
要定義通路控制清單,可以在 BIND 的主配置檔案 /etc/bind/named.conf 中使用 acl 語句來實作。acl 語句的文法為:
acl ACL_NAME {
172.16.0.0/16;
192.168.0.0/24;
127.0.0.0/8;
};
BIND 裡預設預定義了 4 個名稱的位址比對清單,他們可以直接使用,分别為:
any : 所有主機
localhost : 本機
localnets : 本地網絡上的所有主機
none : 不比對任何主機
acl 是 named.conf 中的頂級語句,不能将其嵌入其他的語句。
要使用使用者自己定義的通路控制清單,必須在使用之前定義。因為可以在 options 語句裡使用通路控制清單,是以定義通路控制清單的 acl 語句應該位于 options 語句之前。
為了便于維護管理者定義的通路控制清單,可以将所有定義 acl 的語句存放在單獨的檔案 /etc/bind/named.conf.acls 中,然後在主配置檔案 /etc/bind/named.conf 中如下語句
include "/etc/bind/named.conf.acls";
以下的安全控制選項中就可以寫acl清單名了!!!
安全控制選項:
allow-transfer {}; 允許區域傳送清單
通常都需要啟用;
allow-query {};給那些主機開啟查詢功能
此項通常僅用于伺服器是緩存名稱伺服器時,隻開放查詢功能給本地用戶端;
allow-recursion { };為那些主機遞歸
定義遞歸白名單;
allow-update { none; };(建議不要開啟)
定義允許動态更新區域資料檔案的主機白名單
======================================完============================================
本文轉自 jinlinger 51CTO部落格,原文連結:http://blog.51cto.com/essun/1374397,如需轉載請自行聯系原作者