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,之后開起服務

[root@tv.xinfeng.com ~]# vim /etc/named.conf 
[root@tv.xinfeng.com ~]# systemctl start named.service
[root@tv.xinfeng.com ~]# 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 ,在后面加入

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

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

[root@tv.xinfeng.com ~]# 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         
[root@tv.xinfeng.com]# chown :named tv.xinfeng.com.zone 
[root@tv.xinfeng.com]# chmod 640 tv.xinfeng.com.zone 
[root@tv.xinfeng.com ~]# rndc reload
server reload successful

3、測試解析

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

[root@tv.xinfeng.com]# 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

[root@tv.xinfeng.com]# 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

原創文章,作者:N17_信風,如若轉載,請注明出處:http://www.www58058.com/14695

(1)
N17_信風N17_信風
上一篇 2016-04-17
下一篇 2016-04-18

相關推薦

  • 快速運用NFS共享web頁面

    環境:centos7.3最小化三臺,前期準備關閉防火墻和selinux 目的:通過文件共享,使客戶端訪問web服務器時是同樣的頁面。 拓撲圖: 優勢:減少WEB服務器的壓力。 一、安裝軟件 NFS、WEB1、WEB2: #yum install nfs-utils -y WEB1、WEB2: #yum install httpd -y 二、配置 NFS: #…

    2017-04-27
  • 文件、目錄2——Linux基本命令(8)

    1.復制文件和目錄 cp  SRC  DEST 源 目的地 規則: 如果目標目錄下還有一個目錄與源文件同名,則無法復制:            -i 覆蓋前提示        &n…

    2017-07-18
  • 馬哥教育N22期第四周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 root@xuc-virtual-machine:/home/xuc# cp -r /etc/skel/ /home/tuser1 root@xuc-virtual-machine:/…

    Linux干貨 2016-09-06
  • Linux常用文件管理命令

    常用文件管理命令 cat cat命令連接文件并打印到標準輸出設備上,cat經常用來顯示文件的內容 語法 cat(選項)(參數) 選項 -n或-number:有1開始對所有輸出的行數編號; -b或–number-nonblank:和-n相似,只不過對于空白行不編號; -s或–squeeze-blank:當遇到有連續兩行以上的空白行,就代換為一行的空白行; …

    2018-03-11
  • Linux發展史

    Linux發展史 一、歷史 (一)、Unix 1、Unix操作系統是一個強大的多用戶、多任務操作系統,支持多種處理器架構。 2、最早由KenThompson(湯普遜)、Dennis Ritchie(丹尼斯·里奇,C語言之父,Unix之父)和Douglas McIlroy(麥克羅伊,程式設計師)于1969年在AT&T的貝爾實驗室開發。 3、目前它的商標…

    Linux干貨 2016-10-14
  • Linux系統發展歷史

    一、什么是Linux? Linux是一種自由和開放源代碼的類UNIX操作系統。該操作系統的內核由林納斯·托瓦茲在1991年10月5日首次發布。在加上用戶空間的應用程序之后,成為Linux操作系統。Linux也是自由軟件和開放源代碼軟件發展中最著名的例子。只要遵循GNU通用公共許可證,任何個人和機構都可以自由地使用Linux的所有底層源代碼,也可以自由地修改和…

    Linux干貨 2016-10-14
欧美性久久久久