前面两篇DNS文件讲解了基本的安装配置和主从复制:
DNS服务器之一:DNS简介及BIND安装与基本配置
DNS服务器之二:BIND反向解析和主从复制
本文将深入讲解DNS服务器bind98的高级用法,主要包括:
- DNS转发配置
- ACL应用与配置
- 使用bind实现智能DNS
- BIND日志系统介绍
一、DNS转发:
在DNS服务器的配置中,如果采用默认的配置,其实效率是较低的,因为默认情况下,我们所有的非权威解析都会被发送到根服务器进行迭代查询。如果采用转发,如将我们的DNS解析请求转发到一些公共DNS服务器上,由于公共DNS服务器上缓存了大量的解析,因此能较原始的迭代查询快。
全局转发:
作用:实现对非权威解析(已缓存的除外)都转发到特定DNS服务器
配置办法:
options {
……其他配置省略……
forwarders { 202.96.134.133;8.8.8.8; };
};
如果仅设置“forwarders”,则在无法联系转发器时,就会尝试自己解析,即转发到根服务器迭代查询实现解析(如果配置有根zone)。
如果想服务器在联系不到转发器时不进行多余操作,则可以加上“forward only; ”(如下:);这样如果联系不上转发器是,服务器将只查询权威解析和本地缓存的解析。
options {
……其他配置省略……
forwarders { 202.96.134.133;8.8.8.8; };
forward only;
};
区域转发:
从BIND9.1开始,引入一个新特新:转发区(forward zone ),及允许查询特定区域时,将其转发到指定DNS服务器上。
配置方法:
zone “com” {
type master;
file “named.com”;
forwarders { 192.35.51.30;192.5.6.30; };
};
如上,我们可以将某个域的解析直接转发到其权威服务器上,可以实现快速解析。
二、ACL应用与配置:
在named.conf的全局配置中,有如下这样的一行定义允许为那些客户端进行递归查询:
options {
……其他配置省略……
allow-query { 192.168.8.0/24; };
};
我在测试时只允许了这一个IP段,如果是大型企业或者公网,我们需要允许的客户端有数十个IP段时,这里会写很长,而且如果在多个地方需要用到,则需写多次,配置相当麻烦,且影响查看。因此引入ACL,可以实现集中定义,所有位置均可引用。ACL类似程序开发中的函数。
配置方法:
acl ACL_NAME {
< 需要定义的网段>; //每个网络范围一行,可以包含多行
};
如:
acl trust {
172.16.100.0/24;
10.35.0.0/24;
192.168.0.0/24;
127.0.0.1;
};
options {
allow-query { trust; }; //引用上面定义的ACL
……其他配置省略……
};
在下面的自建智能DNS中,我们将会再次应用到ACL。
三、使用bind实现智能DNS:
要实现智能DNS解析,如联通客户端解析到联通IP,电信客户端解析到电信IP,实现起来并不难,具体如下:
- 获取各运营商(如电信、联通等)IP列表
- 为web服务器配置多个网络出口(IP)
- 配置智能解析DNS
要实现DNS服务器的智能解析,需要先理解一个概念:view
view就是将不同IP地址段发来的查询响应到不同的DNS解析。例如需要对2个不同IP地址段进行配置,就需要明确这些IP地址段,这样View功能才会有效。需要注意的是,一旦使用view,所有域都必须定义在view。
下面我们就以网段192.168.1.0/24来模拟电信网络;192.168.8.0/24模拟联通网络进行测试:
配置named.conf:
acl “telecom” {
192.168.1.0/24;
};options {
listen-on port 53 { 192.168.8.101; };
allow-query { any; };
directory “/var/named”;
notify yes;
};view telecom {
match-clients { telecom; }; //引用前面定义的电信网络ACL,指定本view匹配
zone “.” IN {
type hint;
file “named.ca”;
};zone “toxingwang.com” IN {
type master;
file “telecom.toxingwang.com”; //定义本view对应的数据文件
};
};view unicom {
match-clients { any; }; //定义除了电信网络外的其他网络
zone “.” IN {
type hint;
file “named.ca”;};
zone “toxingwang.com” IN {
type master;
file “unicom.toxingwang.com”; //指定本view对应的数据文件
};
};
配置数据文件:
电信view对应数据文件
[root@ns named]# vi /var/named/telecom.toxingwang.com ##电信view对应数据文件
$TTL 1H
@ IN SOA ns.toxingwang.com. admin.toxingwang.com. (
2013081703 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns.toxingwang.com.
IN NS ns2.toxingwang.com.
IN MX 10 mail.toxingwang.com.
ns IN A 192.168.8.101
ns2 IN A 192.168.8.100
www IN A 192.168.1.2
mail IN A 192.168.1.3
www2 IN CNAME www.toxingwang.com.
blog IN A 192.168.1.4
其他view对应数据文件:
[root@ns named]# vi /var/named/unicom.toxingwang.com
$TTL 1H
@ IN SOA ns.toxingwang.com. admin.toxingwang.com. (
2013081703 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns.toxingwang.com.
IN NS ns2.toxingwang.com.
IN MX 10 mail.toxingwang.com.
ns IN A 192.168.8.101
ns2 IN A 192.168.8.100
www IN A 192.168.8.2
mail IN A 192.168.8.3
www2 IN CNAME www.toxingwang.com.
blog IN A 192.168.8.4
重启服务器生效。
客户端测试:
192.168.1.0/24段客户端测试:
192.168.8.0/24段客户端测试:
因此,如果将公网上的电信IP列表写入ACL中,且本DNS服务器放置在公网上为toxingwang.com提供解析,则不同网络的客户端DNS请求会得到不同的结果。一个智能DNS就实现了。
四、BIND日志系统:
……更新中……