DNS-BIND構建主從DNS服務器實現負載均衡和冗餘備html
------selinux與DNS並存linux
另外一個博客地址:www.rsyslog.org數據庫
相關理論解析:緩存
一、DNS的類型,master/slave架構;服務器
Master 這種類型的DNS的這個配置文件中,包括全部主機的主機名等相關信息,通常是咱們手動添加修改的,設置完以後咱們要重啓服務的才能讀取到master庫裏面的數據內容;通常咱們在作DNS的時候都是指定這樣的數據庫類型的,同時也要能保證把數據的內容提供給slave服務器,這個須要咱們設置下。在配置文件中。架構
Slave 這中類型的數據必需要有master纔可使用,通常狀況下都是一主一備的,一個master一個slvae,若是咱們都是有master那麼咱們須要添加修改的時候須要兩臺同時添加、修改、要是不當心修改錯誤,很尷尬的,若是咱們作成master/slave那麼咱們直接修改master便可。可是在這裏咱們牽扯到一個優先級的問題,不論是master仍是slave,要保證數據的內容徹底一致。負載均衡
二、 Master/slave數據的同步過程;ide
首先slave的數據是從master上來讀取的,可是master數據更新以後怎麼通知slave的呢?有兩種方式來告訴slave數據庫的。一種是master主動告知,在master修改數據內容以後,而且加大數據庫的序列號,而後重啓服務以後master會告知slave的。第二是slvae主動去找master,當發現master的數據和本身的不同的時候,slave會更新的。測試
一、 測試環境;大數據
Master Server: 192.168.100.102
Slave Server: 192.168.100.103
關於DNS基本搭建過程請參考http://www.rsyslog.org/p239.html
1、 構建主域名服務器
修改主域名服務器全局配置文件named.conf,在options中插入一行 allow-transfer { 192.168.100.103;};意思是容許192.168.100.103主機下載該區域的地址數據庫。
修改輔助配置文件,這個平時根據工做需求修改,通常不修改的,這裏爲了方便測試,能夠將有效地址解析記錄的默認緩存時間設置成5分鐘 將無效地址解析記錄(該數據庫中不存在的地址)默認緩存時間設置爲5分鐘
修改完成以後,重啓服務,主域名服務器也就配置完畢了。完了記得驗證下主域名服務器是否可以正常工做。這裏不作測試參考以上文檔。
2、 構建從域名服務器
從域名服務器做爲主域名服務器的冗餘備份,能夠與主域名服務器一塊兒,同時提供本域內主機名與IP地址的解析,從域名服務器的地址數據庫須要從主域名服務器中按期更新。
創建從域名服務器的輔助區域配置文件
將tpye 設置爲slave類型
正向區域和反向區域的名稱保持和主DNS的一致,不過文件路徑要放到/var/named/slaves下
加上主DNS的IP地址 masters { 192.168.100.102;};
默認狀況下,能夠看到從DNS slaves目錄下是沒有數據的。從新啓動named服務,發現裏面有了主DNS的區域數據庫信息。
咱們也能夠查看從域名服務器的日誌信息,發現有了不少從域名服務器從主域名服務器獲取區域數據庫的信息,實際上是根據 主域名服務器的序列號變動獲取的。到這裏從域名服務器搭建完成。
3、 測試從域名服務器是否可以提供DNS解析
修改PC機DNS爲從域名服務器IP地址
4、 下面咱們看看在selinux開啓enforcing模式的狀況下,從DNS是否可以正常工做。
經過實驗開啓的狀況下,從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目前下有了主區域配置文件信息。
若是你想了解更多有關selinux信息,請訪問 http://www.rsyslog.org/p239.html