ACL 的使用
回顾:
allow-recursion {}; 定义能够被递归的客户端
allow-query {}; 允许查询的客户端
allow-transfer{};允许实现区域传送
      axfr
      ixfr
如果其中需要定义的客户端比较多的时候应该怎么办?
这样就可以使用一个变量来定义,它就是acl
acl ACL_NAME {
      ***.***.***/**;
      ***.***.***/**;
};

ACL、dns日志、queryperf压力测试、dnstop性能测试_第1张图片

服务器的智能解析
首先,配置三个网络:一个172.168.100.1 一个192.168.0.141.一个172.16.100.8
其中把192假设为联通网络的客户端,172**.8假设为电信的客户端
然后到主服务器中定义named.conf(刚才做实验的2个从服务器的named服务停掉)
“这里我们需要用到一个新的功能 view
view VIEW_NAME {
};所有的区域都必须定义在试图中
其中match-clients { }; //表示使用定义acl中的哪个

ACL、dns日志、queryperf压力测试、dnstop性能测试_第2张图片

然后去创建2个zone文件

173545616.jpg

ACL、dns日志、queryperf压力测试、dnstop性能测试_第3张图片

修改文件的属组及用户权限

173608465.jpg

创建unicom.mageedu,com.zone同上

ACL、dns日志、queryperf压力测试、dnstop性能测试_第4张图片

然后重启服务

173632383.jpg

然后到每个客户端下dig查询

ACL、dns日志、queryperf压力测试、dnstop性能测试_第5张图片

ACL、dns日志、queryperf压力测试、dnstop性能测试_第6张图片

然后在telecom的客户端进行查询

ACL、dns日志、queryperf压力测试、dnstop性能测试_第7张图片

然后就可以观察已经做好了。
但是如果想解析不管是电信还是联通,显示的结果都相同应该怎么设置呢?

ACL、dns日志、queryperf压力测试、dnstop性能测试_第8张图片

这样的方法也简单,在unicom与telecom中都定义一个域,并且定义的相同,如图
然后还是使用上边的方法创建zone文件

ACL、dns日志、queryperf压力测试、dnstop性能测试_第9张图片

173749754.jpg

赋予权限并重启
然后在两个客户端重新做dig测试
返回结果一样如下:

173805475.jpg

但是 这样的情况就麻烦了。比如,我需要定义1000个域名。那么就必须要在联通和电信的两个域中都定义并且打上1000编,这样是很麻烦的。所以,现在人们一般都把这些存放在一个表中,DNS启动的时候都会去表中提取。修改也简单。但是读取上造成了一点麻烦:每次去读取都要去查表,虽然速度很快。
给服务器添加日志功能

173824345.jpg

在这里定义querylog
注:真正添加日志会耗慢DNS的速度
然后重启服务
service named restart
在客户端进行下dig查询然后回服务器中查看日志

ACL、dns日志、queryperf压力测试、dnstop性能测试_第10张图片

我们的DNS其实也给我们定义了一个很有弹性的日志系统
      category: 日志源,可以通过catagory自定义日志来源
      channel: 日志保存到什么地方,
             syslog: /vat/messages
             file: 自定义保存日志信息的文件
注意:一个category可以定义多个channel,但是一个channel只属于一个category

ACL、dns日志、queryperf压力测试、dnstop性能测试_第11张图片

我们这里来定义一下我们的查询日志
定义在named.conf中

ACL、dns日志、queryperf压力测试、dnstop性能测试_第12张图片

然后创建named目录并把属组属主给named

173915201.jpg

重启named
然后用客户端进行下查询
回到主服务器中查看下日志

173929985.jpg

定义一个记录传输日志
同样,先来定义named.conf中的logging

ACL、dns日志、queryperf压力测试、dnstop性能测试_第13张图片

继续重启named继续进行客户端查询操作
然后继续回来查看日志

174008559.jpg

然后创建DNS日志的方式基本上就是这样了,如果需要创建别的可以来查看这个表

ACL、dns日志、queryperf压力测试、dnstop性能测试_第14张图片

测试queryperf : 压力测试

ACL、dns日志、queryperf压力测试、dnstop性能测试_第15张图片

ACL、dns日志、queryperf压力测试、dnstop性能测试_第16张图片

因为queryperf 需要创建一个文件,在文件中说明需要查询什么内容,所以
回到家目录下创建一个text文件
然后其中内容添加查询内容

174055903.jpg

为了测试性能,这个可以复制粘贴万行。然后进行测试

174108379.jpg

结果

174117332.jpg

测试 dnstop 性能测试
首先下载编译安装dnstop

ACL、dns日志、queryperf压力测试、dnstop性能测试_第17张图片

在编译安装前,我们要准备编译环境将开发工具及开发库安装及libpcap-devel的支持
所以

174258697.jpg


然后就行 ./configure进行编译

174310782.jpg

然后dnstop -4 –Q –R eth0打开测试

174327659.jpg

这个时候,就可以返回上边客户端进行查询,然后迅速返回这边观察dnstop的状态

ACL、dns日志、queryperf压力测试、dnstop性能测试_第18张图片