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

1、DNS服務器子域受權的實現bash

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


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

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

$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服務器就等於給子域受權了。測試


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

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


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

$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


四、從新啓動兩邊的DNS服務,測試一會兒域受權是否成功。遞歸

主域機器測試:dns

wKiom1Mlq5Sz0-mEAAKOG2rw7SY279.jpg


wKiom1Mlq_XzmQqxAALbqs1f4nc784.jpg


子域機器測試:ip

wKioL1MlrBujwBjjAALTX_fI0z8900.jpg


測試正常,操做成功!


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

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

轉發能夠用參數forwarders和forward實現:

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

參數說明:

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

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

全局和區域:

   這兩個參數能夠放在全局定義,也可放在區域定義,也能夠兩個同時使用,但無論怎樣,放在區域的優先權更高。若是用於特定區域則把轉發定義在區域內,若是用於全局,則把轉發定義在全局。


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

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

wKioL1Mlvc7irdI3AAHRmI9be7s674.jpg


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

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

wKiom1MlvsngAXErAAHuCmjKu_A827.jpg


三、修改完成後,重啓服務,測試一下,能夠解析了,轉發成功!

wKioL1Mlvw7Ae3AkAAKLoeeR7Ec236.jpg


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


3、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: 本機的所在的網絡
相關文章
相關標籤/搜索