天天看點

DNS伺服器-從伺服器的架設

<b>1</b><b>、泛域名解析的概念:</b>

<a href="http://blog.51cto.com/attachment/201304/141920563.jpg" target="_blank"></a>

 如使用者登入mageedu.com時,輸入錯誤,輸入了ww.mageedu.com時,mageedu.com的NS伺服器是無法判斷ww這個域名的。是以為了防止此錯誤。小的網站的NS伺服器中配置可以在定義一個項 *.mageedu.com.來引導輸入錯誤的使用者還能夠進入到此網站。但是一些大型的網站這樣的做法就有些不妥,他們通常采用的是讓使用者進入到一個錯誤的頁面,來引導使用者。或者讓使用者重新輸入。

<a href="http://blog.51cto.com/attachment/201304/141932925.jpg" target="_blank"></a>

<b>2</b><b>、自己的</b><b>DNS</b><b>伺服器不應該為自己區域以外的人随意遞歸</b>

 <b>①如何編輯定義遞歸的選項</b>

 vim /etc/named.conf

 在此處添加recursion yes; //表示允許給所有人遞歸

<a href="http://blog.51cto.com/attachment/201304/141948897.jpg" target="_blank"></a>

或者添加allow-recusion { 172.16.0.0/16 }; //表示隻允許給這個網段下的使用者遞歸

<a href="http://blog.51cto.com/attachment/201304/141959795.jpg" target="_blank"></a>

我們改成這樣繼續進行

注:dig +[no]recursion 代表使用遞歸查詢與否

dig +trace         代表解析過程

在修改前,我們可以使用這些選項測試是否可以遞歸baidu之類的網址。

<a href="http://blog.51cto.com/attachment/201304/142014889.jpg" target="_blank"></a>

這個時候,使用127.0.0.1遞歸的時候,DNS伺服器已經拒絕遞歸了。

 <b>完全區域傳送與增量區域傳送</b>

<a href="http://blog.51cto.com/attachment/201304/142027316.jpg" target="_blank"></a>

<b> </b>

dig –t axfr doubao.com //完全區域傳送  

dig –t IXFR=2013040201 doubao.com //檢視增量資訊  

實作主從伺服器資料同步:

資料同步類型:

        完全區域資料傳送(axfr)      将主NDS的區域配置檔案(/var/named)完全同步到輔助DNS伺服器(/var/named/slaves)

         增量區域資料傳送(ixfr)      将主NDS的區域配置檔案中新添的資源條目(/var/named)同步到輔助DNS伺服器(/var/named/slaves)

區域檔案傳送可不能讓任何進行傳送,隻允許自己的從伺服器進行資料傳送

注:區域傳送的條件是在有主從伺服器的情況下,當主伺服器有變化的時候。因為區域傳送可以看到DNS的結構,是以設定時隻允許從伺服器進行傳送。

       allow-transfer {}; //定義允許誰傳送

<a href="http://blog.51cto.com/attachment/201304/142043677.jpg" target="_blank"></a>

<b>3</b><b>、如何配置</b><b>DNS</b><b>的從伺服器</b>

   <b>①先給第二台虛拟機配置</b><b>bind97</b>

[root@localhost ~]# rpm -ql bind  

package bind is not installed         //老版本已經解除安裝  

[root@localhost ~]# rpm -ql bind97      

/etc/NetworkManager/dispatcher.d/13-named  

/etc/logrotate.d/named  

/etc/named  

/etc/named.conf  

/etc/named.iscdlv.key  

/etc/named.rfc1912.zones  

/etc/named.root.key  

/etc/rc.d/init.d/named  

/etc/rndc.conf  

/etc/rndc.key  

/etc/sysconfig/named                 //bind97已經安裝  

[root@localhost ~]# cd /etc/yum.repos.d/  

[root@localhost yum.repos.d]# ls  

redhat.repo rhel-debuginfo.repo server.repo yumsever.repo  

[root@localhost yum.repos.d]# cd  

[root@localhost ~]# ls -ld /var/named/  

drwxr-x--- 5 root named 4096 Apr 1 18:01 /var/named/   //由于named這裡沒有寫權限,是以我們重新選擇一個别的  

drwxr-x--- 5 root named 4096 Apr 1 18:01 /var/named/  

[root@localhost ~]# ls -l /var/named/  

total 72  

-rw-r----- 1 root named 231 Apr 1 18:01 172.16.111.zone  

drwxrwx--- 2 named named 4096 Nov 17 2011 data  

-rw-r----- 1 root named 282 Apr 1 17:41 doubao.com.zone  

drwxrwx--- 2 named named 4096 Nov 17 2011 dynamic  

-rw-r----- 1 root named 1892 Feb 18 2008 named.ca  

-rw-r----- 1 root named 152 Dec 15 2009 named.empty  

-rw-r----- 1 root named 152 Jun 21 2007 named.localhost  

-rw-r----- 1 root named 168 Dec 15 2009 named.loopback  

drwxrwx--- 2 named named 4096 Nov 17 2011 slaves    //對,就是這裡這個檔案  

[root@localhost ~]# setenforce 0  

然後編輯named.conf檔案

vim /etc/named.conf  

options {  

        directory       "/var/named";  

};  

zone "." IN {  

        type hint;  

        file "named.ca";  

zone "localhost" IN {  

        type master;  

        file "named.localhost";  

zone "0.0.127.in-addr.arpa" IN {  

        file "named.loopback";  

zone "doubao.com" IN {               //配置從伺服器  

        type slave;  

        file "slave/doubao.com.zone";    //儲存位置  

        masters { 172.16.111.1; };      //配置主伺服器路徑  

        allow-transfer { none; };      //不允許傳送  

zone "111.16.172.in-addr.arpa" IN {  

        file "slave/172.16.111.zone";  

        masters { 172.16.111.1; };  

        allow-transfer { none; };  

然後更改其權限

[root@localhost etc]# ls -l named.conf   

-rw-r----- 1 root named 493 Apr 4 12:00 named.conf //權限named組是讀取不到的  

[root@localhost etc]# chgrp named /etc/named.conf  

啟動服務

service named start

<a href="http://blog.51cto.com/attachment/201304/142131778.jpg" target="_blank"></a>

tail /var/log/messages //檢視下是否進行了區域傳送。  

<a href="http://blog.51cto.com/attachment/201304/142200373.jpg" target="_blank"></a>

然後進入到從伺服器中,繼續檢視

tail /var/log/messages

<a href="http://blog.51cto.com/attachment/201304/142221928.jpg" target="_blank"></a>

然後我們cd到slaves/中檢視是否有資料(可以看到系統自動生成的2個檔案)

<a href="http://blog.51cto.com/attachment/201304/142252972.jpg" target="_blank"></a>

打開其中一個檔案觀察下期内容:

vim mageedu.com.zone

<b>這個時候,我們已經完成了完全區域傳送的功能,那麼下面我們來實作增量區域傳送:</b>

首先,我們進入到主伺服器中,在mageedu.com.zone中添加資訊

<a href="http://blog.51cto.com/attachment/201304/142456376.jpg" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201304/142513957.jpg" target="_blank"></a>

此處

<a href="http://blog.51cto.com/attachment/201304/142529523.jpg" target="_blank"></a>

然後将這裡改為3(版本發生了改變)

然後也要改變反向區域檔案:

<a href="http://blog.51cto.com/attachment/201304/142544153.jpg" target="_blank"></a>

service named reload //重讀  

然後繼續檢視主伺服器中的日志

tail /var/log/messages  

<a href="http://blog.51cto.com/attachment/201304/142559870.jpg" target="_blank"></a>

可以看出來reloading zones成功,并且下一行顯示了更新的版本

然後回到從伺服器中也檢視其日志

<a href="http://blog.51cto.com/attachment/201304/142649369.jpg" target="_blank"></a>

然後cat mageedu.com.zone

<a href="http://blog.51cto.com/attachment/201304/142709158.jpg" target="_blank"></a>

裡面的檔案也已經更新

 <b>注意:當我們新增一條</b><b>NS</b><b>伺服器以後,已經要将其</b><b>NS</b><b>記錄加到主伺服器的</b><b>SOA</b><b>記錄中去。</b>

我們來測試下反向區域傳送

到主伺服器中的反向區域檔案中,添加一條新的記錄 6

<a href="http://blog.51cto.com/attachment/201304/142722962.jpg" target="_blank"></a>

然後service named reload重讀

繼續檢視日志檔案

<a href="http://blog.51cto.com/attachment/201304/142802809.jpg" target="_blank"></a>

然後到從伺服器中檢視區域檔案

<a href="http://blog.51cto.com/attachment/201304/142814918.jpg" target="_blank"></a>

<b>如何使用</b><b>rndc</b><b>遠端來控制主從伺服器</b>

rndc的用法  

      -c 指定配置檔案  

      -s 指定遠端伺服器是誰  

      -p 指定以哪個端口進行連接配接  

      -k 以哪個key檔案進行發送檔案  

  注意:因為rndc是遠端控制,是以為了防止外人通過其來進行攻擊,我們首先要為其提供key  

rndc-confgen &gt; /etc/rndc.conf

然後cat下其檔案内容

<a href="http://blog.51cto.com/attachment/201304/142828697.jpg" target="_blank"></a>

其中下面的都是被注釋掉了,通過前邊的start可以看出這個是啟動這個rndc服務的,然後下邊注釋掉的内容是将一下的内容添加到named.conf檔案中,是以我們來進行這個操作

rndc –c /etc/rndc.conf //指定配置檔案

rm /etc/rndc.key //删除安裝bind97中自動生成的key檔案

然後重新開機下named服務

然後使用rndc指令進行控制

rndc –c /etc/rndc.conf status

<a href="http://blog.51cto.com/attachment/201304/142937454.jpg" target="_blank"></a>

然後這種方法可以配合stop(停止) flush(清空緩存)等指令來實行管理

如果要通過别的伺服器來遠端控制,可以在這裡定義

<a href="http://blog.51cto.com/attachment/201304/143006294.jpg" target="_blank"></a>

其中inet中定義通過哪個端口可以來控制

allow定義允許誰來控制

然後控制前需要把rndc.conf檔案移植到控制端中,并更改端口以及使用的指定需要注意

<b>開啟</b><b>rndc</b><b>是相當危險的,一般不建議開啟哦</b>

<b>      </b>

本文轉自 陳延宗 51CTO部落格,原文連結:http://blog.51cto.com/407711169/1171002,如需轉載請自行聯系原作者

繼續閱讀