DNS子域授權的實現

  • 2019 年 10 月 5 日
  • 筆記

前幾天貼的部落格上沒有子域授權的實驗,這裡補上。

子域授權的概念:

在原有的域上再劃分出一個小的區域並指定新DNS伺服器。在這個小的區域中如果有客戶端請求解析,則只要找新的子DNS伺服器。這樣的做的好處可以減輕主DNS的壓力,也有利於管理。一般做正向區域的子域授權即可。

正向解析區域子域方法:

假設父域stu13.com,子域是ops.stu13.com,子域內有2台名稱伺服器ns1。

要注意在父域定義好子域的ns1的A記錄,不然子域不知道如何去×××器。

例如:

         ops.stu13.com.                 IN     NS    ns1.ops.stu13.com.

         ns1.ops.stu13.com.         IN     A       192.168.2.100

注意:子域和父域的域名伺服器可以不在同一個網路內,只要彼此能通訊即可。

2. 定義轉發伺服器【2種方式】

注意:被轉發的伺服器需要能夠為請求者做遞歸,否則,轉發請求不予進行。

          (1) 全部轉發: 凡是對非本機所有負責解析的區域的請求,統統轉發給指定的伺服器。

        Options {

                            forward{first|only}

                            forwarders{IP_address ; };

                   }

           (2) 區域轉發:僅轉發對特定的區域的請求至某伺服器。

                   zone"ZONE_NAME" IN  {

                            typeforward;

                            forward{first|only}

                            forwarders{IP_address ; };

                   }

#說明:

         first表示先轉髮指定的區域伺服器,如果沒結果再去找根。

         only是只轉發給指定的區域伺服器,有沒有結果,都不會去找根。

注意:配置子域授權時候,需要關閉dnssec功能,即設置:

         dnssec-enableno;

         dnssec-validationno;

下面正式開始配置

環境搭建:

Server1:192.168.2.7父域

Server2:192.168.2.12子域

父域的DNS配置:(192.168.2.7上)

步驟概要:將其配置成快取伺服器,關閉dnssec,添加本區域,編寫本區域解析庫文件(其中要加入子域的NS記錄、A記錄)。

vi /etc/named.conf 修改如下:

options {

// listen-on port 53 { 127.0.0.1; };

// listen-on-v6 port 53 { ::1; };

    directory  "/var/named";

    dump-file   "/var/named/data/cache_dump.db";

        statistics-file"/var/named/data/named_stats.txt";

        memstatistics-file"/var/named/data/named_mem_stats.txt";

// allow-query     { localhost; };

    recursion yes;

dnssec-enable no;                      //改為no

dnssec-validation no;                //改為no

//  dnssec-lookasideauto;              //注釋掉這句

    /* Path to ISC DLV key */

// bindkeys-file "/etc/named.iscdlv.key";

// managed-keys-directory "/var/named/dynamic";

};

logging {

        channel default_debug{

                file"data/named.run";

                severitydynamic;

        };

};

zone "." IN {

    type hint;

    file "named.ca";

};

include "/etc/named.rfc1912.zones";

include "/etc/named.root.key";

service named start

vi /etc/named.rfc1912.zones,在最後添加如下4行內容

zone "stu13.com" IN {

         typemaster;

         file"stu13.com.zone";

};

cd /var/named

vi stu13.com.zone內容如下:【注意FQDN中的注意點號】

$TTL 1D

$ORIGIN stu13.com.

@     IN     SOA  ns1.stu13.com.        admin.stu13.com. (

                                                                 2015093212

                                                                  1M

                                                                 5M

                                                                 1H

                                                                 1D)

               IN     NS    ns1

               IN     NS    ns2

ns1            IN     A     192.168.2.7

ns2            IN     A     192.168.2.8

www            IN     A     192.168.2.7

*              IN     A     192.168.2.7     ;加了一條泛域名解析記錄

;下面加的兩條是子域授權要用到的,否則父域找不到子域

ops      IN      NS       ns1.ops

ns1.ops  IN      A        192.168.2.12  ; 子域的dns地址

named-checkzone"stu13.com"  stu13.com.zone              # 檢查區域文件

# 修改區域配置文件的許可權

chown .named stu13.com.zone

chmod 640 stu13.com.zone

service named restart    #重啟dns服務

子域的DNS配置:(192.168.2.12上)

步驟概要:將其配置成快取伺服器,關閉dnssec,添加本區域和父區域,編寫本區域解析庫文件。

vi /etc/named.conf # 注釋掉下面紅色字體部分的程式碼,使其變成快取伺服器

options {

// listen-on port 53 { 127.0.0.1; };

// listen-on-v6 port 53 { ::1; };

    directory   "/var/named";

    dump-file   "/var/named/data/cache_dump.db";

        statistics-file"/var/named/data/named_stats.txt";

        memstatistics-file"/var/named/data/named_mem_stats.txt";

// allow-query     { localhost; };

    recursion yes;

dnssec-enable no;                      //改為no

dnssec-validation no;                //改為no

// dnssec-lookaside auto;

    /* Path to ISC DLV key */

//  bindkeys-file"/etc/named.iscdlv.key";

// managed-keys-directory "/var/named/dynamic";

};

logging {

        channel default_debug{

                file"data/named.run";

                severitydynamic;

        };

};

zone "." IN {

    type hint;

    file "named.ca";

};

include "/etc/named.rfc1912.zones";

include "/etc/named.root.key";

service named start       #啟動named服務

vi /etc/named.rfc1912.zones,在最後添加2個區域:

zone "ops.stu13.com" IN {

         type master;

         file"ops.stu13.com.zone";

};

//定義轉發到父域

zone "stu13.com" IN {

 type forward;

    forwardonly;

   forwarders { 192.168.2.7 ;};

};

vi /var/named/ops.stu13.com.zone    寫入如下內容:

$TTL 1D

$ORIGIN ops.stu13.com.

@     IN              SOA           ns1.ops.stu13.com.         admin.ops.stu13.com. (

                                                                 2015093201

                                                                 1M

                                                                 5M

                                                                 1H

                                                                 1D )

                IN     NS      ns1

ns1             IN     A       192.168.2.12   ;本機地址

www             IN     A       192.168.2.30

*               IN     A       192.168.2.30

# 修改區域配置文件的許可權

chown .named ops.stu13.com.zone

chmod 640 ops.stu13.com.zone

執行rndc reload或者service namedrestart

tail/var/log/messages 查看是否有錯誤提示。

多次執行dig命令檢查:

# 在父域dns伺服器上執行:

dig -t awww.ops.stu13.com @192.168.2.7  父域能正常解析子域

# 在子域dns伺服器上執行:

dig -t awww.stu13.com @192.168.2.12         子域能解析父域

說明我們定義的子域、父域配置成功了。