<b>相關理論解析</b><b>:</b>
1、DNS的類型,master/slave架構;
Master 這種類型的DNS的這個配置檔案中,包括所有主機的主機名等相關資訊,一般是我們手動添加修改的,設定完之後我們要重新開機服務的才能讀取到master庫裡面的資料内容;一般我們在做DNS的時候都是指定這樣的資料庫類型的,同時也要能保證把資料的内容提供給slave伺服器,這個需要我們設定下。在配置檔案中。
Slave 這中類型的資料必須要有master才可以使用,一般情況下都是一主一備的,一個master一個slvae,如果我們都是有master那麼我們需要添加修改的時候需要兩台同時添加、修改、要是不小心修改錯誤,很尴尬的,如果我們做成master/slave那麼我們直接修改master即可。但是在這裡我們牽扯到一個優先級的問題,不管是master還是slave,要保證資料的内容完全一緻。
2、 Master/slave資料的同步過程;
首先slave的資料是從master上來讀取的,但是master資料更新之後怎麼通知slave的呢?有兩種方式來告訴slave資料庫的。一種是master主動告知,在master修改資料内容之後,并且加大資料庫的序列号,然後重新開機服務之後master會告知slave的。第二是slvae主動去找master,當發現master的資料和自己的不一樣的時候,slave會更新的。
1、 測試環境;
<a href="http://www.rsyslog.org/"></a>
Master Server: 192.168.100.102
Slave Server: 192.168.100.103
<b>一、 </b><b>建構主域名伺服器</b>
修改主域名伺服器全局配置檔案named.conf,在options中插入一行 allow-transfer { 192.168.100.103;};意思是允許192.168.100.103主機下載下傳該區域的位址資料庫。
修改輔助配置檔案,這個平時根據工作需求修改,一般不修改的,這裡為了友善測試,可以将有效位址解析記錄的預設緩存時間設定成5分鐘 将無效位址解析記錄(該資料庫中不存在的位址)預設緩存時間設定為5分鐘
修改完成之後,重新開機服務,主域名伺服器也就配置完畢了。完了記得驗證下主域名伺服器是否能夠正常工作。這裡不做測試參考以上文檔。
<b>二、 </b><b>建構從域名伺服器</b>
從域名伺服器作為主域名伺服器的備援備份,可以與主域名伺服器一起,同時提供本域内主機名與IP位址的解析,從域名伺服器的位址資料庫需要從主域名伺服器中定期更新。
建立從域名伺服器的輔助區域配置檔案
将tpye 設定為slave類型
正向區域和反向區域的名稱保持和主DNS的一緻,不過檔案路徑要放到/var/named/slaves下
加上主DNS的IP位址 masters { 192.168.100.102;};
預設情況下,可以看到從DNS slaves目錄下是沒有資料的。重新啟動named服務,發現裡面有了主DNS的區域資料庫資訊。
我們也可以檢視從域名伺服器的日志資訊,發現有了很多從域名伺服器從主域名伺服器擷取區域資料庫的資訊,其實是根據 主域名伺服器的序列号變更擷取的。到這裡從域名伺服器搭建完成。
<b>三、 </b><b>測試從域名伺服器是否能夠提供</b><b>DNS</b><b>解析</b>
修改PC機DNS為從域名伺服器IP位址
<b>四、 </b><b>下面我們看看在</b><b>selinux</b><b>開啟</b><b>enforcing</b><b>模式的情況下,從</b><b>DNS</b><b>是否能夠正常工作。</b>
通過實驗開啟的情況下,從DNS是可以工作的。這裡面存在個問題,如果重新建立個檔案取代slaves,就不可以正常工作了。如下
建立dnsslaves目錄替代slaves目錄,然後将權限設定的跟slaves一樣
修改從DNS的輔助區域配置檔案,将正向反向區域資料庫位址指向 dnsslaves目錄
修改主DNS的輔助區域配置檔案的序列号,官方一般要求加1即可,其實隻要變化就行了。
啟動從DNS服務,發現 dnsslaves目錄下沒有資料,這是為什麼呢。
檢視日志,發現是權限檔案,我們知道 dnsslaves的權限跟slaves是一模一樣的,哪問題肯定出在selinux上了。
試着将selinux模式更改為permissive模式,重新啟動從DNS服務,發現dnsslaves目錄下有了主DNS的區域資料庫檔案。可以看出确實是selinux所緻,那麼如何設定selinux,讓從DNS在selinux的enforcing模式下也可以工作呢。
為了測試先删除剛才生成的區域資料庫檔案,然後通過 man named_selinux檢視 named在selinux的配置檔案,發現有一條跟輔助區域配置檔案的目錄存放位址有關
可以通過getsebool –a指令檢視 這個參數是否開啟,模式是off的,通過以上提示開啟這個參數就可以了。然後将selinux模式設定為enforcing模式,重新啟動從DNS服務,發現dnsslaves目前下有了主區域配置檔案資訊。
本文轉自淩激冰51CTO部落格,原文連結:http://blog.51cto.com/dreamfire/1094790,如需轉載請自行聯系原作者