DNS服务器配置:正反解析,主从服务器,子域授权,

控制列表,bind view


配置前的设置在172.16.59.1服务器上

安装bind: 配置好yum源后,用 # yum install bind 安装

启用named服务: # 起systemctl start named.service,系统重启后可能需手动启动一次


防火墙设置:

 ~]# iptables -L -n  查看防火墙是启用还是关闭

centos7:

关闭防火墙 # systemctl stop firewalld.service 

禁止防火墙开机启动 # systemctl disable firewalld.service  ---- enable为允许

centos6:

~]# service iptables stop   关闭防火墙

~]# chkconfig iptables off   禁止开机启动 ,----on为允许开机启动


# getenforce 查看SElinux状态,disabled为关闭,此时不关闭也没影响


在主配置文件中:/etc/named.conf


1、在53号端口监听能与外部主机通信的地址,而不是127.0.0.1,修改为如下:

    listen-on port 53 { 172.16.59.1; }; ----即本机ip,即默认用本机ip做dns服务器

    listen-on port 53;这种写法或许也行

2、使用不熟练时,建议关闭dnssec;在

    dnssec-enable no;

    dnssec-validation no;

    dnssec-lookaside no;---若没有这一行就手动加上

3、必须关闭仅允许本地查询,注销掉这一行,否则只允许自己查询,而不允许其他主机查询。方式如下:

        //allow-query  { localhost; };


4、在/etc/resolv.conf文件中修改:重启系统后文件内容会恢复默认,可能需要重新配置

nameserver 172.16.59.1  ----改成自己的主机ip,也是意味着默认用自己主机的ip做dns服务器

如果此文件不修改也可以,只是解析时要指定解析服务器例如dig -t A web.magedu.com @172.16.59.1


修改完一定要检测:# named-checkconf




配置解析一个正向区域

如果未安装bind先安装bind,用yum install bind安装;

 分为三个步骤:定义区域、建立区域数据文件、重载配置文件

 注意:区域名字即为域名


(1) 定义区域

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

主配置文件/etc/named.conf

在/etc/named.rfc1912.zones中加入:

 

zone  "ZONE_NAME"  IN  {

type  {master|slave|hint|forward};主,从,根,转发服务器

file  "ZONE_NAME.zone"; 相对路径则在/var/named目录下

};

 

以magedu.com为例新增一个区域:

zone “magedu.com”  IN {

type master;

file “magedu.com.zone”; 

};

 

 

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

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

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

文件内容如下:

$TTL 3600   --------宏定义,3600秒,下面未定义TTL时都默认引用这个

$ORIGIN magedu.com.  

@        IN       SOA     ns1.magedu.com.   dnsadmin.magedu.com. (      

             2017010801      -----序列号

                     1H                    -------刷新时间间隔

                     10M               ----------重试时间间隔

             3D              -----------过期时间

             1D )            -------------否定回答的TTL值

             IN      NS      ns1   ----- --IN前面没写,说明和上面一行的一样;NS后面没写全,会自动                                                --------补全$ORIGIN后的内容,注意ns1后无点

        IN      MX   10 mx1   ------邮件服务器,10为优先级,数字越小优先级越高

        IN      MX   20 mx2   -----如果有两个服务器就可以解析两个,没有的话不用写这一行

ns1        IN      A       172.16.59.1  -------每一个NS和MX后的主机名都要有一个A记录,

                                                  -------此为用本机ip  172.16.59.1 做默认DNS服务器

mx1       IN      A       172.16.59.4  

mx2       IN      A       172.16.59.5

www      IN      A       172.16.59.1   -----web服务器,可看出这个ip扮演了两个角色

web       IN      CNAME   www       -------web是www的别名

bbs        IN      A       172.16.59.6  -----一个域名对应两台主机,别人访问时随机分配这两台

                                                      ------主机,降低每台服务器压力

bbs        IN      A       172.16.59.7




@       IN       SOA     ns1.magedu.com.   dnsadmin.magedu.com. (      

语法:name     [TTL]     IN     RR_TYPE     value

name用@替代,

TTL可以不写,从上面继承;

SOA后是一个区域名,可以用@,也可用区域名magedu.com.  ,也用当前区域主DNS服务器的名称ns1.magedu.com.;

dnsadmin.magedu.com.:区域负责人的邮件地址,不能用@,要用点"."


  

检查语法错误:

[root@yph7s ~]# named-checkconf     检查主配置文件是否语法错误

[root@yph7s ~]# named-checkzone magedu.com /var/named/magedu.com.zone

zone magedu.com/IN: loaded serial 2017010901

OK---------------------------结果看到OK就没问题


 权限及属组修改:

[root@yph7s ~]# chgrp named /var/named/magedu.com.zone

[root@yph7s ~]# chmod o= /var/named/magedu.com.zone

[root@yph7s ~]# ll /var/named/magedu.com.zone

-rw-r-----. 1 root named 343 Jan  9 08:45 /var/named/magedu.com.zone

 

 

 

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

#rndc status  查看一下当前状态

如果为禁用状态用 # systemctl start named.service开启服务

# rndc  reload 或 # systemctl  reload  named.service  重新加载配置文件或区域数据文件

再rndc status查看一下,看有什么变化

 

 

解析看一下配置后的效果

dig -t A www.magedu.com  [@172.16.59.1]通过@后这个服务器解析,可省略不写,因为上面已经定义过了

[root@yph7 ~]# dig -t A www.magedu.com
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.1 <<>> -t A www.magedu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50669
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2-----aa表示权威答案
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:   ------自己提交问题
;  A
;; ANSWER SECTION:    ------反馈回的答案
  3600  IN  A  172.16.59.1
;; AUTHORITY SECTION:    ------权威解答,自己定义的ns1.magedu.com竟然成为权威了
magedu.com.3600  IN  NS  ns1.magedu.com.
;; ADDITIONAL SECTION:   ------自己定义的DNS服务器的ip地址
ns1.magedu.com. 3600  IN  A  172.16.59.1
;; Query time: 28 msec     ----查询时长
;; SERVER: 172.16.59.1#53(172.16.59.1)  ----帮你解析的服务器是哪个
;; WHEN: 日 1月 10 20:09:29 CST 2016
;; MSG SIZE  rcvd: 93

上面结果如果flags有aa则是服务器自己解析的权威答案;否则无aa是通过转发或迭代得到的,就不是权威

[root@yph7 ~]# dig -t A www.magedu.com @172.16.0.1 ---不用我们自己配置好的默认的DNS服务器解析,而是自己指定其他的服务器,看到结果并不是我们配置的,而是我们用@指定的服务器从根服务器迭代获得的

;; ANSWER SECTION:

www.magedu.com.102INA101.200.188.230

;; AUTHORITY SECTION:

magedu.com.164901INNSv2s1.xundns.com.

magedu.com.164901INNSv2s2.xundns.com.



[root@yph7 ~]# dig -t A web.magedu.com  

;; ANSWER SECTION: -----查询结果

web.magedu.com.3600INCNAMEwww.magedu.com.----web只是www的一个别名

www.magedu.com.3600INA172.16.59.1  



 

dig -t A bbs.magedu.com这个多试几次,会看到解析到的主机顺序一致在变,因为是在那两个主机中随机选的,防止某个服务器压力过大。

host -t A bbs.magedu.com 也可以查看

 

dig -t NS magedu.com 查看定义的默认DNS服务器是哪个,看到是我们定义的ns1

 

dig -t MX magedu.com 查看邮件服务器有哪些,看到有两个MX

host -t MX magedu.com 也可以查看,两个地址大致是轮循的

 

 

 

配置解析一个反向区域

(1) 定义区域

在主配置文件中或主配置文件辅助配置文件中实现;格式同于正向解析


示例,区域名称为59.16.172.in-addr.arpa;

zone “59.16.172.in-addr.arpa” IN {

type master;

file “172.16.59.zone”;

};

 

注意:反写的网段地址

59.16.172.in-addr.arpa  正常172网段是两段的,写三位也没错

 


(2) 定义区域解析库文件(主要记录为PTR)

 

新建文件  /var/named/172.16.59.zone

内容如下:


$TTL 3600

$ORIGIN 59.16.172.in-addr.arpa.

@      IN       SOA     ns1.magedu.com.  dnsadmin.magedu.com. (

2017010801

1H

10M

3D

12H )

IN      NS      ns1.magedu.com.    ----不能省,因为补的不是这个

1      IN      PTR     ns1.magedu.com.    ----会自动补全为1.59.16.172

4      IN      PTR     mx1.magedu.com.

5      IN      PTR     mx2.magedu.com.

6      IN      PTR     bbs.magedu.com.

7      IN      PTR     bbs.magedu.com.

1      IN      PTR     www.magedu.com.

 

检查语法错误:


[root@yph7s ~]# named-checkconf  先检查主配置文件

[root@yph7s ~]# named-checkzone 59.16.172.in-addr.arpa  /var/named/172.16.59.zone

zone 59.16.172.in-addr.arpa/IN: loaded serial 2017010901  ----再检查区域文件

OK


 权限及属组修改:

[root@yph7s ~]# chgrp named /var/named/172.16.59.zone

[root@yph7s ~]# chmod o= /var/named/172.16.59.zone

[root@yph7s ~]# ll /var/named/172.16.59.zone

-rw-r-----. 1 root named 356 Jan  9 10:05 /var/named/172.16.59.zone

 

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

# rndc  reload 或 # systemctl  reload  named.service

 

测试下配置后的结果:

[root@yph7 named]# dig -x 172.16.59.1--看主机名是什么,结果有两个ns1和www

;; ANSWER SECTION:

1.59.16.172.in-addr.arpa. 3600INPTRns1.magedu.com.

1.59.16.172.in-addr.arpa. 3600INPTRweb.magedu.com.




主从DNS服务器配置:

 

一台主机上某一个区域的从服务器上,只有这个区域的复本 ,不包括其他区域的内容,所以,从服务器是区域级别的概念;从服务器的区域数据文件无需手动编写,只需从主服务器同步过来。也可以给从服务器在再配一个从服务器。


比如A,B两台服务器,A是正向的主服务器,B是正向的从服务器;反过来B是反向的主服务器,A是反向的从服务器。

如果一个请求不是自己主机负责的域,如果你的主机帮它去根服务器请求,叫做递归,但相当消耗资源,一般只允许为本地客户端提供递归服务。


对于本地客户端的请求,把本地客户端群分为两半,一半请求时以主服务器为主响应,另一半则用从服务器响应。

对于网络客户端的请求,你要告诉上级你有两台服务器,上级把请求分给你时,轮循分给主和从服务器。

named程序是以named用户身份运行的,/var/named目录属主为root,属组无写权限,所以不能在/var/nemad下建文件;而/var/named/slaves目录属主为named,所以文件放在此目录下。


配置一个从区域On Slave

安装前配置:在172.16.59.3从服务器上

安装bind,启用named服务,修改/etc/resolv.conf,修改主配置文件。

这些配置与文章首部的安装前配置几乎完全一致。除了主配置文件/etc/named.conf中对53号端口的监听略有区别;因为要能监听在外部地址上,加一个新地址172.16.59.3,如下:

     listen-on port 53 { 127.0.0.1; 172.16.59.3;};


主从服务器要间要同步,

同步时间命令:ntpdate命令



注意:本次配置172.16.59.1为主服务器,172.16.59.3为从服务器

(1) 在从服务器上定义一个从区域,172.16.59.3


zone "ZONE_NAME"  IN {

type  slave;   ---------------------指明这是从服务器

file  "slaves/ZONE_NAME.zone"; 文件名,此为相对路径,在/var/named/下

masters  { MASTER_IP; };  ------指明谁是主区域

};

 

在/etc/named.rfc1912.zones  中添加如下内容:

zone "magedu.com" IN  {

        type slave;

        file "slaves/magedu.com.zone";

        masters { 172.16.59.1;  };

};


配置文件语法检查:

 [root@yph7s named]# named-checkconf


重载配置

# rndc  reload

# systemctl  reload  named.service

 

(2)On Master:172.16.59.1

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

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

添加下面两行

     IN  NS  ns2

ns2  IN  A   172.16.59.3    ------新增解析指向从服务器的ip地址


检测文件语法错误:

[root@yph7 named]# named-checkzone magedu.com /var/named/magedu.com.zone

zone magedu.com/IN: loaded serial 2017011001

OK


重新加载:

[root@yph7 named]# rndc reload

server reload successful


on slave:172.16.59.3
从服务器重载配置文件,并查看状态

[root@yph7s named]# systemctl reload named.service

[root@yph7s named]# systemctl status named.service

.............. running

................Reloaded Berkeley Internet Name Domain (DNS).

................zone magedu.com/IN: Transfer started.   ---------------------从服务器开始同步数据

................transfer of 'magedu.com/IN' from 172.16.59.1#53: connected using 172.16.59.3#51981

............... zone magedu.com/IN: transferred serial 2017011001  ---------------------序列号

............... transfer of 'magedu.com/IN' from 172.16.59.1#53: Transfer completed: 1 messages, 1...es/sec)   ----------------------------------------------------------------同步数据完成

............... zone magedu.com/IN: sending notifies (serial 2017011001)

Hint: Some lines were ellipsized, use -l to show in full.


[root@yph7s named]# ls /var/named/slaves

magedu.com.zone        ---------------------已经自动新建了文件,说明已经把数据同步过来了


测试一下:看来已经成功了

[root@yph7s named]# dig -t A www.magedu.com  @172.16.59.3 ----@自己,为了方便观察


;; ANSWER SECTION:

www.magedu.com.3600INA172.16.59.1

;; AUTHORITY SECTION:

magedu.com.3600INNSns2.magedu.com.

magedu.com.3600INNSns1.magedu.com.

;; ADDITIONAL SECTION:

ns1.magedu.com.3600INA172.16.59.1

ns2.magedu.com.3600INA172.16.59.3



(3)on master:172.16.59.1

[root@yph7 named]# vim magedu.com.zone 

新增一个解析

pop3 IN  A       172.16.59.8

并且一定要把序列号加1


[root@yph7 named]# named-checkconf -----检测语法错误

[root@yph7 named]# rndc reload     -------重载

server reload successful


[root@yph7 named]# systemctl status named.service -----查看状态

.........reloading zones succeeded --重载成功

........ zone magedu.com/IN: loaded serial 2017011002 ----发现了序列号增1

.........zone magedu.com/IN: sending notifies (serial 2017011002) --向slave发送更新信号

........ all zones loaded

........ running


on slave:172.16.59.3

不用重载,直接查看状态,测试

第一次测试时有时候能自动同步有时不能,后来关闭防火墙,dnssec手动添加第三项,还不行,就重启系统。重启后修改resolve.conf 和named.service用start开启,就能自动同步了。


[root@yph7s ~]# systemctl status named.service 

......... Started Berkeley Internet Name Domain (DNS).

...........zone magedu.com/IN: Transfer started.   ----------传送开始


......... zone magedu.com/IN: transferred serial 2017011003 ----序列号

.......... transfer of 'magedu.com/IN' from 172.16.59.1#53: Transfer completed: 1 messages, 1...es/sec)  -------------传送完成

....... zone magedu.com/IN: sending notifies (serial 2017011003) -----发送传送结束信号


测试:

[root@yph7s ~]# dig -t A world.magedu.com @172.16.59.3 ---@本机测试一下

;world.magedu.com. IN A


;; ANSWER SECTION: -------回答 world只是www的一个别名

world.magedu.com.3600  IN  CNAME  www.magedu.com.

www.magedu.com.3600  IN  A  172.16.59.1


;; AUTHORITY SECTION: ----权威DNS解析服务器

magedu.com.3600INNSns2.magedu.com.

magedu.com.3600INNSns1.magedu.com.





增量传送:

主服务器:

[root@yph7 named]# dig -t axfr magedu.com @172.16.59.1


从服务器:@主服务器

[root@yph7s ~]# dig -t A axfr magedu.com @172.16.59.1

[root@yph7s ~]# dig -t A axfr 59.16.172.in-addr.arpa  @172.16.59.1






反向解析:



从服务器;172.16.59.3

[root@yph7s ~]# vim /etc/named.rfc1912.zones  ---新增一个反向解析域


zone “59.16.172.in-addr.arpa” IN {

type slave;

file “slaves/172.1.59.zone”;

masters  {  172.16.59.67;  };

};

 检测语法

[root@yph7s ~]# named-checkconf


主服务器:172.16.59.1新增两行指向从服务器的反解析记录,并立即把序列号加1;如下:

[root@yph7 named]# vim /var/named/172.16.59.zone 

    IN  NS  ns2.magedu.com.

3   IN  PTR ns2.magedu.com.

然后序列号加1


检测语法:

[root@yph7 named]# named-checkzone 59.16.172.in-addr.arpa /var/named/172.16.59.zone 


主服务器先重载,从服务器再重载

然后从服务器下已经同步过来文件了,如下:

[root@yph7s slaves]# ls

172.16.59.zone  magedu.com.zone


测试:

[root@yph7s slaves]# dig -x 172.16.59.1 @172.16.59.3

;; ANSWER SECTION:

1.59.16.172.in-addr.arpa. 3600INPTRns1.magedu.com.

1.59.16.172.in-addr.arpa. 3600INPTRweb.magedu.com.


;; AUTHORITY SECTION:

59.16.172.in-addr.arpa.3600INNSns2.magedu.com.

59.16.172.in-addr.arpa.3600INNSns1.magedu.com.


;; ADDITIONAL SECTION:

ns1.magedu.com.3600INA172.16.59.1

ns2.magedu.com.3600INA172.16.59.3


类似于正向解析在主服务器上新增解析记录,序列号加1,检测,重载;然后用重服务器测试,仍能成功。


子域授权

子服务器:172.16.59.2

用centos6主机172.16.59.2做子域服务器

文件配置方式与文章开头几乎一致,只是下面的这点不同:

 listen-on port 53 { 127.0.0.1; 172.16.59.2; };


[root@yph6 yum.repos.d]# netstat -tunlp | grep named ------53端口已经被named监听
tcp        0      0 127.0.0.1:53                0.0.0.0:*                   LISTEN      2337/named          
tcp        0      0 127.0.0.1:953               0.0.0.0:*                   LISTEN      2337/named          
tcp        0      0 ::1:53                      :::*                        LISTEN      2337/named          
tcp        0      0 ::1:953                     :::*                        LISTEN      2337/named          
udp        0      0 127.0.0.1:53                0.0.0.0:*                               2337/named
[root@yph7 named]# ss -tunl ----53端口已经被172.16.59.2监听,若没有则重启服务
Netid State     Recv-Q Send-       Local Address:Port            Peer Address:Port 
tcp  UNCONN      0       0           172.16.59.2:53

 

假如公司运维部子域ops.magedu.com,此为三级域名为之配置子服务器       

父服务器:172.16.59.1

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

ops.magedu.com.  IN  NS   ns1.ops.magedu.com.

ns1.ops.magedu.com.  IN  A  IP.AD.DR.ESS


父配置文件添加指向子服务器的解析,序列号加1

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

ops     IN  NS  ns1.ops

ns1.ops IN  A   172.16.59.2




子服务器

[root@yph6 yum.repos.d]# vim /etc/named.rfc1912.zones      ----添加域                          

zone "ops.magedu.com" IN {

        type master;

        file "ops.magedu.com.zone";


[root@yph6 named]# vim /var/named/ops.magedu.com.zone  ----创建区域配置文件

$TTL 3600

$ORIGIN ops.magedu.com.

@       IN      SOA     ns1.ops.magedu.com      nsadmin.ops.magedu.com (

                2017011101

                1H

                10M

                1D

                2H)

          IN      NS      ns1

ns1     IN      A       172.16.59.2


[root@yph6 yum.repos.d]# named-checkconf ---检测文件语法错误

[root@yph6 named]# named-checkzone ops.magedu.com /var/named/ops.magedu.com.zone 

zone ops.magedu.com/IN: loaded serial 2017011101

OK


修改文件权限

[root@yph6 named]# chgrp named ops.magedu.com.zone 

[root@yph6 named]# chmod o= ops.magedu.com.zone 

[root@yph6 named]# ll ops.magedu.com.zone 

-rw-r----- 1 root named 175 Jan 11 22:10 ops.magedu.com.zone


[root@yph6 named]# rndc reload ----重新加载

server reload successful


在从服务器上测试:

[root@yph6 named]# dig -t A www.ops.magedu.com @172.16.59.2

;; ANSWER SECTION:

www.ops.magedu.com.3600INA172.16.59.2


;; AUTHORITY SECTION:

ops.magedu.com.3600INNSns1.ops.magedu.com.


;; ADDITIONAL SECTION:

ns1.ops.magedu.com.3600INA172.16.59.2


[root@yph6 named]# dig -t A world.magedu.com @172.16.59.2--通过自己解析父服务器上的服务

;; ANSWER SECTION:

world.magedu.com.3600INCNAMEwww.magedu.com.

www.magedu.com.3600INA172.16.59.1


;; AUTHORITY SECTION:

magedu.com.3600INNSns2.magedu.com.

magedu.com.3600INNSns1.magedu.com.




定义转发


注意:被转发的服务器必须允许为当前服务做递归;


 区域转发:仅转发对某特定区域的解析请求;

子服务器上:

    zone  "ZONE_NAME"  IN {    ---------父域名字

        type  forward;     ----------类型为转发

        forward  {first|only};

        forwarders  { SERVER_IP; };  ------转发器

    };

first:首先转发;转发器不响应时,自行去迭代查询;

only:只转发;


[root@yph6 named]# vim /etc/named.rfc1912.zones ---添加如下内容

zone "magedu.com" IN {

        type forward;

        forward only;

        forwarders { 172.16.59.1; 172.16.59.3;  };

};


[root@yph6 named]# named-checkconf ----检查语法错误

[root@yph6 named]# rndc reload -----重载

server reload successful


小技巧:如果自己不能访问互联网,而172.16.100.67可以上互联网,用它解析接可以让它帮你找根,前提是它没有禁止帮你做迭代


全局转发

在zone中定义的就按zone的标准,对于zone没有定义的就按全局标准

options {

    ... ...

    forward  {only|first};

    forwarders  { SERVER_IP; };

    .. ...

};


在/etec/named.conf主配置文件中,被注销掉的行 //allow-query     { localhost; };上方添加两行:

forward only;

forwarders { 172.16.59.1;  };-----表示zone中没定义的都通过这个ip解析

 

下面解析中,@的是自己,但自己并没有答案中的解析;答案是全局定义中的172.16.59.1转发的。      

[root@yph6 named]# dig -t A www.baidu.com @172.16.59.2

;; ANSWER SECTION:

www.baidu.com.1200INCNAMEwww.a.shifen.com.

www.a.shifen.com.300INA61.135.169.121

www.a.shifen.com.300INA61.135.169.125


bind中的安全相关的配置

acl:访问控制列表;

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

acl  acl_name  {

ip;

net/prelen;

};

示例:

acl  mynet {

172.16.0.0/16;

127.0.0.0/8;

};


bind有四个内置的acl

none:所有主机都不允许;

any:任意主机;

local:本机;

localnet:本机所在的IP所属的网络;


访问控制指令

allow-query  {};  仅允许查询的主机;白名单;就是我们文章首部注销掉的那个

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

    在主服务器上:

    

    只为指定主机提供递归迭代服务:

    [root@yph7 named]# vim /etc/named.rfc1912.zones 

    在zone "magedu.com" IN 下面添加一行

     allow-transfer { slaves;  };

     再在主配置文件/etc/named.cong第一个options上方添加:

    acl slaves {

        172.16.59.3;

        172.16.59.2;

    };
172.16.59.2虽不是从服务器,但只要添加到这里面就把你加入白名单,给你做递归服务,否则不给。

    在从服务器或子服务器dig -x axfr magedu.com @172.16.59.1

    

    为自己传送:

    如果添加了127.0.0.1,使用主服务器才可以传送否则不能为自己传送,但必须

    dig -x axfr magedu.com @127.0.0.1,并且下面的listen on port行加上127.0.0.1;



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


    主配置文件/etc/named.conf中的recursion yes;表明为所有主机递归,这样不合理

    在第一个options上添加

    acl mynet {

        172.16.0.0/16

       127.0.0.0/8

    };

    

    

    把recursion yes;改为

    allow-recursion  { mynet;  };



allow-update {}; DDNS,允许动态更新区域数据库文件中内容;

一般都是none,参见系统定义的/etc/named.rfc1912.zones 中zone域的定义

这样服务器才安全。





bind view

例如一个主机有内网ip和外网ip,内网的主机进行解析时解析成一个地址,外网的主机解析时解析成另一个地址,来自联通的用户解析到联通上,来自电信的解析到电信上

视图:

view  VIEW_NAME {

    zone

    zone

    zone

};


view internal  { ----面向内网

    match-clients { 172.16.0.0/8; }; ----这个网段的用户解析到内网

    zone "magedu.com"  IN {

        type master;

        file  "magedu.com/internal";

    };

};


view external {  --------外网的用户

    match-clients { any; }; ----这些用户解析到外网

    zone "magecdu.com" IN {

        type master;

        file magedu.com/external";

    };

};