DNS的子域授權、轉發以及view

 本節我將分別對DNS的子域授權、DNS配置轉發器、DNS配置轉發區域以及DNS的view進行講解,本節本來是想跟上一節內容一起講解的,但是由於字數問題我就又分了單獨一節來講。

   實驗環境:Centos6.5x86_64

   主DNS服務器 ns.magedu.com  172.16.6.20

   子DNS服務器  ns.sub.magedu.com  172.16.6.50

子域授權(這裏只講解正向解析)

子域授權,顧名思義就是在一個域的基礎上又創建子域,當然這個子域必須在父域中進行聲明,下面我們就來看下他是怎麼實現的。

父域中配置

首先得在父域的解析庫文件中添加子域的NS記錄以及A記錄

[root@localhost ~]# vim /var/named/magedu.com.zone
$TTL  3600
@       IN  SOA  ns.magedu.com.   admin.magedu.com (
                  2014080609     版本每次務必改
                  1H
                  10M
                  7D
                  1D )
        IN  NS   ns
        IN  NS   ns2
sub     IN  NS  ns.sub          添加子域服務器的NS記錄
        IN  MX  10  mail
ns      IN  A   172.16.6.20
ns2     IN  A   172.16.106.20
ns.sub  IN  A   172.16.6.50      添加子域服務器的A記錄
mail    IN  A   172.16.6.21
www     IN  A   172.16.6.22
web     IN  CNAME www

還是版本的問題,每次修改之後必須得改。


子域服務器配置

子域服務器中的/etc/named.conf文件還是跟父域中的一樣,只要是修改/etc/named.rfc1912.zones

[root@localhost ~]# vim /etc/named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

zone "localhost.localdomain" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};        
         
zone "localhost" IN {
        type master;
        file "named.localhost"; 
        allow-update { none; };
};           

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
        type master;
        file "named.loopback"; 
        allow-update { none; };
};

zone "1.0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};

zone "0.in-addr.arpa" IN {
        type master;
        file "named.empty";
        allow-update { none; };
};
新添加一條
zone "sub.magedu.com" IN {
       type master;
       file "sub.maedu.com.zone";
};

配置好之後檢查語法

[root@localhost ~]# named-checkconf


配置子域服務器中的解析庫文件

[root@localhost ~]# vim /var/named/sub.magedu.com.zone
$TTL 3360
@     IN  SOA  sub.magedu.com.  admin.magedu.com. (       注意子域的名稱
                      2014080601
                      1H
                      10M
                      1W
                      2D )
      IN  NS  ns
      IN  MX  10  mail
ns    IN  A   172.16.6.50
www   IN  A   172.16.6.52
mail  IN  A   172.16.6.51

配置好之後別忘了語法檢查

[root@localhost ~]# named-checkzone "sub.magedu.com"  /var/named/sub.magedu.com.zone 
zone sub.magedu.com/IN: loaded serial 2014080601
OK

確認無誤之後就可以進行重新加載了

[root@localhost ~]# rndc reload
server reload successful

配置好之後就可以進行測試了

wKiom1PiMfCimf6cAAIHTPIrhgI642.jpg

www.sub.magedu.com 進行測試,結果返回正確結果172.16.6.52

這樣一個子域授權就正式完成了並且可以運行了。

DNS配置轉發器

下面我們用DNS來配置一個轉發器,一旦該服務器本身不能解析,則器會將請求轉發給轉發器指向的服務器進行解析。

這裏我們就對子域服務進行配置轉發功能。

轉發器的設置非常簡單,只需要對/etc/named.conf進行配置

[root@localhost ~]# vim /etc/named.conf 
只需要對options進行修改
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;
        
        forward only;       注意格式:這裏的only表示轉發後無論返回什麼答案都選擇相信
        forwarders { 172.16.6.20; };    設置轉發的服務器
        //dnssec-enable yes;
        //dnssec-validation yes;
        //dnssec-lookaside auto;

        /* Path to ISC DLV key */
        //bindkeys-file "/etc/named.iscdlv.key";
};

配置完成不要忘記重讀配置文件

[root@localhost ~]# rndc reconfig

好了,下面我們來測試一下

我們選擇對www.magedu.com進行測試,不屬於子域服務器的管轄範圍

wKiom1PiNtOD1xqSAAInT08mpqA970.jpg

測試成功,返回正確值172.16.6.22


DNS配置轉發區域

我們不但可以配置轉發,而且還可以控制想要轉發的區域。

[root@localhost ~]# vim /etc/named.rfc1912.zones 
 加入一個zone
zone "magedu.com" IN {
      type forward;
      forward only;    
      forwarders { 172.16.0.1; };爲了實驗更加直觀,這裏我們選擇一臺可以上網的主機
};

配置後重讀配置文件

[root@localhost ~]# rndc reconfig

配置成功後進行測試。

在測試之前,這裏我們對這個轉發區域的意思進行解釋,當所查詢的地址屬於magedu.com.域時,則會將該地址發給172.16.0.1去解析,如果172.16.0.1無法解析,則選擇相信,不再查詢;如果所查地址不屬於該域,則不給於轉發,讓服務器自己去迭代查詢。由於本服務器沒有連接網絡,而轉發後的服務器172.16.0.1能上外網。所以要是我們以www.baidu.com和www.magedu.com爲例,理論上來說結果應該是www.baidu.com無法查詢到結果,而www.magedu.com能夠查詢到結果。我們來驗證一下。

wKioL1Pjc17znnSFAAFtbLTOHBQ573.jpg

第一個www.baidu.com無法查詢到結果,驗證無誤,OK。

wKioL1Pjc6ORhgTaAAHfPY01q58762.jpg

第二個結果能夠得到結果122.10.114.6,驗證無誤,也OK。

這樣,區域轉發的功能我們就完成了。

view視圖功能

我們知道網通和電信之間進行相互訪問速度比較慢,那是因爲每一次相互訪問都會經過北京的一個機房中唯一的一個通信機房,而帶寬是非常有限,因此爲了避免沒有意義的相互訪問,這裏我們就引入了view的概念,即腦裂。

下面我們就來配置下:

需要注意的是在寫視圖時,所有的zone都必須在view裏面,所有要把/etc/named.conf裏的根的zone也要放到view裏去。

[root@localhost ~]# vim /etc/named.rfc1912.zones 

//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

acl mwjnet {
   172.16.0.0/16;                 爲了實驗更加直觀,這裏就只對172.16網段的地址進行控制
};                             這裏創建一個訪問控制列表
view local {
    match-clients { mwjnet; };   view調用控制列表mwjnet
zone "." IN {
        type hint;
        file "named.ca";
};
zone "localhost.localdomain" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};

        type master;
        file "named.loopback";
        allow-update { none; };
};

zone "1.0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};

zone "0.in-addr.arpa" IN {
        type master;
        file "named.empty";
        allow-update { none; };
};
zone "sub.magedu.com" IN {
       type master;                    
       file "sub.magedu.com.zone";       這裏文件中定義了www.sub.magedu.com.指向的地址爲
};                                       172.16.6.52
zone "magedu.com" IN {
      type forward;
      forward only;
      forwarders { 172.16.6.20; };
};
};
view  tel {
     match-clients { any; };
     zone "sub.magedu.com" IN {
         type master;
         file "magedu.com.2";            這裏文件中定義了www.sub.magedu.com. 指向的地址爲
    };                                   爲2.3.4.5
};

配置完成之後先檢測語法

[root@localhost ~]# named-checkconf

生成相應的解析庫文件,這裏只須生成/var/named/magedu.com.2

$TTL 3360
@     IN  SOA  sub.magedu.com. admin.magedu.com. (
                    2014080701
                    1H
                    10M
                    1w
                    3D )
     IN  NS  ns
ns   IN  A   172.16.6.50
www  IN  A   2.3.4.5

檢測語法並重新加載

當然還要修改權限以及數組,這裏我就沒有附上操作了

[root@localhost ~]# named-checkzone "sub.magedu.com" /var/named/magedu.com.2 
zone sub.magedu.com/IN: loaded serial 2014080701
OK
[root@localhost ~]# rndc reload
server reload successful

下面就可以進行測試了需要注意的是爲了方便測試,我對服務器設置了IP別名,192.168.1.23和172.16.6.50都是指該服務器。

用192網段的地址主機

wKiom1PiZZ6jNPh6AAHdnX0MwkY053.jpg

結果爲2.3.4.5

當用172.16網段的主機時

wKioL1PiZ4yjChkFAAGZI5-xu_8588.jpg得到的地址爲172.16.6.52

這樣結果就跟我們預想的一樣,不同的網段去到同一個服務器上找到的地址不同,這樣我們的視圖功能就已經完成並且可以使用。

本節的內容就講到這裏了,講的不好的地方希望大家多提建議,不對的地方非常歡迎指正,謝謝!


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