Topology
Imgur

Scenario 

Router 

Hostname             : router.0846101.nasa
IP Address           : 10.113.25.254/24

Primary (Master) DNS Server 

Hostname             : ns1.0846101.nasa
IP Address           : 10.113.25.1/24

Secondary (Slave) DNS Server 

Hostname             : ns2.0846101.nasa
IP Address           : 10.113.25.2/24

Agent 

Hostname             : agent.0846101.nasa
IP Address           : 10.113.25.129/24

ClientPC (proxy) 

Hostname             : client-pc.0846101.nasa
IP Address           : 10.113.25.119/24

Router 

Hostname 

跟hostname有關的兩個檔案: /etc/sysconfig/network and /etc/hosts

vim /etc/sysconfig/network
# Created by anaconda
HOSTNAME=router.0846101.nasa //localhost.localdomain
vim /etc/hosts

加在最後一行

10.113.25.254   router.0846101.nasa

ping 看看有沒有設定成功

ping -c 2 router.0846101.nasa

有的話就可以reboot
重開機後若還是@localhost 可以執行

hostnamectl set-hostname router.0846101.nasa

DHCP Server 

# Add ns1 and ns2 to dns
option domain-name-servers 10.113.25.1, 10.113.25.2, 8.8.8.8;

# Set fixed IP to ns1, ns2, and client-pc
host ns1 {
        hardware ethernet 08:00:27:00:87:58;
        fixed-address 10.113.25.1;
}


host ns2 {
        hardware ethernet 08:00:27:61:73:ae;
        fixed-address 10.113.25.2;
}


host client-pc {
        hardware ethernet 08:00:27:8b:6c:b7;
        fixed-address 10.113.25.119;
}

Setting Router As a DNS Client 

一般name servers會在/etc/resolv.conf設定
但重開機會被NetworkManager覆寫

可以先到網卡設定 (Both enp0s3 and enp0s8)

vim /etc/sysconfig/network-scripts/ifcfg-enp0s3

新增一行

PEERDNS=no

再到/etc/resolv.conf 編輯name servers

vim /etc/resolv.conf
search 0846101.nasa
nameserver 10.113.25.1
nameserver 10.113.25.2
nameserver 8.8.8.8

/etc/nsswitch.conf的找尋hosts的順序
把DNS擺第一順位

hosts:      dns files myhostname

Master DNS Server 

Install Bind

dnf install bind 

Install Bind-Utils (to enable cmds like dig, nslookup…)

dnf install bind-utils

Configure DNS Server 

vim /etc/named.conf
# TSIG keys
#key "dotone-key" {
#       algorithm hmac-md5;
#       secret "OvexY/E9LNONtKlDlPERlg==";
#};

#key "mysub-key" {
#       algorithm hmac-md5;
#       secret "kZC7vN85HAFzLTrjsKX4tw==";
#};

#key "others-key" {
#       algorithm hmac-md5;
#       secret "9ZA6TNRXbaJAimpTsEi2Xw==";
#};

#Global settings
options {

#   Who can listen on your port 53? 
    listen-on port 53   { any; };

#   Who can send DNS query to you?
    allow-query { any; };

#   Allow transfer from Agent
    allow-transfer { localhost; 10.113.25.129; };

#   Default bind version query reply
    version "";

#   Only allow recursion from Agent
    recursion yes;
    allow-recursion { 10.113.25.129; };

#   Return NXDOMAIN if there is no corresponding A record
    auth-nxdomain yes;

};

acl dotone { 10.113.1.0/24; };
acl mysubnet { 10.113.25.0/24; };
acl others { any; };

view "view1" {
#       match-clients { !key mysub-key; !key others-key; key dotone-key; dotone; };
#       allow-transfer { key dotone-key; };
#       server 10.113.25.2 { keys dotone-key; };
        match-clients { !10.113.25.2; !10.113.25.22; 10.113.25.222; dotone; };

        zone "0846101.nasa" IN {
                type master;
                file "/var/named/named.0846101.nasa.one";
                allow-transfer { 10.113.25.129; 10.113.25.222; };
        };

        zone "25.113.10.in-addr.arpa" IN {
                type master;
                file "/var/named/named.10.113.25.one";
                allow-transfer { 10.113.25.129; 10.113.25.222; };
        };

        zone "235.113.140.in-addr.arpa" IN {
                type master;
                file "/var/named/named.10.113.25.viewone";
                allow-transfer { 10.113.25.129; 10.113.25.222; };
        };

        zone "nasa" IN {
                type slave;
                file "slaves/named.nasa.one";
                masters { 10.113.0.254; };
                allow-transfer { 10.113.25.129; 10.113.25.222; };
        };

};

view "viewmine" {
#       match-clients { !key dotone-key; !key others-key; key mysub-key; mysubnet; };
#       allow-transfer { key mysub-key; };
#       server 10.113.25.2 { keys mysub-key; };
        match-clients { !10.113.25.2; !10.113.25.222; 10.113.25.22; mysubnet; };

        zone "0846101.nasa" IN {
                type master;
                file "/var/named/named.0846101.nasa.mysub";
                allow-transfer { 10.113.25.129; 10.113.25.22; };
        };

        zone "25.113.10.in-addr.arpa" IN {
                type master;
                file "/var/named/named.10.113.25.mysub";
                allow-transfer { 10.113.25.129; 10.113.25.22; };
        };

        zone "235.113.140.in-addr.arpa" IN {
                type master;
                file "/var/named/named.10.113.25.viewmysub";
                allow-transfer { 10.113.25.129; 10.113.25.22; };
        };

        zone "nasa" IN {
                type slave;
                file "slaves/named.nasa.mysub";
                masters { 10.113.0.254; };
                allow-transfer { 10.113.25.129; 10.113.25.22; };
        };
};

view "viewothers" {
#       match-clients { !key dotone-key; !key mysub-key; key others-key; others; };
#       allow-transfer { key others-key; };
#       server 10.113.25.2 { keys others-key; };
        match-clients { !10.113.25.22; !10.113.25.222; 10.113.25.2; others; };

        zone "0846101.nasa" IN {
                type master;
                file "/var/named/named.0846101.nasa";
                allow-transfer { 10.113.25.129; 10.113.25.2; };
        };

        zone "25.113.10.in-addr.arpa" IN {
                type master;
                file "/var/named/named.10.113.25";
                allow-transfer { 10.113.25.129; 10.113.25.2; };
        };

        zone "nasa" IN {
                type slave;
                file "slaves/named.nasa";
                masters { 10.113.0.254; };
                allow-transfer { 10.113.25.129; 10.113.25.2; };
        };
};

Create Zone Files 

放在/var/named

正查檔 反查檔 view BIND version
named.0846101.one named.10.113.25.one named.10.113.25.viewone ver.0846101.nasa
named.0846101.mysub named.10.113.25.mysub named.10.113.25.viewmysub
named.0846101 named.10.113.25

Create Forward Zone 

通用的正查檔

vim /var/named/named.0846101.nasa
$TTL            86400

;

; The 0846101.nasa. domain database

;

@               IN      SOA     ns1.0846101.nasa. root.0846101.nasa. (

                        2020050604      ; Serial Year,Month,Day,Version

                        21600           ; Refreash

                        1800            ; Retry

                        604800          ; Expire

                        86400           ; Minimum

                        )

; Define name servers

                IN      NS      ns1.0846101.nasa.
                IN      NS      ns2.0846101.nasa.

; Define localhost

localhost       IN      A       127.0.0.1


; Define the static hosts

0846101.nasa.           IN      A       10.113.25.119

ns1             IN      A       10.113.25.1

ns2             IN      A       10.113.25.2

agent           IN      A       10.113.25.129

router          IN      A       10.113.25.254

; for 10.113.1.0/24
;view            IN      A       140.113.235.131
; for 10.113.25.0/24 
;view            IN      A       140.113.235.151
; for others
view            IN      A       10.113.25.87


; Define some aliases

web             IN      CNAME   agent.0846101.nasa.

nasa            IN      CNAME   nasa.cs.nctu.edu.tw.

Create Reverse Zone 

通用的反查檔

vim /var/named/named.10.113.25
$TTL    600
$ORIGIN 25.113.10.in-addr.arpa.
@       IN      SOA     ns1.0846101.nasa. root.0846101.nasa. ( 2020050502 10800 1200 3600000 3600 )
;
@       IN      NS      ns1.0846101.nasa.
@       IN      NS      ns2.0846101.nasa.
1       IN      PTR     ns1.0846101.nasa.
2       IN      PTR     ns2.0846101.nasa.
129     IN      PTR     agent.0846101.nasa.
254     IN      PTR     router.0846101.nasa.
; for others
87      IN      PTR     view.0846101.nasa.

給10.113.1.0/24的view.0846101.nasa反查

vim /var/named/named.10.113.25.viewone
$TTL    600
$ORIGIN 235.113.140.in-addr.arpa.
@       IN      SOA     ns1.0846101.nasa. root.0846101.nasa. ( 2020050605 10800 1200 3600000 3600 )

131     IN      PTR     view.0846101.nasa.

給10.113.25.0/24的view.0846101.nasa反查

vim /var/named/named.10.113.25.viewmysub
$TTL    600
$ORIGIN 235.113.140.in-addr.arpa.
@       IN      SOA     ns1.0846101.nasa. root.0846101.nasa. ( 2020050605 10800 1200 3600000 3600 )

151     IN      PTR     view.0846101.nasa.

Confuse your BIND version number 

For ns1, use “Name Server 1”.
For ns2, use “Name Server 2”.
Only allow queries from your internal network.

dig version.bind txt chaos @ns1.0846101.nasa

/etc/named.conf新增

view "chaos" CH {
    match-clients { "mysubnet"; };
    zone "bind" CH {
        type master;
        file "ver.0846101.nasa";
        allow-update { none; };
    };
};

view "chaosrefuse" CH {
    match-clients { any; };
    zone "bind" CH {
        type master;
        allow-query { none; };
    };
};
vim /var/named/ver.0846101.nasa
$TTL    3600
@       86400       CH   SOA     ns1.0846101.nasa. root.0846101.nasa. (
                    2020050401      ; serial
                    3600            ; refresh
                    3600            ; retry
                    604800          ; expiry
                    86400 )         ; minimum
;
@                   CH  NS  ns1.0846101.nasa.

version             CH  TXT "Name Server 1"

SSHFP Record 

Add SSHFP record of your machines’ ssh key fingerprint.
The algorithm ECDSA and ED25519 should be implement.
The hash type SHA-256 should be implement.

Generate SSHFP Records Remotely 

Download the script and make it executable

wget https://gist.githubusercontent.com/webernetz/2ca7325555ce7f28f26daf5728386d82/raw/1c18dc43a05478771ac4693401a3c78205a4e710/grabsshfp.sh
chmod u+x grabsshfp.sh

And call it with the DNS name or IP address of the destination:

./grabsshfp.sh 10.113.25.254

會得到

IN  SSHFP   [Algorithm] [Fingerprint Type]  [Fingerprint (in hex)]

Algorithm(第一個數字)

1   -   RSA
2   -   DSA
3   -   ECDSA
4   -   ED25519

Fingerprint Type(第二個數字)

1   -   SHA-1
2   -   SHA-256

Add records to zone files 

加到/var/named/named.0846101.nasa*

; SSHFP
ns1             IN      SSHFP   3 2 3e7b3a4ddc106ac972a2719c475b496b82248abefe06acca8d2e680def01a06c
ns1             IN      SSHFP   4 2 cb2890ea5649b06c24cf7c22e54a2892fcfb73e169ed684e05697fbcb51cf86d

ns2             IN      SSHFP   3 2 3e7b3a4ddc106ac972a2719c475b496b82248abefe06acca8d2e680def01a06c
ns2             IN      SSHFP   4 2 cb2890ea5649b06c24cf7c22e54a2892fcfb73e169ed684e05697fbcb51cf86d

router          IN      SSHFP   3 2 99557b68b0f2fbe86ec510ebc86af25bb1b6a7ef031093cec559c4a8a5b75d01
router          IN      SSHFP   4 2 bdbff4baf39c4a222107697f69401126cb4ffcf52c1163ae025cf8e340d43ceb

agent           IN      SSHFP   3 2 681fecc886e9433284ce3c9630970028e44e7a779f88940fdfac50999c02ad5e
agent           IN      SSHFP   4 2 e1c0088d8ed2f4ed27c990b46a9f75dad7ad0f7fb45356316a637435d3f57c71

Look up SSHFP records

dig router.0846101.nasa sshfp

DNSSEC 

Domain Name System SECurity Extensions
傳統的DNS沒有安全機制,容易遭受攻擊

  • Spoofing
  • Man‐in‐the‐Middle Attack
  • Cache Poisoning Attack

在解析網域名稱的過程中加上驗證的機制
當遇到DNS請求時,會先回上層取得DNSKEY來做認證比對
確保解析網域名稱的過程是安全的,才能進行或回應下一步驟的DNS請求

Based on 

  • PKI (Public Key Infrastructure) Public Key / Private Key
  • Hashing
  • Signature (數位簽章)

三大保證 

  1. 來源驗證性 (Origin Authentication)
  2. 資料完整性 (Data Integrity)
  3. 受驗證的不存在性 (Authenticated Denial of Existence)

Resource Record : DS & RRSI 

Generate KSK 

Key Signing Key

dnssec-keygen -a RSASHA256 -b 2048 -f KSK -n ZONE 0846101.nasa

產生兩個key

K0846101.nasa.+008+29014.key        //public key
K0846101.nasa.+008+29014.private    //private key

Generate ZSK 

Zone Signing Key

dnssec-keygen -a RSASHA256 -b 2048 -n ZONE 0846101.nasa

產生兩個key

K0846101.nasa.+008+00945.key        //public key
K0846101.nasa.+008+00945.private    //private key

我把這四個key放在/var/named/keys

Signing a Zone 

Include keys in zone files /var/named/named.0846101.nasa.one, /var/named/named.0846101.nasa.mysub ,and /var/named/named.0846101.nasa

$INCLUDE        /etc/named/keys/K0846101.nasa.+008+29014.key ;KSK
$INCLUDE        /etc/named/keys/K0846101.nasa.+008+00945.key ;ZSK

NSEC

dnssec-signzone \
-o 0846101.nasa \
-t \
-k /etc/named/keys/K0846101.nasa.+008+29014.key \
/var/named/named.0846101.nasa \
/etc/named/keys/K0846101.nasa.+008+00945.key
Verifying the zone using the following algorithms: RSASHA256.
Zone fully signed:
Algorithm: RSASHA256: KSKs: 1 active, 0 stand-by, 0 revoked
                      ZSKs: 1 active, 0 stand-by, 0 revoked
/var/named/named.0846101.nasa.one.signed
Signatures generated:                       25
Signatures retained:                         0
Signatures dropped:                          0
Signatures successfully verified:            0
Signatures unsuccessfully verified:          0
Signing time in seconds:                 0.026
Signatures per second:                 934.928
Runtime in seconds:                      0.041

NSEC3

dnssec-signzone \
-3 55844b7f \                                       //NSEC3使用的salt值
-H 100 \                                            //NSEC3使用的iteration值
-u \                                                //更新NSEC/NSEC3
-o 0846101.nasa \                                   //domain name
-t \                                                //查看下面參數
-k /etc/named/keys/K0846101.nasa.+008+29014.key \   //KSK publickey
/var/named/named.0846101.nasa \                     //要被簽的zone file
/etc/named/keys/K0846101.nasa.+008+00945.key        //ZSK publickey
Verifying the zone using the following algorithms: RSASHA256.
Zone fully signed:
Algorithm: RSASHA256: KSKs: 1 active, 0 stand-by, 0 revoked
                      ZSKs: 1 active, 0 stand-by, 0 revoked
/var/named/named.0846101.nasa.signed               //簽好的zone file
Signatures generated:                       27
Signatures retained:                         0
Signatures dropped:                          0
Signatures successfully verified:            0
Signatures unsuccessfully verified:          0
Signing time in seconds:                 0.030
Signatures per second:                 891.736
Runtime in seconds:                      0.040

Create Trust Chain 

dnssec-dsfromkey /etc/named/keys/K0846101.nasa.+008+29014.key   //KSK

Imgur Upload DS Record to nasa.
我選擇第二個
Imgur

Configuration 

只列出要新增或修改的地方
.signed的zone files替換上去

vim /etc/named.conf
#Global settings
options {

        dnssec-enable yes;
        dnssec-validation yes;

};


view "view1" {

        zone "0846101.nasa" IN {
                file "/var/named/named.0846101.nasa.one.signed";
        };

};

view "viewmine" {

        zone "0846101.nasa" IN {
                file "/var/named/named.0846101.nasa.mysub.signed";
        };

};

view "viewothers" {

        zone "0846101.nasa" IN {
                file "/var/named/named.0846101.nasa.signed";
        };

};

維護Domain 

  • RR修改
    • 修改原始zone file (rndc freeze)
    • 凍結zone
    • 簽署zone file
    • 解凍zone使其生效 (rndc thaw)
  • 退回DNS
    • 要求上層拿掉DS record

Start the DNS service 

Enable and start DNS service:

systemctl enable named
systemctl start named

Firewall Configuration 

Firewall預設是關的
將DNS的 TCP, UDP port 53打開

firewall-cmd --permanent --add-port=53/tcp
firewall-cmd --permanent --add-port=53/udp
firewall-cmd --reload

Router的iptables規則也要改

vim /etc/sysconfig/iptables
-A INPUT -p tcp --dport 53 -j ACCEPT
-A INPUT -p udp --dport 53 -j ACCEPT
-A FORWARD -p tcp --dport 53 -j ACCEPT
-A FORWARD -p udp --dport 53 -j ACCEPT

Test DNS 

Restart BIND before testing

systemctl restart named

Forward Look up

dig view.0846101.nasa @10.113.25.1

Reverse Look up

dig -x 10.113.25.254 @10.113.25.1

AXFR

dig axfr 0846101.nasa @10.113.25.1

SOA

dig -t soa router.0846101.nasa

Slave DNS Server 

General Configuration 

/etc/named.conf

options {

        listen-on port 53 { any; };

        allow-query     { any; };

        allow-transfer { localhost; 10.113.25.129; };

        version "";

        recursion yes;

        allow-recursion { 10.113.25.129; 10.113.25.119; 10.113.254.25; };

        auth-nxdomain   yes;

        dnssec-enable yes;
        dnssec-validation yes;
};

多個 View 同步到 Slave 

VIEW

  • Add A record for view.{your_domain}.
    • For queries from 10.113.1.x/25
      • Answer 140.113.235.131
    • For queries from 10.113.ID.x/24
      • Answer 140.113.235.151
    • For other queries
      • Answer 10.113.ID.87

兩個方法

  1. TSIG
  2. 給 Slave 多個IP

TSIG 

Transaction Signature
Generate 3 keys in Master DNS

dnssec-keygen -a HMAC-MD5 -b 128 -n Host dotone-key
dnssec-keygen -a HMAC-MD5 -b 128 -n Host mysub-key
dnssec-keygen -a HMAC-MD5 -b 128 -n Host others-key

會在/etc/ssh產生三組Keys
.key的內容cat出來寫入Master、Slave的/etc/named.conf

key "dotone-key" {
       algorithm hmac-md5;
       secret "OvexY/E9LNONtKlDlPERlg==";
};

key "mysub-key" {
       algorithm hmac-md5;
       secret "kZC7vN85HAFzLTrjsKX4tw==";
};

key "others-key" {
       algorithm hmac-md5;
       secret "9ZA6TNRXbaJAimpTsEi2Xw==";
};

ns1/etc/named.conf

acl dotone { 10.113.1.0/24; };
acl mysubnet { 10.113.25.0/24; };
acl others { any; };

view "view1" {
        match-clients { !key mysub-key; !key others-key; key dotone-key; dotone; };
        allow-transfer { key dotone-key; 10.113.25.129; };
        server 10.113.25.2 { keys dotone-key; };

        zone "0846101.nasa" IN {
                type master;
                file "/var/named/named.0846101.nasa.one";
        };

        zone "25.113.10.in-addr.arpa" IN {
                type master;
                file "/var/named/named.10.113.25.one";
        };

        zone "235.113.140.in-addr.arpa" IN {
                type master;
                file "/var/named/named.10.113.25.viewone";
        };

        zone "nasa" IN {
                type slave;
                file "slaves/named.nasa.one";
                masters { 10.113.0.254; };
        };

};

view "viewmine" {
        match-clients { !key dotone-key; !key others-key; key mysub-key; mysubnet; };
        allow-transfer { key mysub-key; 10.113.25.129; };
        server 10.113.25.2 { keys mysub-key; };

        zone "0846101.nasa" IN {
                type master;
                file "/var/named/named.0846101.nasa.mysub";
        };

        zone "25.113.10.in-addr.arpa" IN {
                type master;
                file "/var/named/named.10.113.25.mysub";
        };

        zone "235.113.140.in-addr.arpa" IN {
                type master;
                file "/var/named/named.10.113.25.viewmysub";
        };

        zone "nasa" IN {
                type slave;
                file "slaves/named.nasa.mysub";
                masters { 10.113.0.254; };
        };
};

view "viewothers" {
        match-clients { !key dotone-key; !key mysub-key; key others-key; others; };
        allow-transfer { key others-key; 10.113.25.129; };
        server 10.113.25.2 { keys others-key; };

        zone "0846101.nasa" IN {
                type master;
                file "/var/named/named.0846101.nasa";
        };

        zone "25.113.10.in-addr.arpa" IN {
                type master;
                file "/var/named/named.10.113.25";
        };

        zone "nasa" IN {
                type slave;
                file "slaves/named.nasa";
                masters { 10.113.0.254; };
        };
};

ns2 /etc/named.conf

view "view1" {
        match-clients { !key mysub-key; !key others-key; key dotone-key; dotone; };
        server 10.113.25.1 { keys dotone-key; };

        zone "0846101.nasa" IN {
                type slave;
                file "slaves/named.0846101.nasa.one";
                masters { 10.113.25.1; }; 
                allow-transfer { 10.113.25.129; };
        };

        zone "25.113.10.in-addr.arpa" IN {
                type slave;
                file "slaves/named.10.113.25.one";
                masters { 10.113.25.1; };
                allow-transfer { 10.113.25.129; };
        };

        zone "235.113.140.in-addr.arpa" IN {
                type slave;
                file "slaves/named.10.113.25.viewone";
                masters { 10.113.25.1; };
                allow-transfer { 10.113.25.129; };
        };
        zone "nasa" IN {
                type slave;
                file "slaves/named.nasa.one";
                masters { 10.113.0.254; };
                allow-transfer { 10.113.25.129; };
        };
};

view "viewmine" {
        match-clients { !key dotone-key; !key others-key; key mysub-key; mysubnet; };
        server 10.113.25.1 { keys mysub-key; };

        zone "0846101.nasa" IN {
                type slave;
                file "slaves/named.0846101.nasa.mysub";
                masters { 10.113.25.1; };
                allow-transfer { 10.113.25.129; };
        };

        zone "25.113.10.in-addr.arpa" IN {
                type slave;
                file "slaves/named.10.113.25.mysub";
                masters { 10.113.25.1; };
                allow-transfer { 10.113.25.129; };
        };

        zone "235.113.140.in-addr.arpa" IN {
                type slave;
                file "slaves/named.10.113.25.viewmysub";
                masters { 10.113.25.1; };
                allow-transfer { 10.113.25.129; };
        };
        zone "nasa" IN {
                type slave;
                file "slaves/named.nasa.mysub";
                masters { 10.113.0.254; };
                allow-transfer { 10.113.25.129; };
        };
};

view "viewothers" {
        match-clients { !key dotone-key; !key others-key; key others-key; others; };
        server 10.113.25.1 { keys others-key; };

        zone "0846101.nasa" IN {
                type slave;
                file "slaves/named.0846101.nasa";
                masters { 10.113.25.1; };
                allow-transfer { 10.113.25.129; };
        };

        zone "25.113.10.in-addr.arpa" IN {
                type slave;
                file "slaves/named.10.113.25";
                masters { 10.113.25.1; };
                allow-transfer { 10.113.25.129; };
        };
        zone "nasa" IN {
                type slave;
                file "slaves/named.nasa";
                masters { 10.113.0.254; };
                allow-transfer { 10.113.25.129; };
        };
};

給 Slave 多個IP 

分配IP

10.113.1.0/24 10.113.25.0/24 others
10.113.25.222 10.113.25.22 10.113.25.2

設定

vim /etc/sysconfig/network-scripts/ifcfg-enp0s3
IPADDR1="10.113.25.22"
IPADDR2="10.113.25.222"
PREFIX1="24"
PREFIX2="24"
view "view1" {

        match-clients { dotone; };
        zone "0846101.nasa" IN {
                type slave;
                file "slaves/named.0846101.nasa.one";
                masters { 10.113.25.1; };
                transfer-source 10.113.25.222;
                allow-transfer { 10.113.25.129; 10.113.25.119; 10.113.25.222; };
        };

        zone "25.113.10.in-addr.arpa" IN {
                type slave;
                file "slaves/named.10.113.25.one";
                masters { 10.113.25.1; };
                transfer-source 10.113.25.222;
                allow-transfer { 10.113.25.129; 10.113.25.119; 10.113.25.222; };
        };

        zone "235.113.140.in-addr.arpa" IN {
                type slave;
                file "slaves/named.10.113.25.viewone";
                masters { 10.113.25.1; };
                transfer-source 10.113.25.222;
                allow-transfer { 10.113.25.129; 10.113.25.222; };
        };
        zone "nasa" IN {
                type slave;
                file "slaves/named.nasa.one";
                masters { 10.113.0.254; };
                allow-transfer { 10.113.25.129; 10.113.25.222; };
        };

};

view "viewmine" {

        match-clients { mysubnet; };
        zone "0846101.nasa" IN {
                type slave;
                file "slaves/named.0846101.nasa.mysub";
                masters { 10.113.25.1; };
                transfer-source 10.113.25.22;
                allow-transfer { 10.113.25.129; 10.113.25.119; 10.113.25.22; };
        };

        zone "25.113.10.in-addr.arpa" IN {
                type slave;
                file "slaves/named.10.113.25.mysub";
                masters { 10.113.25.1; };
                transfer-source 10.113.25.22;
                allow-transfer { 10.113.25.129; 10.113.25.119; 10.113.25.22; };
        };

        zone "235.113.140.in-addr.arpa" IN {
                type slave;
                file "slaves/named.10.113.25.viewmysub";
                masters { 10.113.25.1; };
                transfer-source 10.113.25.22;
                allow-transfer { 10.113.25.129; 10.113.25.119; 10.113.25.22; };
        };
        zone "nasa" IN {
                type slave;
                file "slaves/named.nasa.mysub";
                masters { 10.113.0.254; };
                allow-transfer { 10.113.25.129; 10.113.25.119; 10.113.25.22; };
        };
};
view "viewothers" {

        match-clients { others; };
        zone "0846101.nasa" IN {
                type slave;
                file "slaves/named.0846101.nasa";
                masters { 10.113.25.1; };
                transfer-source 10.113.25.2;
                allow-transfer { 10.113.25.129; 10.113.25.119; 10.113.25.2; };
        };

        zone "25.113.10.in-addr.arpa" IN {
                type slave;
                file "slaves/named.10.113.25";
                masters { 10.113.25.1; };
                transfer-source 10.113.25.2;
                allow-transfer { 10.113.25.129; 10.113.25.119; 10.113.25.2; };
        };
        zone "nasa" IN {
                type slave;
                file "slaves/named.nasa";
                masters { 10.113.0.254; };
                allow-transfer { 10.113.25.129; 10.113.25.119; 10.113.25.2; };
        };
};

Firewall 

Firewall預設是關的
將DNS的 TCP, UDP port 53打開

firewall-cmd --permanent --add-port=53/tcp
firewall-cmd --permanent --add-port=53/udp
firewall-cmd --reload

同步 

一般只要Master的zone files有更動
更新好serial 就會自動同步到Slave

但也可以
手動同步Master

rndc retransfer 0846101.nasa IN view1
rndc retransfer 0846101.nasa IN viewmine
rndc retransfer 0846101.nasa IN viewothers