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

ACL、dns日志、queryperf压力测试、dnstop性能测试_queryperf

服务器的智能解析
首先,配置三个网络:一个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性能测试_ACL_02

然后去创建2个zone文件

ACL、dns日志、queryperf压力测试、dnstop性能测试_dnstop_03

ACL、dns日志、queryperf压力测试、dnstop性能测试_dns_04

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_ACL_05

创建unicom.mageedu,com.zone同上

ACL、dns日志、queryperf压力测试、dnstop性能测试_dns_06

然后重启服务

ACL、dns日志、queryperf压力测试、dnstop性能测试_dnstop_07

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_ACL_08

ACL、dns日志、queryperf压力测试、dnstop性能测试_dns_09

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_queryperf_10

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_queryperf_11

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_dns_12

ACL、dns日志、queryperf压力测试、dnstop性能测试_dns_13

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_queryperf_14

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_dns_15

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_dns_16

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_dns_17

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_queryperf_18

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_ACL_19

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_queryperf_20

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_queryperf_21

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_dns_22

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_dnstop_23

测试queryperf : 压力测试

ACL、dns日志、queryperf压力测试、dnstop性能测试_queryperf_24

ACL、dns日志、queryperf压力测试、dnstop性能测试_dnstop_25

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_queryperf_26

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_queryperf_27

结果

ACL、dns日志、queryperf压力测试、dnstop性能测试_dns_28

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_ACL_29

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_dns_30


然后就行 ./configure进行编译

ACL、dns日志、queryperf压力测试、dnstop性能测试_dns_31

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_dns_32

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

ACL、dns日志、queryperf压力测试、dnstop性能测试_ACL_33