DNS服務器(三):子域授權及轉發

一、DNS服務器子域授權的實現

   通常自己架設DNS服務器給自己使用的公司都是內部有特殊需求,或者公司內部域名較多,爲了方便以後的管理而架設。我們知道一個域名就是一個區域,一般每個區域都會有專人負責管理,當一個公司人員足夠多時,這時就會有劃分子域給下級部門管理的需求。在一個區域下劃分子域,並給子域指定一個新的DNS服務器,這種方法是可以實現的,我們通常稱這種劃分子區域的方法爲子域授權。


實例:給wubinary.com域名劃分一個blog.wubinary.com的子域。bind的安裝配置及主DNS服務器的架設不再此討論

1、首先架設一個主DNS服務器,編輯/var/named/wubinary.com.zone文件,主DNS服務器的IP爲192.168.0.6,資源記錄數據文件如下:

$TTL 600
@   IN  SOA dns.wubinary.com. dnsadmin.wubinary.com. (
            2014031203
            2H
            4M
            1D
            2D )
@   IN  NS  dns.wubinary.com.
@   IN  NS  ns2.wubinary.com.
@   IN  MX  10  mail.wubinary.com.
dns IN  A   192.168.0.6
mail    IN  A   192.168.0.12
www     IN  A   192.168.0.48
ns2 IN  A   192.168.0.80
blog.wubinary.com.  IN  NS  dns.blog.wubinary.com.
dns.blog.wubinary.com.  IN  A   192.168.0.2

注意,以上最後兩行爲子域的DNS服務器,只要在主DNS服務器定義好了子域的DNS服務器就等於給子域授權了。


2、然後在回到子域的服務器,192.168.0.2上配置子域區域。打開/etc/named.rfc1912.zones文件,在最末尾定義子域的區域。

zone "blog.wubinary.com" IN {
        type master;
        file "blog.wubinary.com.zone";
};


3、接着再定義子域DNS服務器的資源記錄文件,/var/named/blog.wubinary.com.zone。

$TTL 600
@   IN  SOA dns.blog.wubinary.com. dnsadmin.blog.wubinary.com. (
                        2014031201
                        1H
                        5M
                        3D
                        1D )
@   IN  NS  dns.blog.wubinary.com.
dns IN  A   192.168.0.2
www IN  A   192.168.0.78
ftp IN  A   192.168.0.23


4、重新啓動兩邊的DNS服務,測試一下子域授權是否成功。

主域機器測試:

wKiom1Mlq5Sz0-mEAAKOG2rw7SY279.jpg


wKiom1Mlq_XzmQqxAALbqs1f4nc784.jpg


子域機器測試:

wKioL1MlrBujwBjjAALTX_fI0z8900.jpg


測試正常,操作成功!


二、DNS服務器域名解析轉發

   DNS轉發的意義在於,定向查詢,一臺DNS服務器在獲取到查詢請求時,自己不嘗試解析域名,而轉發查詢請求給指定的DNS服務器實現此次解析操作。假設,我們現在碰到這麼一種情況,我們的DNS服務器是處在一個內網的網段,與外網不能直接通信,在這個局域網中唯一一個能和外網通信的是路由器或者其它的DNS服務器。那麼如果我們想要實現通過這臺局域網的DNS服務器查詢解析外網的域名,就要用到轉發的功能了。

轉發可以用參數forwarders和forward實現:

forwarders { IP_ADDR1; IP_ADDR; ...};
forward { only|first };

參數說明:

   forwarders:用於定義轉發的服務器的IP地址,可以寫多個,用分號隔開。

   forward:用於定義轉發的操作,only爲只作轉發操作,有結果則返回結果,沒有結果則什麼操作也不作;first爲先作轉發操作,如果沒有結果則去遞歸查找。

全局和區域:

   這兩個參數可以放在全局定義,也可放在區域定義,也可以兩個同時使用,但不管怎樣,放在區域的優先權更高。如果用於特定區域則把轉發定義在區域內,如果用於全局,則把轉發定義在全局。


轉發實例:讓上面的區域wubinary.com可以實現解析外網的域名。

1、區域wubinary.com所設的DNS服務器爲局域網的IP地址,不可以解析外網域名。

wKioL1Mlvc7irdI3AAHRmI9be7s674.jpg


2、由上圖可以看出wubinary.com區域不能解析51cto.com的NS記錄,我們添加一個轉發功能。

編輯/etc/named.conf文件,添加轉發ip 192.168.0.1

wKiom1MlvsngAXErAAHuCmjKu_A827.jpg


3、修改完成後,重啓服務,測試一下,可以解析了,轉發成功!

wKioL1Mlvw7Ae3AkAAKLoeeR7Ec236.jpg


說明:有的時候,如果我們事先已經知道了某個區域DNS服務器的地址,爲了不讓當前DNS服務器向根查詢結果,那麼我們就可以直接使用轉發,向當前DNS服務器指定一個地址,讓它查詢直接向這個地址請求,這樣做的好處能明顯的提高響應速度。


三、DNS中的訪問控制列表

   有的時候我們須要在DNS配置文件中指定n個IP地址,如果全都寫在一起的話,每塊地方都要寫一次,那麼相當麻煩,如果使用一個參數定義那一片的IP地址,那麼管理起來就相當方便了,這個就是DNS中的ACL,bind支持的訪問控制表。

格式:

acl ACL_NAME {
    172.16.0.0/16;
    192.168.0.0/24
    127.0.0.0/8;
    ...
    ...
};

在全局選項中定義ACL,給每個ACL取一個名字,這樣以後每次引用,只須在填定IP地址的地方填寫那個變量就行了。在bind中有幾個事先定義好的ACL:

any: 任何主機
none: 無一主機
local: 本機
localnet: 本機的所在的網絡





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章