首页 > 代码库 > linux学习之路之区域传送和子域授权

linux学习之路之区域传送和子域授权

区域传送

        在之前的章节中已经说过,如果一个区域中有多台DNS服务器,那么其中有一台作为主DNS服务器,另外的则作为辅助DNS服务器,并且主DNS服务器和辅助DNS服务器的数据文件要一致,这样才能确保使用主DNS和辅助DNS解析的结果是一致。

        对于辅助DNS服务器来说,它是不能手动创建数据文件的,必须由主DNS服务器传送过来。

如果辅助DNS上面没有存在数据文件,此时主DNS服务器会将自己的数据文件全部传送到辅助DNS服务器上面。这种传送机制我们叫做完全区域传送。

如果辅助DNS服务器上面已经存有数据文件,而主DNS的数据文件更新了,此时主DNS服务器会将添加或更新的数据传给辅助DNS服务器,此时辅助DNS服务器来更新自己的数据文件。这种传送机制我们叫做增量区域传送。

当然区域传送需要在相应的区域中定义的。

 

首先创建辅助服务器需要一台主机,在这里这台主机是192.168.108.190。

安装DNS的相关软件bind97,与之前的安装过程相同

 

例如:

1、首先在主DNS服务器上面的指定区域上定义只对哪些主机进行区域传送

zone "xsl.com" IN {
        type master ;
        file "xsl.com.zone" ;
        allow-transfer { 192.168.108.190; };   #只允许192.168.108.190这台主机发送区域传送请求
};

 

2、需要再主DNS服务器上的xsl.com区域的数据文件上增加一条NS记录和A记录

例如:

xsl.com.        IN      NS      ns1.xsl.com.
xsl.com.        IN      NS      ns2.xsl.com.
ns1.xsl.com.    IN      A       192.168.108.251
ns2.xsl.com.    IN      A       192.168.108.190

 

 

3、配置辅助DNS的配置文件,在相关的区域需要这样定义:

zone "xsl.com" IN {
        type slave ;                                #定义自己是辅助DNS服务器
        file "slaves/xsl.com.zone" ;        #定义该区域的整解数据文件,这里的路径与之前的有点不一样
        masters { 192.168.108.251; };  #定义主DNS服务器是谁
        allow-transfer { none; };                #不允许其他主机向自己发送区域传送请求
};

说明一下:由于/var/named的属组是named,且权限为rx,因此不具有w权限,当DNS服务开启时,该进程属主和属组都是named,因此,如果传送的数据文件是不能直接存放在/var/named这个目录下的,而是/var/named/slaves这个目录下,因为这个目录具有w权限。所以在这里辅助DNS的数据文件一般都存在/var/named/slaves目录下。

 

 

 

在创建完成以后,修该DNS的配置文件和数据文件的属主和属组分别是root、named

然后,在重启主DNS服务,观察日志信息(tail  /var/log/messages)

此时可能出现传送失败。原因在于要关掉SELinux   ,使用setenforce 0关闭SElinux

还要使用iptables -F 清空iptables的所有chain

经过这些步骤以后,就可以完成完全区域传送了。

 

要想验证增量区域传送,,只需在某个区域的数据文件值修改或增加某个资源记录,在修改这个数据文件的序列号即可。最后重启该服务,就可以观察到增量区域传送也是成功的。

 

 

 

 

 

子域授权

如果某个区域太大的话,且这个区域中有多个不同的单位,那么我们可以将每一个单位划分成一个子区域,这样,各单位的dns请求就直接由各子域来负责解析,这样就减轻了父域的压力。

对于定义子域,需要在父域的主DNS服务器的配置文件上面定义。

在主DNS服务器的/etc/named.conf,添加如下几行即可

子域                IN                 NS                ns1.子域

ns1.子域        IN                    A                    ip

例如:

mini.xsl.com.    IN                NS                ns1.mini.xsl.com.

ns1.mini.xsl.com.    IN        NS                    192.168.108.15

 

在父域的主DNS服务器上定义完成之后,在将一台主机配置成子域DNS服务器即可,在上面配置DNS的配置文件和数据文件。配置过程和之前的相同。只不过在这里只需要在父域的主DNS服务器上面定义子域而已。

 

 

定义转发域

zone  “ZONE_NAME”   IN {

                type    forward  ;            #定义转发区域

                forword  {only|first} ;   #定义转发规则

                forwarders  {  server_ip ; }; #定义将请求转发给哪个DNS服务器来处理

说明:forward是定义转发规则的,其中only表示将请求只发送给某个服务器来处理,不过解析成功还是不能解析,都返回给本地DNS服务器。

first表示第一次将请求转发给某个DNS服务器,如果不能解析,则在将请求转发给根服务器。

 

 

 

 

 

本文出自 “linux学习之路” 博客,谢绝转载!

linux学习之路之区域传送和子域授权