首页 > 代码库 > linux学习之路之DNS视图及为DNS创建日志系统

linux学习之路之DNS视图及为DNS创建日志系统

DNS视图

什么是DNS视图(dns view)?

DNS视图就是根据不同的客户来源(指的是ip),dns服务器使用不同的数据文件来完成解析过程。在这个过程中dns服务器是相同的,视图中的数据文件是不相同的。因此,不同的来源,使用不同的数据文件来解析,所以,解析后的结果也会不相同。

 

创建DNS view的过程

1、创建DNS的配置文件/etc/named.conf

只不过这个文件中的内容和之前的有一点不太一样。

在这里作者演示创建xsl.com这个域内的DNS服务器来说明,使服务器具有view功能


acl lan  {
        192.168.0.103/32 ;    #如果有多个ip或者网段,可以定义ACL来说明

} ;                                            
acl wan {
        192.168.0.105/32;
};

options {
        directory "/var/named" ;
        allow-recursion { lan; };    #允许递归的ip或者网段,也可以使用ACL来定义
};
view  nei {                                #这里定义的是view,nei是view的名字
        match-clients { lan; };     #定义匹配的来源。只要是这些范围内的来源(这里使用的是ACL), 使        zone "xsl.com" {             #用的数据文件就是下面的nei.xsl.com.zone这个文件来解析

                type master;
                file "nei.xsl.com.zone" ;

        };
};

view wai {
        match-clients { wan; };
        zone "xsl.com" {
                type master;
                file "wai.xsl.com.zone";
        };
};

注意:在定义视图的时候,所有的zone必须定义在视图内部。 

 

2、创建数据文件

nei.xsl.com.zone和wai.xsl.com.zone这两个文件的格式和之前的格式一样的。

在这里我还是写出来吧

nei.xsl.com.zone

$TTL 600
@       IN      SOA ns1.xsl.com.        admin.xsl.com.  (
                2014082401
                1H
                10M
                2D
                2D )
        IN      NS      ns1.xsl.com.
ns1     IN      A       192.168.0.103
www     IN      A       192.168.0.10
ftp     IN      A       192.168.0.20

 

 

wai.xsl.com.zone

$TTL 600
@       IN      SOA ns1.xsl.com.        admin.xsl.com.  (
                2014082401
                1H
                10M
                2D
                2D )
        IN      NS      ns1.xsl.com.
ns1     IN      A       192.168.0.103
www     IN      A       192.168.0.100
ftp     IN      A       192.168.0.200

 

 

3、关闭SElinux和使用iptables -F清空iptable中的规则

 

经过上述几部,使用dig -t A  www.xsl.com @192.168.0.103,分别在不同的主机上面测试,得到的结果是不一样的。

 

 

自定义DNS的日志系统

默认情况下,系统产生的日志信息都定向到日志系统syslog中去了,且大多数输出到/var/log/messages文件中。但对于DNS服务器来说,基本上每天产生的查询信息就已经够多的呢。所以,我们可以专门自定义一个日志系统,用于专门存放DNS的相关信息。

定义DNS的日志系统,需要在DNS的配置文件中定义。

其中catagory是用来定义日志来源的,这些日志来源有: 

default  Defines default channel for categories

general  Catch-all category for unclassified messages

client  Client request problems

config  Configuration file problems

dispatch  Dispatch of inbound packets to internal server modules

dnssec  DNSSEC and TSIG

lame-servers  Problems due to remote server misconfiguration

network  Related to network operations

notify  NOTIFY announcements

queries  Query processing

resolver  Recursive query processing

security  Accepted or denied requests

update  Dynamic updates

xfer-in  Zone transfers received by the server

xfer-out  Zone transfers sent by the server

 

channel是用来定义日志信息保存的位置。

        其中定义保存的位置有2种方式:

            一是将产生的日志信息直接输出到syslog日志系统中

            二是使用file来自定义日志信息保存的文件

注意:一个category可以使用多个channel来保存日志信息;但一个channel只能保存一个category日志来源信息。

 

DNS的日志系统需要在/etc/named.conf中定义。

例如:定义DNS日志系统格式如下
logging {
        channel my_query {
                file "/var/log/named/log.query" versions 3 size 10k;
                print-time yes;
                severity dynamic;
        };

        category queries { my_query; };
};

定义完成之后,在重启DNS服务,使用dig命令来解析某个主机名,就会看到日志文件会产生。

前提是日志文件的目录要存在,且属组为named,且这个目录的权限最好是770。这样定义完成之后,就可以查看该文件中有DNS的日志信息

 

 

 

 

 

 

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

linux学习之路之DNS视图及为DNS创建日志系统