概述:

    本篇为DNS服务器内容的第二部分主要介绍了如何配置DNS服务器的正向区域和饭向区域,以及主从DNS服务器和子域授权,转发服务器等相关内容

========================================================================

配置一个正向区域

 1.配置步骤:

配置前提:

  • 首先要在互联网注册一个域名;

  • 其次,你的这台DNS服务器要是一个互联网上的主机,有互联网的地址;

  • 最后,在注册商那里修改 NS 记录指向你的DNS服务器的IP地址即可

配置解析一个正向区域:

   1)定义区域;

   2)建立区域数据文件;

   3)权限及属主修改

   4)让服务器重载配置文件和区域数据文件即可

定义区域

  • 注意:区域名即为域名

在主配置文件中或主配置文件辅助配置文件中实现;

wKiom1i6i6iBeIXXAAAkqxlUmQQ080.png

ZONE_NAME:

  • 表示要解析的域名;正解时就为域名本身,如:magedu.com;反解的时候有固定格式:ip网段反向.in-addr.arpa。

type:

  • 该zone的类型,主要类型有:针对根的hint;主DNS的master,从DNS的slave和专门用于转发的域类型forward,除了根外默认为master

file:该zone的文件名称

建立区域解析库数据文件(主要记录为A或AAAA)

在/var/named目录下建立区域数据文件;(定义资源记录等)

示例:文件为/var/named/.magedu.com.zone

wKioL1i6kRejEHtaAABV1DJdsBM492.png

权限及属主修改

  • chgrup named /var/named/magedu.com.zone

  • chmod o=  /var/named/magedu.com.zone

主配置文件语法检查,解析库文件语法检查

  • named-checkconf 

  • named-checkzone ZONE_NAM ZONE_FILE

让服务器重载配置文件和区域数据文件

  • rndc status|reload 或者 service named reload

演示步骤如下:

 1.定义区域,编辑配置文件/etc/named.rfc1912.zones,在最后添加自己定义的域即可

[root@centos7 ~]# vim /etc/named.rfc1912.zones
 zone "magedu.com" IN {
         type master;          # 指定zone的类型
         file "magedu.com.zone";  # 该zone的名称
 };

 2.在/var/named目录下建立区域数据库文件

[root@centos7 ~]# cd /var/named

# 创建对应的区域数据库文件
[root@centos7 named]# vim magedu.com.zone
$TTL 3600            # 定义TTL值,为3600s
$ORIGIN magedu.com.  # 当前区域的名字,会自动补全
@      IN      SOA     ns1.magedu.com.  dnsadim.magedu.com. (
                       2017100501
		       1H
		       10M
		       3D
		       1D )
       IN      NS         ns1             # 要对应一条A记录
       IN      MX      10 mx1             # 要对应一条A记录
       IN      MX      20 mx2             # 要对应一条A记录
ns1    IN      A       	  192.168.1.112
mx1    IN      A          192.168.1.113
mx2    IN      A          192.168.1.114
www    IN      A          192.168.1.112
web    IN      CNAME      www              # 定义 www 的别名为 web
bbs    IN      A          192.168.16.115
bbs    IN      A          192.168.16.116

 3.主配置文件语法检查,解析库文件语法检查

# 主配置文件语法检查
[root@centos7 named]# named-checkconf  

# 解析库语法检查
[root@centos7 named]# named-checkzone magedu.com /var/named/magedu.com.zone  
zone magedu.com/IN: loaded serial 2016100501
OK

 4.重新加载区域 rndc status|reload;service named reload

[root@centos7 named]# rndc reload # 重新加载
server reload successful

[root@centos7 named]# rndc status
version: 9.9.4-RedHat-9.9.4-29.el7 <id:8f9657aa>
CPUs found: 4
worker threads: 4
UDP listeners per interface: 4
number of zones: 102    # 原来是101,现在变为102,加载成功
debug level: 0
xfers running: 0
xfers deferred: 0
tcp clients: 0/100
server is up and running

 5.测试能否解析

[root@centos7 named]# host -t A www.magedu.com
www.magedu.com has address 192.168.1.112

[root@centos7 named]# host -t A bbs.magedu.com  
bbs.magedu.com has address 192.168.16.116
bbs.magedu.com has address 192.168.16.115

[root@centos7 named]# host -t A bbs.magedu.com
bbs.magedu.com has address 192.168.16.115
bbs.magedu.com has address 192.168.16.116

[root@centos7 named]# host -t A bbs.magedu.com
bbs.magedu.com has address 192.168.16.116
bbs.magedu.com has address 192.168.16.115

[root@centos7 named]# dig -t A www.magedu.com

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

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

;; ANSWER SECTION:
www.magedu.com.		3600	IN	A	192.168.1.112

;; AUTHORITY SECTION:
magedu.com.		3600	IN	NS	ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		3600	IN	A	192.168.1.112

;; Query time: 0 msec
;; SERVER: 192.168.1.112#53(192.168.1.112)
;; WHEN: Sat Mar 04 18:11:29 CST 2017
;; MSG SIZE  rcvd: 93

 6.修改权限(640)和属组

# 修改属组为named
[root@centos7 named]# chown :named magedu.com.zone 

# 修改权限使其他用户没有任何权限
[root@centos7 named]# chmod o= magedu.com.zone     
[root@centos7 named]# ll
total 20
drwxrwx--- 2 named named   22 Oct  4 14:49 data
drwxrwx--- 2 named named   30 Oct  4 15:06 dynamic
-rw-r----- 1 root  named  491 Oct  5 13:04 magedu.com.zone  
-rw-r----- 1 root  named 2076 Jan 28  2013 named.ca
-rw-r----- 1 root  named  152 Dec 15  2009 named.empty
-rw-r----- 1 root  named  152 Jun 21  2007 named.localhost
-rw-r----- 1 root  named  168 Dec 15  2009 named.loopback
drwxrwx--- 2 named named    6 Nov 20  2015 slaves

# 重新加载
[root@centos7 named]# rndc reload  
server reload successful

配置一个反向区域

 1.配置步骤:

定义区域

在主配置文件中或主配置文件辅助配置文件中实现;

wKiom1i6i6iBeIXXAAAkqxlUmQQ080.png

 注意:

  • 反向区域的名字格式为:反写的网段地址.in-addr.arpa (如:16.168.192.in-addr.arpa)

建立区域解析库数据文件(主要记录为PTR记录)

在/var/named目录下建立区域数据文件;

示例:文件为 /var/named/192.168.16.zone

wKioL1i6mMCSg2rRAABKZLP2mOw467.png

 

权限及属主修改

  • chgrup named /var/named/magedu.com.zone

  • chmod o=  /var/named/magedu.com.zone

主配置文件语法检查,解析库文件语法检查

  • named-checkconf 

  • named-checkzone ZONE_NAM ZONE_FILE

让服务器重载配置文件和区域数据文件

  • rndc status|reload 或者 service named reload

演示步骤如下:

1.定义区域,编辑配置文件/etc/named.rfc1912.zones,在最后添加自己定义的域即可

# 编辑主配置文件/etc/named.rfc1912.zones,在最后添加反解的区域
[root@centos7 ~]# vim /etc/named.rfc1912.zones
 zone "1.168.192.in-addr.arpa" IN {
          type master;
          file "192.168.1.zone"; 
 };

 2.在/var/named目录下建立区域数据库文件

[root@centos7 named]# cat 192.168.1.zone
$TTL 3600
$ORIGIN 1.168.192.in-addr.arpa.
@	IN	SOA	ns1.magedu.com.	nsadmin.magedu.com. (
                2016100501
		1H
		10M
		3D
		12H )
	IN	NS	ns1.magedu.com.
112     IN      PTR	ns1.magedu.com.
113	IN	PTR	mx1.magedu.com.
114	IN	PTR	mx2.magedu.com.
115	IN	PTR	bbs.magedu.com.
116	IN	PTR	bbs.magedu.com.
112	IN	PTR	www.magedu.com.

 3.修改属组和权限

[root@centos7 named]# chgrp named 192.168.16.zone 
[root@centos7 named]# chmod 640 192.168.16.zone 
[root@centos7 named]# ll
total 24
-rw-r----- 1 root  named  334 Oct  5 21:21 192.168.16.zone  # 修改后的属组和权限
drwxrwx--- 2 named named   22 Oct  4 14:49 data
drwxrwx--- 2 named named   58 Oct  5 19:00 dynamic
-rw-r----- 1 root  named  491 Oct  5 13:04 magedu.com.zone
-rw-r----- 1 root  named 2076 Jan 28  2013 named.ca
-rw-r----- 1 root  named  152 Dec 15  2009 named.empty
-rw-r----- 1 root  named  152 Jun 21  2007 named.localhost
-rw-r----- 1 root  named  168 Dec 15  2009 named.loopback
drwxrwx--- 2 named named    6 Nov 20  2015 slaves

 4.主配置文件语法检查,解析库文件语法检查

[root@centos7 named]# named-checkzone 16.168.192.in-addr.arpa /var/named/192.168.16.zone 
zone 16.168.192.in-addr.arpa/IN: loaded serial 2016100501
OK
[root@centos7 named]# named-checkconf

 5.重新加载区域 rndc status|reload

[root@centos7 named]# rndc reload
server reload successful
[root@centos7 named]# rndc status
version: 9.9.4-RedHat-9.9.4-29.el7 <id:8f9657aa>
CPUs found: 4
worker threads: 4
UDP listeners per interface: 4
number of zones: 103  # 可以看到又增加了一个区域
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running

 6.在另一台centos 6 主机上 测试可以正常反向解析

[root@centos7 ~]# dig -x  192.168.1.115 @192.168.1.112

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

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

;; ANSWER SECTION:
115.1.168.192.in-addr.arpa. 3600 IN	PTR	bbs.magedu.com.

;; AUTHORITY SECTION:
1.168.192.in-addr.arpa.	3600	IN	NS	ns1.magedu.com.

;; ADDITIONAL SECTION:
ns1.magedu.com.		3600	IN	A	192.168.1.112

;; Query time: 1 msec
;; SERVER: 192.168.1.112#53(192.168.1.112)
;; WHEN: 六 3月 04 20:03:11 CST 2017
;; MSG SIZE  rcvd: 117

主从DNS服务器

 1.从服务器及配置从区域步骤:

从服务器

  • 从服务器是区域级别的概念。即主服务器上如果同时拥有正向和反向区域的解析库,那么要配置从服务器,我们可以只配置主服务器上正向区域的从DNS服务器或者反向区域的从DNS服务器,当然也可以都配置。

配置从服务器的步骤

On Slave(在从服务器上)

定义区域

 定义一个从区域:

wKiom1i6t-KxajQsAAAZ00x81VM666.png

配置文件语法检查:

  • named-checkconf

 重载配置

  • rndc reload

  • systemctl reload named.service

注意:

  • 定义的区域文件应该放在/var/named/slaves 目录下,因为此目录的属主和属组都为named,并且有写权限,所以slaves 目录是专用于从服务器从主服务器那边同步数据文件后,需要自动创建数据文件时使用。

On Master(在主服务器上)

确保区域数据文件中为每个从服务器配置NS记录,并且在正向区域文件需要每个从服务器的NS记录的主机名配置一个A记录,且此A后面的地址为真正的从服务器的IP地址。

解析库文件语法检查

  • named-checkzone ZONE_NAM ZONE_FILE

重载配置

可以手动进行测试

  • # dig -t axfr magedu.com @192.168.16.104   (主服务器地址,表示主服务器到从服务器的全量传送)

注意:

  • 从服务器应该为一台独立的名称服务器(安装bind程序,编辑配置文件为缓存名称服务器,然后检查语法,启动服务器)

  • 主服务器的区域解析库文件中必须有一条NS记录指向从服务器

  • 从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于 /var/named/slaves/ 目录中

  • 主服务器得允许从服务器作区域传送;

  • 主从服务器时间应该同步,可通过ntp进行;

  • bind程序的版本应该保持一致;否则,应该从高,主低。

  • 主名称服务器数据库修改完之后一定要使相应的序列号加1,这样从服务器才可以检测到并及时更新,并且重载

时间同步;

  • 任何在分布式环境中,让多台服务器基于某一种特定应用同时协调的内容、进程或服务,都应该做时间同步。

ntpdate命令

互联网上可用的时间服务器如下:

  • time.nist.gov

  • time.nuri.net

  • 0.asia.pool.ntp.org

  • 1.asia.pool.ntp.org

    ...

配置正向区域的从服务器演示过程如下:

在另一台节点服务器上,安装 bind 配置做为从DNS服务器,安装及修改配置文件同主DNS服务器;

  1.在从服务器上定义区域,编辑配置文件/etc/named.rfc1912.zones,在最后添加自己定义的域,然后检查配置文件是否有语法错误

# 定义一个从区域
[root@centos7 ~]# vim /etc/named.rfc1912.zones
  zone "magedu.com"  IN {
	type slave;
	file "slaves/magedu.com.zone";  # 放在slave目录下
	masters { 192.168.1.112; };    # 一定要指向主服务器的IP
  };
  
# 检查配置文件
[root@centos7 ~]# named-checkconf

2.在主服务器上的区域数据文件中为从服务器配置NS记录,并且为从服务器的NS记录的主机名配置一个A记录,且此A记录后面的地址为真正的从服务器的IP地址

wKiom1i6xBuwT08_AABrnGwmLP8959.png


3.主服务器解析库文件语法检查,并重置;

# 语法检查
[root@centos7 named]# named-checkzone magedu.com /var/named/magedu.com.zone
zone magedu.com/IN: loaded serial 2017100502
OK

# 重置
[root@centos7 named]# rndc reload
server reload successful

[root@centos7 named]# rndc status
version: 9.9.4-RedHat-9.9.4-29.el7 <id:8f9657aa>
CPUs found: 4
worker threads: 4
UDP listeners per interface: 4
number of zones: 103
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running  # 运行中

4.从服务器重置,并查看运行状态,最后查看/var/named/slaves中是否有从主服务器同步过来的文件,测试可正常解析;

[root@centos7 ~]# rndc reload
server reload successful

[root@centos7 ~]# ll /var/named/slaves/
total 4
-rw-r--r-- 1 named named 566 Mar  4 21:54 magedu.com.zone   # 从主服务器复制的文件

# 测试,使用从服务器作为DNS,可以正常解析
[root@centos7 ~]# dig -t A www.magedu.com @192.168.1.114

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

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

;; ANSWER SECTION:
www.magedu.com.		3600	IN	A	192.168.1.112

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

;; ADDITIONAL SECTION:
ns1.magedu.com.		3600	IN	A	192.168.1.112
ns2.magedu.com.		3600	IN	A	192.168.1.114

;; Query time: 0 msec
;; SERVER: 192.168.1.114#53(192.168.1.114)
;; WHEN: Sat Mar 04 21:59:36 CST 2017
;; MSG SIZE  rcvd: 127

子域授权

注意:

  • 我们注册了二级域名之后,域名服务商会提供给我们DNS服务器(群租),我们只需在其二级域下添加相应的主机记录(如web服务器的别名www,对应的ip地址)即可完成解析,但如果公司的部门很庞大,为了方便管理,需要单独对一个部门添加一个域名,这时,就需要在其二级域下添加一个三级域(如:ops.magedu.com.),而添加的三级域必须要经过上一级授权才可以。

  • ops.magedu.com.是一个三级域,www.ops.magedu.com.是三级域中的web服务器的别名;而 magedu.com 是一个二级域,www.magedu.com是一个二级域中web服务器的别名;

  • 注意一定不要搞混淆了,虽然别名相同但域的级别不同。

  • 每一个域名都必须要有与之对应的名称服务器才可以解析。

 1.子域:

子域授权:

  • 每个域的名称服务器,都是通过其上级名称服务器在解析库进行授权;

类似根域授权tld:

wKiom1i6zmLiqM3cAAAIRGcvljU384.png

magedu.com. 在.com的名称服务器上,解析库中添加资源记录:

wKioL1i6zpGT10Y1AAAdTypj2i4880.png

glue record:粘合记录,父域授权子域的记录

 2.互联网域名:

域名注册:

  • 代理商:万网新网godaddy

注册完成以后,想自己用专用服务来解析

  • 管理后台:把NS记录指向你的服务器名称,A记录指向你的服务器地址即可;

附图:

 阿里云DNS

wKioL1f3MJfS6CchAALpknnmzic885.png

wKioL1f3MJiQOIngAAJ3TPU63W0559.png

这个域名是在阿里云注册的.com域名,这个管理界面就是向.com域名服务器授权来查询的。这是在win界面进行的子域授权管理,及资源记录管理,那在DNS的配置文件中也很容易去配置实现子域授权,如下:

 3.正向解析区域授权子域的方法:

原理:

  • 在本域名服务器上的正向解析库文件当中定义子域对应的DNS服务器的主机名和A记录即可。

方法:

wKiom1i60H3wetObAAAoj19IbrE468.png

具体步骤如下:

  1)首先要在父域(二级域)的主DNS服务器上授权,编辑父域的数据解析库文件;   

wKiom1i61AjyDQ8JAAAnXd0dNf8705.png

注意:

  • 每次修改解析数据库文件之后都要使序列号加1,这样从服务器才能够检测到序列号不一致,并及时更新从DNS服务器

  • 修改完之后保存退出并重载(# rndc reload)

2)接下来配置子域服务器,其配置过程和之前的任何一个DNS服务器是一样的(安装bind程序,配置配置文件,定义手动添加区域解析库文件)如下:

首先安装bind程序;

  • # yum install bind -y

编辑配置文件/etc/named.conf,以缓存名称服务器的方式启动起来;

  • 全局配置段: options { any; };

  • 关闭 dnssec

  • 关闭仅允许本地查询  //allow-query { localhost; };

  • 语法检查:named-checkconf [/etc/named.conf]

  • 启动服务,并查看状态 :systemctl start|status named

  • 检查53号端口是否启动:netstat -tunlp

配置其成为ops子域的主DNS域名服务器

1.编辑 /etc/named.rfc1912.zones ,新增加一个区域

wKioL1i602jQqjddAAArCs5DHhU343.png

2.建立授权子域的区域解析库文件

wKiom1i61KujgO6mAAA_dtLC_G4088.png

3.权限及属主修改

  • # chgrup named /var/named/ops.magedu.com.zone

  • # chmod o=  /var/named/ops.magedu.com.zone

4.主配置文件语法检查,解析库文件语法检查

  • # named-checkconf 

  • # named-checkzone  ops.magedu.com  /var/named/ops.magedu.com.zone

5.重新加载区域

  • # rndc status|reload;

6.测试能否解析

转发服务器

注意:

  • 被转发的服务器必须要能够为请求者做递归,否则转发请求不予进行;

区域转发:

  • 仅转发对特定区域的解析请求,比全局转发优先级高;

格式:

wKioL1i61djCC-O3AAA7NxjpwLY438.png

注意:

  • 如果不定义区域转发的话,子域要查找上一级就会先去找根再一步步查找,如果定义了区域转发(被转发的服务器为上一级的),子域就可以直接查找上一级而不通过查找根(比喻:家丑不可外扬)。

全局转发: 

  • 针对凡本地没有通过zone定义的区域查询请求,全转发给指定的可以访问互联网的服务器;

 编辑named.conf文件,在options全局配置段中添加

wKiom1i61nHiYkSTAAAOsJscxZA215.png

过程:   

  • 先去找 zone中定义的(自己负责解析的域和定义的区域转发的父域),有直接返回查找结果;如果没有就全局转发给父域(比如:子域首先定义了区域转发,这样仅能查询自己的上一级,但之外的比如www.baidu.com是查询不了的;但是自己的父域是可以访问互联网的,这样就可以定义所有自己访问不了的统统转发给父域)

演示:

1.以子域授权为例,定义区域转发,子域可以查找自己的上一级(父域)

[root@centos7 ~]# vim /etc/named.rfc1912.zones  # 编辑配置文件,新增加一个区域
  zone "magedu.com" IN {
            type forward;
            forward  only;     # 只是内部使用,不需要迭代
            forwarders { 192.168.16.112; }; # 定义父域DNS服务器的ip,如果有从服务器也写上
       };

2.以子域授权为例定义了区域转发之后再定义全局转发:

# 编辑named.conf文件,在options全局配置段中添加
[root@centos7 ~]# vim /etc/named.conf  
  options {
	  listen-on port 53 { any; };
	  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";
	  forward only  
	  forwarders { 192.168.1.112; }; # 表示只要是自己不负责的统统转发给父域,父域去迭代查询,然后返回结果
	  //allow-query     { localhost; };

bind中安全的相关配置

1.bind中的acl访问控制列表

acl:

  • 把一个或多个地址归并为一个集合,随后通过此名称即可对此集全内的所有主机实现统一调用;

格式:

wKioL1i62I3hYGllAAAYhWSN4HM869.png


bind有四个内置的acl:

  • none:没有一个主机

  • any:任意主机

  • localhost:本机

  • localnet:本机的IP同掩码运算后得到的网络地址

注意

  • 只能先定义,后使用;因此一般定义在配置文件中,处于options的前面;

 2.控制访问指令

访问控制的指令:

  • allow-query {}:允许查询的主机;白名单;默认是所有主机,如果有的话只有定义在里面的才可以查询;

  • allow-transfer {}:允许向哪些主机做区域传送;默认为向所有主机,应该配置为仅允许从服务器;

  • allow-recursion {}:允许哪些主机向当前DNS服务器发起递归查询请求;

  • allow-update {}:DDNS,允许动态更新区域数据库文件中的内容,一般都为 none

bind view

view:视图

  • 一个bind服务器可定义多个view,每个view中可定义一个或多个zone,每个view用来匹配一组客户端;

  • 多个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件

格式:

 wKioL1i62r2i9L2BAABB_aovwuY932.png


注意:

  • 一旦启用了view,所有的zone都只能定义在view中

  • 仅在允许递归请求的客户端所在view中定义根区域

  • 客户端请求到达时,是自上而下检查每个view所服务的客户端列表

CDN:Content Delivery Network

智能DNS:

  • dnspod

  • dns.la

附:

1. 完整的 主 named.conf 配置文件

[root@centos7 named]# cat /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.
//

# 定义访问控制,一定要先定义,再调用
acl mynet {
	192.168.1.0/24;
	127.0.0.0/8;
};

acl slaves {
	192.168.1.114;
	127.0.0.1;
};


options {
	listen-on port 53 { any; };   # 监听所有的地址的53号端口
	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     { mynet; };  # 仅允许 mynet 中定义的的网段中的主机可以进行查询;

	/* 
	 - 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 
	*/
	allow-recursion	 { mynet; };  # 仅允许为 mynet 中定义的网段中的主机进行递归查询

	dnssec-enable no;             # 关闭dnssec
	dnssec-validation no;

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

	managed-keys-directory "/var/named/dynamic";

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

2./etc/named.rfc1912.zones 配置文件

[root@centos7 named]# cat /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; };
};

# 自己定义的正向解析区域
zone "magedu.com" IN {
        type master;
	file "magedu.com.zone";
	allow-transfer { slaves; };      # 仅允许 slaves 中定义的主机可以做区域传送
	allow-update { none; };          # 关闭 DDNS
};

# 自己定义的反向解析区域
zone "1.168.192.in-addr.arpa" IN {
        type master;
        allow-transfer { slaves; }; 
	file "192.168.1.zone";
	allow-update { none; }; 
};

3.正向区域的区域解析库文件

[root@centos7 ~]# cat /var/named/magedu.com.zone 
$TTL 3600
$ORIGIN magedu.com.
@      IN      SOA     ns1.magedu.com.  dnsadim.magedu.com. (
                       2017100503
		       1H
		       10M
		       3D
		       1D )
       IN      NS         ns1     # 主DNS
       IN      NS         ns2     # 从DNS
       IN      MX      10 mx1
       IN      MX      20 mx2
ns1    IN      A       	  192.168.1.112  # 主DNS A 记录
ns2    IN      A          192.168.1.114        # 从DNS A 记录
mx1    IN      A          192.168.1.113 
mx2    IN      A          192.168.1.114
www    IN      A          192.168.1.112
web    IN      CNAME      www
bbs    IN      A          192.168.1.115
bbs    IN      A          192.168.1.116
pops   IN      A          192.168.1.117

3.反向区域的区域解析库文件

[root@centos7 ~]# cat /var/named/192.168.1.zone 
$TTL 3600
$ORIGIN 1.168.192.in-addr.arpa.
@	IN	SOA	ns1.magedu.com.	nsadmin.magedu.com. (
                2016100501
		1H
		10M
		3D
		12H )
	IN	NS	ns1.magedu.com.
112     IN      PTR	ns1.magedu.com.
113	IN	PTR	mx1.magedu.com.
114	IN	PTR	mx2.magedu.com.
115	IN	PTR	bbs.magedu.com.
116	IN	PTR	bbs.magedu.com.
112	IN	PTR	www.magedu.com.


后续还有一些内容:编译安装bind,压力测试,DNS排错这里先不做整理,后续用到再做整理。