ACL
的使用
回顾:
allow-recursion {}; 定义能够被递归的客户端
allow-query {}; 允许查询的客户端
allow-transfer{};允许实现区域传送
axfr
ixfr
如果其中需要定义的客户端比较多的时候应该怎么办?
这样就可以使用一个变量来定义,它就是acl
acl ACL_NAME {
***.***.***/**;
***.***.***/**;
};
服务器的智能解析
首先,配置三个网络:一个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中的哪个
然后去创建2个zone文件
修改文件的属组及用户权限
创建unicom.mageedu,com.zone同上
然后重启服务
然后到每个客户端下dig查询
然后在telecom的客户端进行查询
然后就可以观察已经做好了。
但是如果想解析不管是电信还是联通,显示的结果都相同应该怎么设置呢?
这样的方法也简单,在unicom与telecom中都定义一个域,并且定义的相同,如图
然后还是使用上边的方法创建zone文件
赋予权限并重启
然后在两个客户端重新做dig测试
返回结果一样如下:
但是 这样的情况就麻烦了。比如,我需要定义1000个域名。那么就必须要在联通和电信的两个域中都定义并且打上1000编,这样是很麻烦的。所以,现在人们一般都把这些存放在一个表中,DNS启动的时候都会去表中提取。修改也简单。但是读取上造成了一点麻烦:每次去读取都要去查表,虽然速度很快。
给服务器添加日志功能
在这里定义querylog
注:真正添加日志会耗慢DNS的速度
然后重启服务
service named restart
在客户端进行下dig查询然后回服务器中查看日志
我们的DNS其实也给我们定义了一个很有弹性的日志系统
category: 日志源,可以通过catagory自定义日志来源
channel: 日志保存到什么地方,
syslog: /vat/messages
file: 自定义保存日志信息的文件
注意:一个category可以定义多个channel,但是一个channel只属于一个category
我们这里来定义一下我们的查询日志
定义在named.conf中
然后创建named目录并把属组属主给named
重启named
然后用客户端进行下查询
回到主服务器中查看下日志
定义一个记录传输日志
同样,先来定义named.conf中的logging
继续重启named继续进行客户端查询操作
然后继续回来查看日志
然后创建DNS日志的方式基本上就是这样了,如果需要创建别的可以来查看这个表
测试queryperf :
压力测试
因为queryperf 需要创建一个文件,在文件中说明需要查询什么内容,所以
回到家目录下创建一个text文件
然后其中内容添加查询内容
为了测试性能,这个可以复制粘贴万行。然后进行测试
结果
测试 dnstop
性能测试
首先下载编译安装dnstop
在编译安装前,我们要准备编译环境将开发工具及开发库安装及libpcap-devel的支持
所以
然后就行 ./configure进行编译
然后dnstop -4 –Q –R eth0打开测试
这个时候,就可以返回上边客户端进行查询,然后迅速返回这边观察dnstop的状态