且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-09-26 23:02:19

 

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

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

 
 
服务器的智能解析
首先,配置三个网络:一个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个zone文件

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

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

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

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

创建unicom.mageedu,com.zone同上

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

然后重启服务

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 
测试queryperf : 压力测试
 

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

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

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

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

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

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

结果
 

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

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

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

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

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


然后就行 ./configure进行编译
 

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

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

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

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

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

 









本文转自 陈延宗 51CTO博客,原文链接:http://blog.51cto.com/407711169/1171117,如需转载请自行联系原作者