利用bind,dlz,mysql构建智能dns。能够实现将dns的数据放入mysql里面去。


yum list  all |grep bind  里面有个sdb包,也可以将我们的数据放入数据库里面去。


如何让dns开启日志功能?并不建议开启日志功能。如果打开日志功能就会影响dns的性能,会将性能给弄的很差。


只需要在option里面加入一个选项即可。man  named.conf

querylog yes;




options {


      directory "/var/named";

        querylog  yes;

};


之后查看/var/log/messages就能看到日志信息;浪费大量的空间。

可以使用catagory日志系统,帮我们定制需要对那些行为进行日志检测。


默认的日志级别是info级别。

DNS服务器默认日志输出在/var/log/messages,但是都是一些启动,重启,关闭等日志,并没有重要的DNS日志输出。针对一些重要的日志是我们想要的,我们来看看dns日志是如何

设置和定义的。


channel通道:作用主要定义日志输出的方式;

在定义通道的语句里有哪些子语句:

通道的名称,即自定义通道的名称,即是什么类别。

输出方式和路径;

输出日志的轮转;即日志1,日志2,日志3...;

输出日志的大小限制;

输出到syslog

定义消息的级别:severity critical |err |warning |notice |info |debug  |dynamic

定义类别的输出:print-category yes or no

定义等级的输出:print-severity yes or no

定义时间的输出:print-time yes or no

category类别:定义了那些数据需要记录,即在日志里输出那些日志内容。哪一类的类别使用哪个或哪几个已经定义好的通道

类别的种类:

default,没有配置的分类使用default的分类日志配置。

general,许多没有分类的内容都在此分类;

database,named使用的,用来存储和缓存的内部数据库信息;

security,接受和拒绝的请求

config配置文件分析和处理

resolver DNA解析;

xfer-in:服务器收到的域传输;

xfer-out:服务器发送的域传输。

。。。

queries 请求。







bind的日志系统,提供了两个子系统,一个叫做channel,一个叫做category。


catagory: 日志源(指的是产生日志的日志源,不如说有的是跟查询有关的,有的是跟区域传送相关的。)所以catagory可以让我们定义日志来源。

查询

区域传送;

可以通过catagory自定义日志来源;

一个catagory,可以存放到多个位置;一个channel只能存放一个catagory。


catagory:

channel: 定义日志的日志保存位置;

syslog:系统日志;使用日志级别的概念。/var/log/messages.

file: 自定义保存日志信息的文件。



channel  "default_syslog" { syslog daemon log;security info }"

channel "default_debug"  { file "named.run";severity dynamic }"

channel "default_stderr" { stderr;severity info;}

channel "default_null" { null; }


catagory:

logging {

file "log.msgs" version 3 size 10k; #一旦达到10k,就开始滚动,日志是可以滚动的;

severity dynamic;       #定义日志级别;

};

channel my_syslog {

syslog local0;        #定义syslog里面local0的信息存放到哪里去;

severity info;         #定义local0里面的普通信息放到固定位置去。

};

category xfer-in { my_file; }; #传入   #将传入日志保存到my_file里面去;

category update { my_syslog; }; #更新信息

};

下面举例说明:

vim /etc/name.conf


logging {

        channel querylog {

                file "/var/log/bind_query.log" versions 5;

                severity dynamic;

                print-category yes;

                print-time yes;

                print-severity yes;

        };


        category queries { querylog; };#  以上记录到是查询日志的;如果想定义传输日志,也可以再进行定义。

};

加入如下参数即可。

注意修改日志文件的权限,都为named的。






dnstop:就可以帮我们查看dns的性能。



queryperf : 压力测试

queryperf -d test -s 172.16.100.1  能够测试出来每秒钟能够完成多少测试;

cat test

www.zledu.com.       A

mail.zledu.com       A

zledu.com. NS

ns1.zledu.com. A

pop3.zledu.com.    A

做测试的时候,可以考虑使用不同的虚拟机做个测试,试验下速度到底有多快或者速度到底有多慢。


dnstop工具的使用,如何使用它。

dnstop  -4  -Q -R eth0

通过这个命令,帮助我们补获记录通过eth0这个网卡过来寻求解析的主机地址。