一、基础及正向区域配置

1、首先安装bind(以cnetos6.7为例)

[root@centfils ~]# yum install bind -y

#bind主要为Linux主机提供DNS解析服务,程序包名为bind,程序名为named
#主要安装的程序包为:bind,bind-libs(提供共享库),bind-utils(提供测试解析工具);


2、先备份主配置文件,然后在编辑主配置文件,配置缓存名称服务器

[root@centfils ~]# cp /etc/named.conf{,.bak}
[root@centfils ~]# vim /etc/named.conf

#修改全局配置中的监听地址,加上本机可与外网通信的地址(192.168.0.196)
#加上环回地址为可让本机自我解析,并注释掉允许哪些主机可以解析
options {
        listen-on port 53 { 192.168.0.196; 127.0.0.1; };    #监听地址
        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     { localhost; };        #或者将localhost改为any
        recursion yes;                         #是否允许递归,yes为是
#以下的dnssec建议关闭,直接删除或者注释掉

[root@centfils ~]# service named restart
停止 named:                                               [确定]
启动 named:                                               [确定]
#修改完配置文件后重启named服务

[root@centfils ~]# ss -tunlp | grep :53
udp    UNCONN     0      0          192.168.0.196:53                    *:*      users:(("named",7494,513))
#监听开启,可以与外网主机通信了


3、配置主DNS名称服务器

(1)在主配置文件中定义区域

[root@centfils ~]# vim /etc/named.rfc1912.zones
zone "magedu.com" IN {
        type master;
        file "magedu.com.zone";
};
[root@centfils ~]# named-checkconf                #自动检查主配置文件是否有语法错误

(2)定义区域解析库文件

[root@centfils ~]# cd /var/named
[root@centfils named]# vim magedu.com.zone
$TTL 86400
$ORIGIN magedu.com.
@	IN	SOA	ns1.magedu.com.	admin.magedu.com (
			2016091201  ;序列号
			1H	;刷新时间
			5M	;重试时间
			7D	;过期时间
			1D	;否定答案的TTL值
)
	IN	NS	ns1.magedu.com.
	IN	NS	ns2.magedu.com.
	IN	MX 10	mx1
	IN	MX 20	mx2
ns1	IN	A	192.168.0.196
ns2	IN	A	192.168.0.100
mx1	IN	A	192.168.0.196
mx2	IN	A	192.168.0.100
www	IN	A	192.168.0.196
ftp	IN	CNAME	www

[root@centfils named]# named-checkzone "magedu.com" /var/named/magedu.com.zone 
zone magedu.com/IN: loaded serial 2016091201
OK
#检查指定区域的区域解析库文件是否有语法错误

[root@centfils named]# chown :named magedu.com.zone        #修改文件属组
[root@centfils named]# chmod 640 magedu.com.zone           #修改文件权限,其他人无权访问
[root@centfils named]# service named restart               #重启服务
停止 named:                                               [确定]
启动 named:                                               [确定]


4、正向解析区域配置完成,测试配置

[root@centfils ~]# dig -t A www.magedu.com @192.168.0.196            # @为本地解析

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -t A www.magedu.com @192.168.0.196
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61816
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

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

;; ANSWER SECTION:
www.magedu.com.		86400	IN	A	192.168.0.196

;; AUTHORITY SECTION:
magedu.com.		86400	IN	NS	ns2.magedu.com.
magedu.com.		86400	IN	NS	ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		86400	IN	A	192.168.0.196
ns2.magedu.com.		86400	IN	A	192.168.0.100

;; Query time: 10 msec
;; SERVER: 192.168.0.196#53(192.168.0.196)
;; WHEN: Mon Sep 12 17:21:32 2016
;; MSG SIZE  rcvd: 116


5、重读文件

[root@centfils ~]# service named reload
重新载入named:                                             [确定]

#重启服务在生产环境容易造成巨大损失,所以一般重载配置文件即可


二、反向区域配置

1、定义区域

[root@centfils named]# vim /etc/named.rfc1912.zones 
zone "0.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.0.zone";
};

2、反向区域文件配置

[root@centfils named]# vim 192.168.0.zone 
$TTL 86400
$ORIGIN 0.168.192.in-addr.arpa.
@	IN	SOA	ns1.magedu.com. admin.magedu.com (
			2016091201
			1H
			5M
			7D
			1D )
	IN	NS	ns1.magedu.com.
	IN	NS	ns2.magedu.com.
196	IN	PTR	ns1.magedu.com.
196	IN	PTR	www.magedu.com.
196	IN	PTR	mx1.magedu.com.
100	IN	PTR	mx2.magedu.com.
100	IN	PTR	ns2.magedu.com.

#注意:不需要MX和A,以及AAAA记录,以PTR记录为主

[root@centfils named]# chown :named 192.168.0.zone 
[root@centfils named]# chmod 640 192.168.0.zone 

#检查反向区域的语法
[root@centfils named]# named-checkzone "0.168.192.in-addr.arpa" 192.168.0.zone 
zone 0.168.192.in-addr.arpa/IN: loaded serial 2016091201
OK

#重载文件
[root@centfils named]# service named reload
重新载入named:                                             [确定]

3、反向解析区域配置完成,测试

[root@centfils named]# dig -x 192.168.0.196 @192.168.0.196

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6 <<>> -x 192.168.0.196 @192.168.0.196
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14252
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 2

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

;; ANSWER SECTION:
196.0.168.192.in-addr.arpa. 86400 IN	PTR	mx1.magedu.com.
196.0.168.192.in-addr.arpa. 86400 IN	PTR	ns1.magedu.com.
196.0.168.192.in-addr.arpa. 86400 IN	PTR	www.magedu.com.

;; AUTHORITY SECTION:
0.168.192.in-addr.arpa.	86400	IN	NS	ns1.magedu.com.
0.168.192.in-addr.arpa.	86400	IN	NS	ns2.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		86400	IN	A	192.168.0.196
ns2.magedu.com.		86400	IN	A	192.168.0.100

;; Query time: 2 msec
;; SERVER: 192.168.0.196#53(192.168.0.196)
;; WHEN: Mon Sep 12 18:52:45 2016
;; MSG SIZE  rcvd: 172