DNS以及bind使用

 

DNS以及域名分發布式數據庫相關知識 

    一、 DNS相關介紹  

        1. DNS(Domain Name Service):域名解析服務協議 

        2. 通常監聽段脫口:UDP:53 和 TCP: 53 

        3. 實現應用程序:BIND(Berkeley Internet Name Domain), PowerDNS, etc 

        4. DNS服務主要工作于域名解析分布式數據庫, 用來做域名IP之間的解析 


    二、 域名分布式數據庫 

DNS以及bind使用

    1. 根域:. 

    2. 一級域: 組織域(.com .org .mil ; 國家域 (.cn, .tw .jp .us); 反向域 (.in-addr.arpa )

    3. 解析方式: 

  • FQDN (Full Qualified Domain Name) –> IP : 正向解析
  • IP –> FQDN:反向解析 

    4. 遞歸與迭代

  • 遞歸:DNS請求被服務器接收后,如果屬于此服務器管轄范圍則請求上級服務器依次傳遞請求,并且依次傳遞結果給發出請求的主機??蛻魴C指向的服務器一定給遞歸服務。  
  • 迭代: DNS請求被服務器接收后,如果不是自己管轄范圍,讓客戶端訪問根域服務器,然后跟域通知客戶端去訪問下級服務器,直到最后客戶端訪問管轄請求域名的服務器為止。

    5. 資源記錄(Resource Record):資源記錄用用于存儲域名解析數據記錄, 幾種記錄類型如下

  • SOA:Start Of Authority, 其實授權:用于聲明本地域被授權
  • NS:Name Server, 域名服務器:用于記錄域名服務器信息 
  • MX:Mail eXchanger,郵件交換器:記錄郵件服務器信息 
  • A:Address, FQDN –> IP 
  • PTR:PoiTeR,IP –> FQDN
  • AAAA:Address, FQDN –> IPv6 
  • CNAME: Canonical Name, 咩名記錄 

    6. 域(Domain) 和 區域(zone)

  • 域(Domain):邏輯概念
  • 區域(zone):物理概念,特指存儲資源記錄的硬件設備,如文本文件,或者數據庫
  • 正向區域和反向區域域不能存儲在一個文件或者數據庫中,由于解析技術不同 

    7. DNS服務器類型

  • 主DNS服務器
  • 從DNS服務器
  • 緩存名稱服務器

    8. DNS數據文件格式(bind為例):文本文件,包含資源記錄或宏定義

  • 資源記錄格格式

    資源記錄的格式:
    name    [ttl]   IN      RRtype      Value
    例子:
    www     600     IN      A           1.2.3.4
    www.playground.com.     600     IN      A   1.2.3.4

  • SOA記錄

    SOA: 只能有一個
    name: 區域名稱, 通??梢院唽憺锧,例如:magedu.com.
    value: 主DNS服務器的FQDN
    注意:SOA必須是區域數據庫文件第一條記錄

    例子:@    600     IN  SOA  ns.playground.com.  dnsadmin.playground.  (
        serial number ;序列號,十進制數字,不能超過10位,通常使用日期,例如2014031001
        refresh time  ;刷新時間,即每隔多久到主服務器檢查一次
        retry time    ;重試時間,應該小于refresh time
        expire time   ;過期時間
        negative answer ttl  ;否定答案的ttl
) 

  • NS記錄

  NS:可以有多條
    name: 區域名稱,通常可以簡寫為@
    value: DNS服務器的FQDN(可以使用相對名稱)
    例子:
    @     600     IN  NS  ns

  • A記錄

    A: 只能定義在正向區域數據庫文件中
    name: FQDN(可以使用相對名稱)
    value: IP
    例子:
    www     600     IN      A           1.2.3.4
    www     600     IN      A           1.2.3.5
    www     600     IN      A           1.2.3.4
    ftp     600     IN      A           1.2.3.4     

  • MX記錄

    MX: 可以有多個
    name: 區域名稱,用于標識smtp服務器
    value: 包含優先級和FQDN
       優先級:0-99, 數字越小,級別越高;
    例子:
        @     600     IN  MX   10   mail
        @  600     IN  MX   20   mail2

  • CNAME記錄

    CNAME: 
    name: FQDN
    value: FQDN
    例子:
    ftp     IN  CNAME  www
    mail    IN  CNAME  www

  • PTR記錄格式

    PTR: IP-->FQDN, 只能定義在反向區域數據文件中,反向區域名稱為逆向網絡地址加.in-addr.arpa.后綴組成
    name: IP, 逆向的主機地址,例如172.16.100.7的name為7.100,完全格式為7.100.16.172.in-addr.arpa.
    value: FQDN
    例子:
    4.3.2       600     IN      PTR     www.playground.com.

9. 區域傳送:

  • 輔助DNS服務器從主DNS服務器或其他輔助DNS服務器請求傳輸數據的過程
  • 完全區域傳送:傳送區域的所有數據,AXFER
  • 增量區域傳送:傳送區域中改變的數據不符,IXFER

DNS程序軟件bind簡介

一、 BIND簡介

    1. BIND: www.isc.org

    2. 服務程序名稱: named, 由named:named 執行  

    3. bind安裝包組

bind.x86_64 : 包含bind應用程序                                 
bind-chroot.x86_64 : 支持change root 機制                                
bind-devel.i686 : 32bit bind開發包                               
bind-devel.x86_64 : 64bit bind開發包                                
bind-dyndb-ldap.x86_64 : 支持動態數據庫                                
bind-libs.i686 : bind相關庫文件                               
bind-libs.x86_64 : 64bit 庫文件                                
bind-sdb.x86_64  : 支持數據庫接口                                
bind-to-tinydns.x86_64 : 微型DNS服務器程序                                 
bind-utils.x86_64 : 工具包  

   

   二、主配置文件和區域文件 /etc/named.conf, /var/named/ 

        1. 必須的三個區域: 跟 .  localhost  127.0.0.1

    主配置文件:
        options {
        // 全局選項
    };

        zone "ZONE name" {
        // 定義區域
    };

        logging {
        // 定義日志系統
    };

        2. 域類型

    •  hint:緩存域,用于緩存服務器
    •  master:主域,用于主服務器
    •  slave:從域,用于從服務器
    •  forward:轉發域  

    三、 named服務正向以及反向解析事例

            舉例: 添加正向域域.playground 和 反向域233.168.192.in-addr.arpa 

                        mail, 192.168.98.12
                        www 192.168.98.13
                        pop –> mail
                        ftp –> www

                        dns: 192.168.233.128

1. 編輯主配置文件

options {
#       listen-on port 53 { 127.0.0.1; }; # 注釋后監聽所有ip的53號端口
#       listen-on-v6 port 53 { ::1; }; # 注釋后監聽所有ipv5的53號端口
        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     { 127.0.0.1; 192.168.233.128; 192.168.233.131; }; # 允許訪問的白名單,注釋后允許所有IP訪問
        recursion yes; # 是否提供遞歸 

#       dnssec-enable yes;
#       dnssec-validation yes;
#       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";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

include "/etc/named.rfc1912.zones"; # 讀取的域文件信息
#include "/etc/named.root.key"; # 與遠程操控相關

          2. 添加新的域 .playground.com于/etc/named.rfc1912.zones 中 

## 添加正向區域
zone "playground.com" IN {
      type master;
      file "playground.zone";
};
## 添加反向區域

zone "98.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.98.zone";
};

          3. 編輯區域文件

## 在/var/named/編輯正向區域文件保存為 playground.zone, 與配置文件中輸入的文件名一致
$TTL 600
@       IN      SOA     dns.playground.com.     dnsadmin.playground.com. (
        20150305
        1H
        5M
        3D
        12H )
@       IN      NS      dns
@       IN      MX  10  mail
dns     IN      A       192.168.233.128 
mail    IN      A       192.168.98.12
www     IN      A       192.168.98.13
ftp     IN      CNAME   www
pop     IN      CNAME   www
## 在/var/named/編輯反向區域文件保存為 192.168.233.zone, 與配置文件中輸入的文件名一直

$TTL 600
@       IN      SOA     dns.playground.com.     dnsadmin.playground.com.(
        20150305
        1H
        5M
        3D
        12H )
@       IN      NS      dns.playground.com.
128     IN      PTR     dns.playground.com.
12      IN      PTR     mail.playground.com.
13      IN      PTR     www.playground.com.
ns      IN      A       192.158.98.128
mail    IN      A       192.168.98.12
www     IN      A       192.168.98.13

  

        4. 修改配置文件屬組屬組為named:named, 權限位640

## 如果不修改屬主屬組,named將無法讀取配置文件,由于named服務是通過named用戶啟動
chown named:named /etc/named.rfc1912.zones
chown named:named /etc/named.conf 
## 修改配置文件權限,主要為了安全,即便named服務被攻破,也不至于重要信息泄露
chmod 640 /etc/named.conf
chmod 640 /etc/named.rfc1912.zones
chown named:named /var/named/playground.zone 
chmod 640 /var/named/playground.zone 

        5. 啟動服務,查看TCP/UDP 53號端口是否被監聽, 查看/var/log/message 

ss -tunl | grep ":53"
udp    UNCONN     0      0        192.168.233.128:53                    *:*     
udp    UNCONN     0      0          172.25.137.40:53                    *:*     
udp    UNCONN     0      0              127.0.0.1:53                    *:*     
tcp    LISTEN     0      3        192.168.233.128:53                    *:*     
tcp    LISTEN     0      3          172.25.137.40:53                    *:*     
tcp    LISTEN     0      3              127.0.0.1:53                    *:*     
service named configtest ## 測試配置文件語法是否正確
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
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: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
zone playground.com/IN: loaded serial 20150305
zone 98.168.192.in-addr.arpa/IN: loaded serial 20150305

service named start ## 啟動服務 
Starting named:                                            [  OK  ] 

tail /var/log/messages ## 查看服務日志
Mar 13 22:40:26 www named[47455]: zone 0.in-addr.arpa/IN: loaded serial 0
Mar 13 22:40:26 www named[47455]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
Mar 13 22:40:26 www named[47455]: zone 98.168.192.in-addr.arpa/IN: loaded serial 20150305
Mar 13 22:40:26 www named[47455]: 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: loaded serial 0
Mar 13 22:40:26 www named[47455]: zone playground.com/IN: loaded serial 20150305
Mar 13 22:40:26 www named[47455]: zone localhost.localdomain/IN: loaded serial 0
Mar 13 22:40:26 www named[47455]: zone localhost/IN: loaded serial 0
Mar 13 22:40:26 www named[47455]: managed-keys-zone ./IN: loaded serial 288
Mar 13 22:40:26 www named[47455]: zone 98.168.192.in-addr.arpa/IN: sending notifies (serial 20150305)
Mar 13 22:40:26 www named[47455]: running

     

       6 使用dig命令測試

dig www.playground.com @192.168.233.128  ## 測試正向解析
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> www.playground.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34061
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.playground.com.        IN  A

;; ANSWER SECTION:
www.playground.com. 600 IN  A   192.168.98.13

;; AUTHORITY SECTION:
playground.com.     600 IN  NS  dns.playground.com.

;; ADDITIONAL SECTION:
dns.playground.com. 600 IN  A   172.25.137.40

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Mar 13 22:47:49 2015
;; MSG SIZE  rcvd: 86

dig -x 192.168.98.13 @192.168.233.128 ## 測試反向解析
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> -x 192.168.98.13
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17843
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;13.98.168.192.in-addr.arpa.    IN  PTR

;; ANSWER SECTION:
13.98.168.192.in-addr.arpa. 600 IN  PTR www.playground.com.

;; AUTHORITY SECTION:
98.168.192.in-addr.arpa. 600    IN  NS  ns.playground.com.

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Mar 13 22:48:07 2015
;; MSG SIZE  rcvd: 93

    

    四、 區域傳送以及從服務器配置 

DNS以及bind使用       

        1. dig 模擬完全區域傳送

# dig -t axfr playground.com  @192.168.233.128
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> -t axfr playground.com @192.168.233.128
;; global options: +cmd
playground.com.     600 IN  SOA dns.playground.com. dnsadmin.playground.com. 20150305 3600 300 259200 43200
playground.com.     600 IN  NS  dns.playground.com.
playground.com.     600 IN  MX  10 mail.playground.com.
dns.playground.com. 600 IN  A   172.25.137.40
ftp.playground.com. 600 IN  CNAME   www.playground.com.
mail.playground.com.    600 IN  A   192.168.98.12
pop.playground.com. 600 IN  CNAME   www.playground.com.
www.playground.com. 600 IN  A   192.168.98.13
playground.com.     600 IN  SOA dns.playground.com. dnsadmin.playground.com. 20150305 3600 300 259200 43200
;; Query time: 16 msec
;; SERVER: 192.168.233.128#53(192.168.233.128)
;; WHEN: Fri Mar 13 23:30:15 2015
;; XFR size: 9 records (messages 1, bytes 240)

       2. 主從兼容關系:主服務器bind版本可以低于從服務器bind版本

       3. 向區域文件中添加從服務器關鍵兩步奏:

  • 往上級獲得授權(這里指的DNS上級父域服務器)
  • 在主區域文件中為從服務器添加NS記錄和對應的A或PTR記錄

       4. 從服務器,事例。

            假設:有另一個主機,IP地址為192.168.233.129,作為192.168.233.128(接續上面的事例)的從服務器。


首先在主DNS服務器的區域文件中,添加從服務器的NS記錄 

## 正向,添加從服務器的NS記錄
@       IN      NS      ns
ns      IN      A       192.168.233.129

## 反向, 添加從服務器的NS記錄
@       IN      NS      ns.playground.com.
129     IN      PTR     ns.playground.com.

## 添加完成后,如果不是使用named用戶操作,一定注意修把文件屬主屬組改為named:named, 另外修改一下序列號
service named reload ## 重啟服務 

然后在從服務器主機上bind配置文件中添加,與主服務器相同的兩個正反向域

## 從服務器正向域
zone "playground.com"           IN {
        type slave;
        masters { 192.168.233.128; };
        file "slaves/playground.com.zone";
};


##  從服務器反向域
zone "233.168.192.in-addr.arpa" IN {
        type slave;
        masters { 192.168.233.128; };
        file "slaves/192.168.233.com.zone";
};

## 重啟服務 
service named restart 

查看日志文件,同步過來的區域文件,嘗試用從服務器解析 

tail /var/log/message 
Mar 17 03:59:52 www named[2533]: running
Mar 17 03:59:52 www named[2533]: zone 233.168.192.in-addr.arpa/IN: sending notifies (serial 20150305)
Mar 17 03:59:52 www named[2533]: zone playground.com/IN: sending notifies (serial 3934520385)

ls /var/named/slaves  ## 查看區域文件是否成功同步過來
-rw-r--r--. 1 named named 482 Mar 17 03:47 192.168.233.com.zone
-rw-r--r--. 1 named named 497 Mar 17 03:54 playground.com.zone

dig -t A www.playground.com @192.168.233.129 ## 嘗試解析 
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> -t A www.playground.com @192.168.233.129
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17894
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.playground.com.        IN  A

;; ANSWER SECTION:
www.playground.com. 600 IN  A   192.168.98.13

;; AUTHORITY SECTION:
playground.com.     600 IN  NS  dns.playground.com.
playground.com.     600 IN  NS  ns.playground.com.

;; ADDITIONAL SECTION:
dns.playground.com. 600 IN  A   172.25.137.40
ns.playground.com.  600 IN  A   192.168.233.129

;; Query time: 0 msec
;; SERVER: 192.168.233.129#53(192.168.233.129)
;; WHEN: Tue Mar 17 04:02:31 2015
;; MSG SIZE  rcvd: 119

    五、 子域授權 

        1.   BIND子域授權的實現:首先需要在父域區域文件中添加膠水記錄(glue record)說要授權的子域信息和主機IP,父域區域文件中需要添加如下幾項

                授權的子區域域名稱

                子區域的名稱服務器

                子區域的名稱服務器IP地址 

            

    例子: 

  bio.playground.com. IN   NS     dns.bio.playground.com.
    bio.playground.com. IN   NS     ns2.bio.playground.com.
    dns.bio.playground.com.     IN      A   172.16.200.21
    ns2.bio.playground.com.     IN      A   172.16.200.22

        

        2. 配置區域轉發:轉發域

             解析某本機不負責的區域內的名稱時不轉發給跟,而是轉發給指定主機 

        zone "ZONE NAME" IN {
        type forward;
        forwarders { DNS_SERVER; };
        forward only|first;
    };

            

            配置轉發方式: 

         轉發非本機負責解析的所有區域:
        options {
            forward only|first;
            forwarders { IP; }
        };

      轉發某特定區域:
        zone "特定區域" IN {
                type forward;
            forwarders { IP; }
            forward only|first;
        };

             

        3. ACL:bind實現支持的訪問控制列表 

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

            訪問控制列表只有定義后才能使用;通常acl要定義在named.conf的最上方;

            BIND有四個內置的acl:
                any: 任何主機
                none: 無一主機
                local: 本機

                localnet: 本機的所在的網絡

            

        4. 實例, 接續上面上面的例子, 

                    父域為playground.com. 地址為192.168.233.128,

                    需要授權給另一臺主機192.168.233.129,

                    子域bio.playground.com. 并且要求子域服務器可以解析父域其他域名

 

在父域playground.com區域文件中添加膠水記錄

bio     IN      NS      ns.bio
ns.bio  IN      A       192.168.233.129

                

在子域主機配置文件中添加這個域

zone "bio.playground.com"       IN {
        type master;
        file "bio.playground.com.zone";
};

         

在子域主機編輯并添加/var/named/bio.playground.com.zone 子域區域文件, 并修改權限和屬主屬組(named:named) 

@       IN      SOA     ns.bio.playground.com.  nsbioadmin.playground.com. (
        20150309001
        1H
        5M
        3D
        12H )
@       IN      NS      ns.bio.playground.com.
@       IN      MX  10  mail.bio.playground.com.
ns      IN      A       192.168.233.129
mail    IN      A       192.168.233.140
www     IN      A       192.168.233.141
ftp     IN      A       192.168.233.142
pop     IN      CNAME   ftp

               在子域配置文件中,添加轉發域,使得子域主機可以解析父域域名

                此時注意要開啟父域配置文件中的recursion yes, 或者建立recursion白名單,這里筆者偷懶直接用recursion yes 解決,在生產條件下這樣設定很不安全 

zone "playground.com"           IN {
        type forward;
        forwarders { 192.168.233.128; };
        forward only;
};

               

重啟或者重新載入父子域服務器后,嘗試解析 

在子域服務器上解析子域域名 
dig www.bio.playground.com @192.168.233.129  
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> www.bio.playground.com @192.168.233.129
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17622
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.bio.playground.com.        IN  A

;; ANSWER SECTION:
www.bio.playground.com. 43200   IN  A   192.168.233.141

;; AUTHORITY SECTION:
bio.playground.com. 43200   IN  NS  ns.bio.playground.com.

;; ADDITIONAL SECTION:
ns.bio.playground.com.  43200   IN  A   192.168.233.129

;; Query time: 0 msec
;; SERVER: 192.168.233.129#53(192.168.233.129)
;; WHEN: Tue Mar 17 17:16:39 2015
;; MSG SIZE  rcvd: 89

## 在子域服務器上解析父域域名 
dig www.playground.com @192.168.233.129
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> www.playground.com @192.168.233.129
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9272
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.playground.com.        IN  A

;; ANSWER SECTION:
www.playground.com. 600 IN  A   192.168.98.13

;; AUTHORITY SECTION:
playground.com.     600 IN  NS  dns.playground.com.

;; ADDITIONAL SECTION:
dns.playground.com. 600 IN  A   192.168.233.129

;; Query time: 15 msec
;; SERVER: 192.168.233.129#53(192.168.233.129)
;; WHEN: Tue Mar 17 17:18:02 2015
;; MSG SIZE  rcvd: 86

兩次解析結果差別在于flags, 如果在子域解析父域,則少一個aa flag說明不是權威答案,只是參考答案

    

    六、view視圖, 實現主機對于不同IP訪問對于同一域名產生不同的應答機制,用于解決不同網絡間解析效率問題 ,需要注意的是,如果使用view則所有區域都必須在view中 

 DNS以及bind使用       

        1. 語法格式如下 

以中國移動和中國聯通為例 
        acl telecom {
            1.2.0.0/16;
            4.5.8.0/24;
        };

        acl unicom {

        };

        view telecom {
            match-clients { telecom; };
            zone "playground.com" IN {
                type master;
                file "playground.com.telecom";
            };
        };

        view unicom {
            match-clients { unicom; };
            recursion no;
            zone "playground.com" IN {
                type master;
                file "playground.com.unicom";
            };
        };

        view default {
            match-clients { any; };
            zone "playground.com" IN {
                type master;
                file "playground.com.unicom";
            };
        };

         

         2. 實驗事例, 

              假定有一個域,playground.com, 如果通過172.25.137.41訪問則返回一組解析結果, 如果通過192.168.233.129 訪問則返回另一組結果。 

              第一臺主機,為DNS服務器, 擁有兩個端口,192.168.233.128 和 172.25.137.40,這里筆者使用別名實現

              另兩臺主句, 一臺為192.168.233.129 一臺為172.25.137.41 

          

設置,DNS服務器IP 

ifconfig eth0 192.168.233.128/24
ifconfig eth0:1 172.24.137.43/24
eth0      Link encap:Ethernet  HWaddr 00:0C:29:E0:A2:0E  
          inet addr:192.168.233.128  Bcast:192.168.233.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fee0:a20e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:45186 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32619 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:18628316 (17.7 MiB)  TX bytes:2974242 (2.8 MiB)

eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:E0:A2:0E  
          inet addr:172.25.137.40  Bcast:172.25.137.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

             

修改bind配置文件,添加view 

acl localArea {
    127.0.0.1/4;
};
 
acl vm1 {
    192.168.233.131/24;
    192.168.233.128/24; 
};
 
acl vm2 { 
    172.25.137.41/24;
    172.25.137.40/24;
};

 

view localArea { 
    match-clients { localArea; };
    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; };
    };
}; 

view vm1 {
    match-clients { vm1; }; 
    zone "playground.com" IN {
        type master; 
        file "playground.vm1";
    };

    zone "98.168.192.in-addr.arpa" IN { 
        type master; 
        file "192.168.98.vm1";
    };
};   
   

view vm2 {
    match-clients { vm2; };
    zone "playground.com" IN {
        type master; 
        file "playground.vm2";
    };

    zone "137.25.172.in-addr.arpa" IN { 
        type master; 
        file "172.25.137.vm2";
    };
};

view default {
    match-clients { any;};
    zone "." IN { 
        type hint; 
        file "named.ca"; 
    }; 
};

               

編輯vm1的正反向域區域文件 

## vm1這是正向域 
$TTL 600
@       IN      SOA     dns.playground.com.     dnsadmin.playground.com. (
        20150305
        1H
        5M
        3D
        12H )
@       IN      NS      dns
@       IN      MX  10  mail
dns     IN      A       192.168.233.128
mail    IN      A       192.168.98.12
www     IN      A       192.168.98.13
ftp     IN      CNAME   www
pop     IN      CNAME   www

## vm1這是反向域 
$TTL 600
@       IN      SOA     dns.playground.com.     dnsadmin.playground.com.(
        20150305
        1H
        5M
        3D
        12H )
@       IN      NS      ns.playground.com.
128     IN      PTR     ns.playground.com.
12      IN      PTR     mail.playground.com.
13      IN      PTR     www.playground.com.

               

編輯vm2正反向域區域文件

## 這是vm2正向域 
$TTL 600
@       IN      SOA     dns.playground.com.     dnsadmin.playground.com. (
        20150305
        1H
        5M
        3D
        12H )
@       IN      NS      dns
@       IN      MX  10  mail
dns     IN      A       172.25.137.40
mail    IN      A       172.25.137.12
www     IN      A       172.25.137.13
ftp     IN      CNAME   www
pop     IN      CNAME   www
## 這是vm2反向域 
$TTL 600
@       IN      SOA     dns.playground.com.     dnsadmin.playground.com.(
        20150305
        1H
        5M
        3D
        12H )
@       IN      NS      dns.playground.com.
40      IN      PTR     dns.playground.com.
12      IN      PTR     mail.playground.com.
13      IN      PTR     www.playground.com.

            

全部設置完成后,修改權限重啟服務,然后開始測試 

## 測試192.168.233.128 
dig www.playground.com @192.168.233.128
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> www.playground.com @192.168.233.128
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38934
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.playground.com.        IN  A

;; ANSWER SECTION:
www.playground.com. 600 IN  A   192.168.98.13

;; AUTHORITY SECTION:
playground.com.     600 IN  NS  dns.playground.com.

;; ADDITIONAL SECTION:
dns.playground.com. 600 IN  A   192.168.233.128

;; Query time: 1 msec
;; SERVER: 192.168.233.128#53(192.168.233.128)
;; WHEN: Sat Mar 14 14:34:47 2015
;; MSG SIZE  rcvd: 86

## 測試172.25.137.40 
 dig www.playground.com @172.25.137.40

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> www.playground.com @172.25.137.40
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12736
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.playground.com.        IN  A

;; ANSWER SECTION:
www.playground.com. 600 IN  A   172.25.137.13

;; AUTHORITY SECTION:
playground.com.     600 IN  NS  dns.playground.com.

;; ADDITIONAL SECTION:
dns.playground.com. 600 IN  A   172.25.137.40

;; Query time: 0 msec
;; SERVER: 172.25.137.40#53(172.25.137.40)
;; WHEN: Sat Mar 14 14:35:39 2015
;; MSG SIZE  rcvd: 86

測試成功,我們可以看到,相同域名解析不同的IP

           

原創文章,作者:以馬內利,如若轉載,請注明出處:http://www.www58058.com/1047

(0)
以馬內利以馬內利
上一篇 2015-03-16
下一篇 2015-03-17

相關推薦

  • N21_遲來的第三周練習

    最近忙成狗,落后了許多 1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 # who | cut -d ' ' -f1 | uniq 2、取出最后登錄到當前系統的用戶的相關信息。 # last&nbsp…

    Linux干貨 2016-08-02
  • shell三劍客之grep

    正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。 給定一個正則表達式和另一個字符串,我們可以達到如下的目的: 1. 給定的字符串是否符合正則表達式的過濾邏輯(稱作“匹配”); 2. 可以通過正則表達式,從字符串中獲取我們想要的特定部分。 正…

    Linux干貨 2016-08-08
  • linux 文件管理命令

    cp 復制文件或者路徑 單源復制: cp [OPTION]…[-T] SOUTCE DEST 如果DEST不存在:則事先創建此文件,并復制源文件的數據流到DEST中 如果DEST存在:   如果DEST是非目錄文件:則覆蓋目標文件; 如果DEST是目錄,就在這個目錄中創建一個同名的文件,把源數據復制到這個文件中。 多源復制: cp [O…

    Linux干貨 2017-08-28
  • 第一周學習總結

    俗話說,好記性不如爛筆頭,在當今移動互聯網橫行的時代,爛筆頭就是網絡,而筆記本就是各種平臺。 作為一個IT人,有人突然問你計算機是啥,你可能不會像學文科的人一樣給他說,就是電腦啊。這時候就是凸顯IT知識技能的時候了,那么我下面就給您慢慢的道來。 在1946年美籍匈牙利人馮·諾依曼首次提出了自己的計算機體系理論,簡稱馮·諾依曼體系,主要是說計算機由五大基本部件…

    2017-12-14
  • 《 Git 權威指南 》學習筆記

    這個沒辦法直接發博客了,篇幅太長,無法直接在 Blog 上排版了,直接發上 pdf 文檔了。 接 《LNAMP Shell 部署腳本》 博文的內容,線上測試系統的 Git 環境部署。 整個 Git 環境包括了:     Git / Gitweb     Gitolite / Gerrit &nbsp…

    Linux干貨 2015-10-27
  • FHS文件系統各個目錄功能

    FHS文件系統各個目錄功能 概述      Linux文件系統有點特別,它采用一種稱為虛擬目錄(virtual directory)的單文件系統,虛擬目錄包括了計算機存儲設備下的所有路徑,并且把它們納入一個目錄結構中。      Linux PC上安裝的第一塊硬盤叫做根驅動器,根驅動器包含了虛擬目錄…

    Linux干貨 2016-10-17

評論列表(1條)

  • 追馬
    追馬 2015-03-17 12:28

    niubility~ 很詳細,贊~

欧美性久久久久