DNS视图
什么是DNS视图(dns view)?
DNS视图就是根据不同的客户来源(指的是ip),dns服务器使用不同的数据文件来完成解析过程。在这个过程中dns服务器是相同的,视图中的数据文件是不相同的。因此,不同的来源,使用不同的数据文件来解析,所以,解析后的结果也会不相同。
创建DNS view的过程
1、创建DNS的配置文件/etc/named.conf
只不过这个文件中的内容和之前的有一点不太一样。
在这里作者演示创建xsl.com这个域内的DNS服务器来说明,使服务器具有view功能
acl lan {
192.168.0.103/32 ; #如果有多个ip或者网段,可以定义ACL来说明
} ;
acl wan {
192.168.0.105/32;
};
options {
directory "/var/named" ;
allow-recursion { lan; }; #允许递归的ip或者网段,也可以使用ACL来定义
};
view nei { #这里定义的是view,nei是view的名字
match-clients { lan; };
#定义匹配的来源。只要是这些范围内的来源(这里使用的是ACL), 使用的数据文件就是下面的nei.xsl.com.zone这个文件来解析
zone "xsl.com" {
type master;
file "nei.xsl.com.zone" ;
};
};
view wai {
match-clients { wan; };
zone "xsl.com" {
type master;
file "wai.xsl.com.zone";
};
};
注意:在定义视图的时候,所有的zone必须定义在视图内部。
2、创建数据文件
nei.xsl.com.zone和wai.xsl.com.zone这两个文件的格式和之前的格式一样的。
在这里我还是写出来吧
nei.xsl.com.zone
$TTL 600
@ IN SOA ns1.xsl.com. admin.xsl.com. (
2014082401
1H
10M
2D
2D )
IN NS ns1.xsl.com.
ns1 IN A 192.168.0.103
www IN A 192.168.0.10
ftp IN A 192.168.0.20
wai.xsl.com.zone
$TTL 600
@ IN SOA ns1.xsl.com. admin.xsl.com. (
2014082401
1H
10M
2D
2D )
IN NS ns1.xsl.com.
ns1 IN A 192.168.0.103
www IN A 192.168.0.100
ftp IN A 192.168.0.200
3、关闭SElinux和使用iptables -F清空iptable中的规则
经过上述几部,使用dig -t A www.xsl.com @192.168.0.103,分别在不同的主机上面测试,得到的结果是不一样的。
自定义DNS的日志系统
默认情况下,系统产生的日志信息都定向到日志系统syslog中去了,且大多数输出到/var/log/messages文件中。但对于DNS服务器来说,基本上每天产生的查询信息就已经够多的呢。所以,我们可以专门自定义一个日志系统,用于专门存放DNS的相关信息。
定义DNS的日志系统,需要在DNS的配置文件中定义。
其中catagory是用来定义日志来源的,这些日志来源有:
default Defines default channel for categories
general Catch-all category for unclassified messages
client Client request problems
config Configuration file problems
dispatch Dispatch of inbound packets to internal server modules
dnssec DNSSEC and TSIG
lame-servers Problems due to remote server misconfiguration
network Related to network operations
notify NOTIFY announcements
queries Query processing
resolver Recursive query processing
security Accepted or denied requests
update Dynamic updates
xfer-in Zone transfers received by the server
xfer-out Zone transfers sent by the server
channel是用来定义日志信息保存的位置。
其中定义保存的位置有2种方式:
一是将产生的日志信息直接输出到syslog日志系统中
二是使用file来自定义日志信息保存的文件
注意:一个category可以使用多个channel来保存日志信息;但一个channel只能保存一个category日志来源信息。
DNS的日志系统需要在/etc/named.conf中定义。
例如:定义DNS日志系统格式如下
logging {
channel my_query {
file "/var/log/named/log.query" versions 3 size 10k;
print-time yes;
severity dynamic;
};
category queries { my_query; };
};
定义完成之后,在重启DNS服务,使用dig命令来解析某个主机名,就会看到日志文件会产生。
前提是日志文件的目录要存在,且属组为named,且这个目录的权限最好是770。这样定义完成之后,就可以查看该文件中有DNS的日志信息
本文出自 “linux学习之路” 博客,谢绝转载!