CentOS通過bind配置DNS服務器

一、創建DNS主服務器

1、安裝bind並配置主配置文件

主服務器爲CentOS 7,主服務地址爲172.16.11.55

安裝bind

[root@xinfeng ~]# yum install bind

安裝完成後查看是否存在/var/named/named.ca

這個文件包含了互聯網上根服務器對應的名字和地址

備份一下/etc/named.conf

配置主配置文件/etc/named.conf

[root@xinfeng named]# vim /etc/named.conf 

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
        listen-on port 53 {  172.16.11.55; 127.0.0.1;  };
#這裏要加入對外監聽53端口的主機地址
//        listen-on-v6 port 53 { ::1; };
#註釋掉ipv6的設置
        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     { any; };
#將這裏改爲any,表示服務器允許所有地址來查詢
        /* 
         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
         - If you are building a RECURSIVE (caching) DNS server, you need to enable 
           recursion. 
         - If your recursive DNS server has a public IP address, you MUST enable access 
           control to limit queries to your legitimate users. Failing to do so will
           cause your server to become part of large scale DNS amplification 
           attacks. Implementing BCP38 within your network would greatly
           reduce such attack surface 
        */
        recursion yes;
#這裏爲yes表示允許遞歸查詢

//        dnssec-enable yes;
//        dnssec-validation yes;

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

//        managed-keys-directory "/var/named/dynamic";
#從dnssec開始到此全部註釋掉
        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};

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";

改完之後重啓服務,查看53號端口是否對外監聽

[root@xinfeng named]# systemctl restart named.service
[root@xinfeng named]# ss -tunl | grep 53
udp    UNCONN     0      0      172.16.11.55:53                    *:*                  
udp    UNCONN     0      0      127.0.0.1:53                    *:*                  
tcp    LISTEN     0      10     172.16.11.55:53                    *:*                  
tcp    LISTEN     0      10     127.0.0.1:53                    *:*                  
tcp    LISTEN     0      128    127.0.0.1:953                   *:*                  
tcp    LISTEN     0      128     ::1:953                  :::*    
#可以看到已經監聽到53號端口上了

在主配置文件中定義區域,編輯/etc/named.rfc1912.zones

[root@xinfeng named]# 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; };
};
#在最後增加了一個區域叫xinfeng.com
zone "xinfeng.com" IN {
#type是服務器類型,master表示爲主服務器
        type master;
#file是區域解析庫文件的名稱,這個文件放在/var/named/下
        file "xinfeng.com.zone";
};

2、配置正向區域解析,並用dig測試

編輯完後保存,然後到/var/named/下面去創建一個xinfeng.com.zone的文件

[root@xinfeng named]# vim xinfeng.com.zone
$TTL 86400
#TTL表示客戶端得到結果後的可緩存時長,單位是秒,這裏是1天,可從全局繼承
$ORIGIN xinfeng.com.
#ORIGIN定義爲xinfeng.com.【注意最後有一個點】,這裏定義之後,就可用後面@代替xinfeng.com.
@       IN      SOA     ns1.xinfeng.com. admin.xinfeng.com. (
#SOA表示起始授權紀錄,之後跟上當前區域主DNS的名稱,然後跟上當前主區域的管理員郵箱,郵箱中的@用.替換
                        2016041718
#2016041718表示序列號,編輯一次此文件就必須手動加1
                        1H
#1H表示刷新時間爲1消失
                        5M
#5M表示重試時間爲5分鐘
                        7D
#7D表示過期時間爲7天,也可以寫成1W
                        1D )
#1D表示否定答案的時間爲1天
        IN      NS      ns1
#NS專用於表示當前區域的DNS服務器,之後必須跟一個A紀錄
ns1     IN      A       172.16.11.55
#A表示ipv4正向解析,ipv6爲AAAA,這裏解析ns1.xinfeng.com到172.16.11.55
www     IN      A       172.16.11.55
#這裏解析www.xinfeng.com到172.16.11.55
ftp     IN      CNAME   www
#CNAME表示別名,這裏解析ftp.xinfeng.com到www.xinfeng.com,最終解析到172.16.11.55

保存之後用named-check來檢查主配置文件和區域解析文件是否有語法錯誤

[root@xinfeng named]# named-checkconf
[root@xinfeng named]# named-checkzone "xinfeng.com" /var/named/xinfeng.com.zone 
zone xinfeng.com/IN: loaded serial 2016041718
OK

OK表示沒有語法錯誤

之後一定要記得改變文件/var/named/xinfeng.com.zone的屬組爲named,並改變權限爲640

[root@xinfeng named]# ll
-rw-r--r--. 1 root  root   190 4月  14 02:42 xinfeng.com.zone
[root@xinfeng named]# chown :named xinfeng.com.zone 
[root@xinfeng named]# chmod 640 xinfeng.com.zone 
[root@xinfeng named]# ll
-rw-r-----. 1 root  named  190 4月  14 02:42 xinfeng.com.zone

然後重啓named服務

[root@xinfeng named]# systemctl restart named.service

安裝dig測試,dig在bind-utils包內

[root@xinfeng named]# yum install bind-utils
[root@xinfeng named]# dig -t A xinfeng.com @172.16.11.55

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A xinfeng.com @172.16.11.55
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7034
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;xinfeng.com.			IN	A

;; AUTHORITY SECTION:
xinfeng.com.		86400	IN	SOA	ns1.xinfeng.com. admin.xinfeng.com.xinfeng.com. 2016041719 3600 300 604800 86400

;; Query time: 0 msec
;; SERVER: 172.16.11.55#53(172.16.11.55)
;; WHEN: 四 4月 14 04:24:15 CST 2016
;; MSG SIZE  rcvd: 98

[root@xinfeng named]# dig -t A www.xinfeng.com @172.16.11.55

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.xinfeng.com @172.16.11.55
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36364
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.xinfeng.com.		IN	A

;; ANSWER SECTION:
www.xinfeng.com.	86400	IN	A	172.16.11.55

;; AUTHORITY SECTION:
xinfeng.com.		86400	IN	NS	ns1.xinfeng.com.

;; ADDITIONAL SECTION:
ns1.xinfeng.com.	86400	IN	A	172.16.11.55

;; Query time: 1 msec
;; SERVER: 172.16.11.55#53(172.16.11.55)
;; WHEN: 四 4月 14 04:24:56 CST 2016
;; MSG SIZE  rcvd: 94

可以看到測試能成功解析

3、配置反向區域解析

依然要在主配置文件定義區域,編輯/etc/named.rfc1912.zone

[root@xinfeng named]# vim /etc/named.rfc1912.zones 
zone "xinfeng.com" IN {
        type master;
        file "xinfeng.com.zone";
};
#在剛纔的正向解析之後加入下面的內容,注意網絡地址要反寫
zone "11.16.172.in-addr.arpa" IN {
        type master;
        file "172.16.11.zone";
};

保存之後在/var/named/中增加172.16.11.zone的區域解析庫文件

[root@xinfeng named]# vim 172.16.11.zone
$TTL 86400
$ORIGIN 11.16.172.in-addr.arpa.
@       IN      SOA     ns1.xinfeng.com. admin.xinfeng.com. (
                        2016041720
                        1H
                        5M
                        7D
                        1D )
        IN      NS      ns1.xinfeng.com.
55      IN      PTR     ns1.xinfeng.com.
55      IN      PTR     www.xinfeng.com.
#這裏的不能有A或者AAAA紀錄,PTR就是反向解析的意思,注意地址反寫,其他的和正向解析沒有區別

保存之後記得改屬組和權限,並檢查語法

[root@xinfeng named]# chmod 640 172.16.11.zone
[root@xinfeng named]# chown :named 172.16.11.zone
[root@xinfeng named]# named-checkzone "11.16.172.in-addr.arpa" /var/named/172.16.11.zone 
zone 11.16.172.in-addr.arpa/IN: loaded serial 2016041720
OK
[root@xinfeng named]# named-checkconf

顯示OK語法檢測OK,重啓服務,並用dig測試

[root@xinfeng named]# systemctl restart named.service
[root@xinfeng named]# dig -x 172.16.11.55 @172.16.11.55

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -x 172.16.11.55 @172.16.11.55
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50285
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;55.11.16.172.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
55.11.16.172.in-addr.arpa. 86400 IN	PTR	www.xinfeng.com.
55.11.16.172.in-addr.arpa. 86400 IN	PTR	ns1.xinfeng.com.

;; AUTHORITY SECTION:
11.16.172.in-addr.arpa.	86400	IN	NS	ns1.xinfeng.com.

;; ADDITIONAL SECTION:
ns1.xinfeng.com.	86400	IN	A	172.16.11.55

;; Query time: 0 msec
;; SERVER: 172.16.11.55#53(172.16.11.55)
;; WHEN: 四 4月 14 04:09:54 CST 2016
;; MSG SIZE  rcvd: 131

可以看到測試正常

4、配置泛域名解析

編輯正向區域解析文件/var/nemad/xinfeng.com.zone,在其中加入*的A紀錄,並且序列號加1

[root@xinfeng named]# vim /var/named/xinfeng.com.zone 

$TTL 86400
$ORIGIN xinfeng.com.
@       IN      SOA     ns1.xinfeng.com. admin.xinfeng.com. (
                        2016041719
                        1H
                        5M
                        7D
                        1D )
        IN      NS      ns1
ns1     IN      A       172.16.11.55
www     IN      A       172.16.11.55
ftp     IN      CNAME   www
*       IN      A       172.16.11.55

檢查語法錯誤

[root@xinfeng named]# named-checkzone "xinfeng.com" /var/named/xinfeng.com.zone 
zone xinfeng.com/IN: loaded serial 2016041719
OK

重載文件並用dig測試

[root@xinfeng named]# rndc reload
server reload successful
[root@xinfeng named]# dig -t A nfs.xinfeng.com @172.16.11.55

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A nfs.xinfeng.com @172.16.11.55
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37887
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;nfs.xinfeng.com.		IN	A

;; ANSWER SECTION:
nfs.xinfeng.com.	86400	IN	A	172.16.11.55

;; AUTHORITY SECTION:
xinfeng.com.		86400	IN	NS	ns1.xinfeng.com.

;; ADDITIONAL SECTION:
ns1.xinfeng.com.	86400	IN	A	172.16.11.55

;; Query time: 0 msec
;; SERVER: 172.16.11.55#53(172.16.11.55)
;; WHEN: 四 4月 14 04:21:13 CST 2016
;; MSG SIZE  rcvd: 94

測試正常

二、配置從服務器進行主從複製

新建一臺從服務器,服務器系統爲CentOS 6,地址爲172.16.11.57

1、安裝bind和bind-utils,並用dig測試看是否能解析到剛纔我們配置的主服務

[root@xinfeng2 ~]# yum install bind
[root@xinfeng2 ~]# yum install bind-utils
[root@xinfeng2 ~]# service named start
[root@xinfeng2 ~]# ss -tunl | grep 53     
udp    UNCONN     0      0              127.0.0.1:53                    *:*         
tcp    LISTEN     0      3              127.0.0.1:53                    *:*     
tcp    LISTEN     0      128                  ::1:953                  :::*     
tcp    LISTEN     0      128            127.0.0.1:953                   *:*   
[root@xinfeng2 ~]# dig -t axfr xinfeng.com @172.16.11.55

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.7 <<>> -t axfr xinfeng.com @172.16.11.55
;; global options: +cmd
xinfeng.com.		86400	IN	SOA	ns1.xinfeng.com. admin.xinfeng.com.xinfeng.com. 2016041719 3600 300 604800 86400
xinfeng.com.		86400	IN	NS	ns1.xinfeng.com.
ftp.xinfeng.com.	86400	IN	CNAME	www.xinfeng.com.
ns1.xinfeng.com.	86400	IN	A	172.16.11.55
www.xinfeng.com.	86400	IN	A	172.16.11.55
xinfeng.com.		86400	IN	SOA	ns1.xinfeng.com. admin.xinfeng.com.xinfeng.com. 2016041719 3600 300 604800 86400
;; Query time: 1 msec
;; SERVER: 172.16.11.55#53(172.16.11.55)
;; WHEN: Thu Apr 14 12:31:13 2016
;; XFR size: 6 records (messages 1, bytes 191) dig -t axfr xinfeng.com @172.16.11.55

測試結果是正常的

2、配置從服務器的主配置文件

在/etc/named.conf中按照主服務配置一樣修改,對外監聽端口換成本機的也就是172.16.11.57

[root@xinfeng2 ~]# vim /etc/named.conf

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
        listen-on port 53 { 172.16.11.57; 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     { any; };
        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";
"/etc/named.conf" 43L, 1027C

編輯/etc/named.rfc1912.zone文件,在最後加入

[root@xinfeng2 ~]# vim /etc/named.rfc1912.zones 
zone "xinfeng.com" IN {
        type slave;
        masters { 172.16.11.55; };
        file "slaves/xinfeng.com.zone";
};
    也就是說他的區域解析庫文件放置在/var/named/slaves/下叫xinfeng.com.zone,這裏我們不需要去創建編輯這個區域解析庫文件,因爲之後主從同步之後,會自動獲得這個文件,重啓服務
[root@xinfeng2 ~]# service named restart
Stopping named: .                                          [  OK  ]
Starting named:                                            [  OK  ]

3、在主服務器上定義從服務器的正向解析庫文件

編輯主DNS服務器的/var/named/xinfeng.com.zone文件在其中加入從服務器的A紀錄和NS紀錄,這裏是ns2

[root@xinfeng named]# vim /var/named/xinfeng.com.zone 

$TTL 86400
$ORIGIN xinfeng.com.
@       IN      SOA     ns1.xinfeng.com. admin.xinfeng.com. (
                        2016041720
                        1H
                        5M
                        7D
                        1D )
        IN      NS      ns1
        IN      NS      ns2
ns1     IN      A       172.16.11.55
ns2     IN      A       172.16.11.57
www     IN      A       172.16.11.55
ftp     IN      CNAME   www

主服務器重載服務

[root@xinfeng named]# rndc reload
server reload successful

到從服務器也就是172.16.11.57下查看區域解析庫文件是否同步

[root@xinfeng2 ~]# cd /var/named/slaves/
[root@xinfeng2 slaves]# ls
xinfeng.com.zone

可以看到區域解析庫文件已同步成功

4、在從服務器上定義主配置文件,定義反向解析庫文件位置

編輯主服務器也就是172.16.11.55的反向解析文件,加入ns2的A紀錄和NS紀錄,然後重載服務

[root@xinfeng named]# vim /var/named/172.16.11.zone 

$TTL 86400
$ORIGIN 11.16.172.in-addr.arpa.
@       IN      SOA     ns1.xinfeng.com. admin.xinfeng.com. (
                        2016041720
                        1H
                        5M
                        7D
                        1D )
        IN      NS      ns1.xinfeng.com.
        IN      NS      ns2.xinfeng.com.
55      IN      PTR     ns1.xinfeng.com.
57      IN      PTR     ns2.xinfeng.com.
55      IN      PTR     www.xinfeng.com.
[root@xinfeng named]# rndc reload
server reload successful

在從服務器上也就是172.16.11.57上編輯/etc/named.rfc1912.zone文件,在最後加入

[root@xinfeng2 ~]# vim /etc/named.rfc1912.zones 
zone "11.16.172.in-addr.arpa" IN {
        type slave;
        masters { 172.16.11.55; };
        file "slaves/172.16.11.zone";
};

完成後重載從服務器,就會同步主服務器上的反向解析庫文件

[root@xinfeng2 ~]# rndc reload
server reload successful
[root@xinfeng2 ~]# cd /var/named/slaves/
[root@xinfeng2 slaves]# ls
172.16.11.zone  xinfeng.com.zone
[root@xinfeng2 slaves]# cat 172.16.11.zone
$ORIGIN .
$TTL 86400	; 1 day
11.16.172.in-addr.arpa	IN SOA	ns1.xinfeng.com. admin.xinfeng.com. (
				2016041720 ; serial
				3600       ; refresh (1 hour)
				300        ; retry (5 minutes)
				604800     ; expire (1 week)
				86400      ; minimum (1 day)
				)
			NS	ns1.xinfeng.com.
$ORIGIN 11.16.172.in-addr.arpa.
55			PTR	ns1.xinfeng.com.
			PTR	www.xinfeng.com.

區域解析庫文件同步成功

需要注意的是,主從服務器的bind版本需要一致,而且一定不要更改從服務器的區域解析庫文件,只需要改主服務器的區域解析庫文件。

三、子域授權

父域爲172.16.11.55,子域爲172.16.9.9

1、定義父域

進入父域服務器172.16.11.55,編輯/var/named/xinfeng.com.zone也就是父域的正向解析庫文件,在其中加入子域的NS紀錄和A紀錄

[root@xinfeng ~]# vim /var/named/xinfeng.com.zone 
$TTL 86400
$ORIGIN xinfeng.com.
@       IN      SOA     ns1.xinfeng.com. admin.xinfeng.com. (
                        2016041720
                        1H
                        5M
                        7D
                        1D )
        IN      NS      ns1
        IN      NS      ns2
ns1     IN      A       172.16.11.55
ns2     IN      A       172.16.11.57
www     IN      A       172.16.11.55
ftp     IN      CNAME   www
tv      IN      NS      ns1.ops
ns1.ops IN      A       172.16.9.9
[root@xinfeng ~]# named-checkzone "xinfeng.com" /var/named/xinfeng.com.zone 
zone xinfeng.com/IN: loaded serial 2016041720
OK
[root@xinfeng ~]# rndc reload
server reload successful

檢查語法正確,並重載後,

2、定義子域

進入子域服務器172.16.9.9

新服務器重新編輯/etc/named.conf,之後開起服務

[[email protected] ~]# vim /etc/named.conf 
[[email protected] ~]# systemctl start named.service
[[email protected] ~]# ss -tunl | grep 53
udp    UNCONN     0      0      172.16.9.9:53                    *:*                  
udp    UNCONN     0      0      127.0.0.1:53                    *:*                  
tcp    LISTEN     0      10     172.16.9.9:53                    *:*                  
tcp    LISTEN     0      10     127.0.0.1:53                    *:*                  
tcp    LISTEN     0      128    127.0.0.1:953                   *:*                  
tcp    LISTEN     0      128     ::1:953                  :::*

編輯子域172.16.9.9的/etc/named.rfc1912.zones ,在後面加入

[[email protected] ~]# vim /etc/named.rfc1912.zones 
zone "tv.xinfeng.com" IN {
        type master;
        file "tv.xinfeng.com.zone";
};
[[email protected] ~]# rndc reload
server reload successful

編輯子域172.16.9.9的/var/named/tv.xinfeng.com.zone

[[email protected] ~]# vim /var/named/tv.xinfeng.com.zone
$TTL 1d
$ORIGIN tv.xinfeng.com.
@       IN      SOA     ns1.tv.xinfeng.com. admin.tv.xinfeng.com. (
                        2016041722
                        1H
                        10M
                        3D
                        1D )
        IN      NS      ns1
ns1     IN      A       172.16.9.9
www     IN      A       172.16.9.9         
[[email protected]]# chown :named tv.xinfeng.com.zone 
[[email protected]]# chmod 640 tv.xinfeng.com.zone 
[[email protected] ~]# rndc reload
server reload successful

3、測試解析

測試子域能否解析自己範圍的

[[email protected]]# dig -t A ns1.tv.xinfeng.com @172.16.9.9
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A ns1.tv.xinfeng.com @172.16.9.9
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56031
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ns1.tv.xinfeng.com.INA
;; ANSWER SECTION:
ns1.tv.xinfeng.com.    86400    IN    A    172.16.9.9
;; AUTHORITY SECTION:
tv.xinfeng.com.        86400    IN    NS    ns1.tv.xinfeng.com.
;; Query time: 0 msec
;; SERVER: 172.16.9.9#53(172.16.9.9)
;; WHEN: 一 3月 21 07:58:01 CST 2016
;; MSG SIZE  rcvd: 77

測試成功,測試父域能否解析子域的

[root@xinfeng ~]# dig -t A www.tv.xinfeng.com @172.16.11.55

; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A www.tv.xinfeng.com @172.16.11.55
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 61635
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.tv.xinfeng.com.		IN	A

;; Query time: 2 msec
;; SERVER: 172.16.11.55#53(172.16.11.55)
;; WHEN: 四 4月 14 06:38:48 CST 2016
;; MSG SIZE  rcvd: 47

測試成功

四、區域轉發

1、父域定義全部轉發

在父域服務器172.16.11.55編輯/etc/named.conf主配置文件

[root@xinfeng ~]# vim /etc/named.conf
#在options中註釋掉
//      allow-query     { any; };
#在options中增加
        forward first;
        forwarders { 114.114.114.114; };
[root@xinfeng ~]# rndc reload
server reload successful

2、子域定義區域轉發

在子域服務器172.16.9.9編輯/etc/named.rfc1912.zones文件,在最後添加zone

[[email protected]]# vim /etc/named.rfc1912.zones
zone "xinfeng.com" IN {
        type forward;
        forward only;
        forwarders { 172.16.11.55; };
};
[root@localhost named]# rndc reload
server reload successful

注意】:若全部轉發和區域轉發在一臺服務器上同時啓用,則能精確匹配區域轉發的則區域轉發,其他的由全部轉發負責

五、view

1、編輯DNS服務器的主配置文件/etc/named.conf,將其中的默認zone剪切到/etc/named.rfc1912.zone中

[root@xinfeng ~]# vim /etc/named.conf
#將以下刪除
zone "." IN {
        type hint;
        file "named.ca";
};
[root@xinfeng ~]# vim /etc/named.rfc1912.zones
#放在此文件最頂端

2、編輯/etc/named.conf,在頂端定義幾個acl

[root@xinfeng ~]# vim /etc/named.conf
acl mynet {
        172.16.0.0/16;
        127.0.0.0/8;
};

3、編輯/etc/named.rfc1912.zone

[root@xinfeng ~]# vim /etc/named.rfc1912.zones
view internal {
        match-clients { mynet; };
        allow-recursion { mynet; };
zone {
...};
zone {
...};
zone{
...};

};
#用view來控制所有zone
[root@xinfeng ~]# named-checkconf 
[root@xinfeng ~]# systemctl restart named.service

把能和172.16.11.55的主機地址加入/etc/named.rfc1912.zone的match-clients,然後用dig測試,再刪除測試

4、注意事項

一個bind服務器可定義多個view,每個view中可定義一個或多個zone

每個view用一來匹配一組客戶端

多個view內可能需要對同一個區域進行解析,但使用不同的區域解析庫文件

一旦啓用了view,所有的zone都只能定義在view中

僅有必要在匹配到允許遞歸請求的客戶所在view中定義根區域

客戶端請求到達時,是自上而下檢查每個view所服務的客戶端列表

六、總結

配置一個DNS服務器的過程:

1、配置DNS主配置文件:/etc/named.conf

2、定義區域文件:/etc/named.rfc1912.zone

3、配置區域文件中對應的區域解析庫文件:/var/named/ZONE_NAME.zone

4、重載服務:rndc reload

5、測試:dig


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