一、基础及正向区域配置

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

1
2
3
4
[root@centfils ~] # yum install bind -y
 
#bind主要为Linux主机提供DNS解析服务,程序包名为bind,程序名为named
#主要安装的程序包为:bind,bind-libs(提供共享库),bind-utils(提供测试解析工具);


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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[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)在主配置文件中定义区域

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[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、正向解析区域配置完成,测试配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[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、重读文件

1
2
3
4
[root@centfils ~] # service named reload
重新载入named:                                             [确定]
 
#重启服务在生产环境容易造成巨大损失,所以一般重载配置文件即可


二、反向区域配置

1、定义区域

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

2、反向区域文件配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[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、反向解析区域配置完成,测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[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