Chinaunix
标题:
BIND 高级特性--转发 forwarder
[打印本页]
作者:
0416pig
时间:
2008-10-08 17:03
标题:
BIND 高级特性--转发 forwarder
BIND 高级特性(一)-- 转发 forwarder
最新的 BIND 提供了很多非常好的新特性,转发 ( Forwarder )就是其中的一个
某些网络连接不鼓励向本地以外发送很大的数据流量,这要么是因为网络连接是按流量计费的,或网络连接本身是带宽不足。在这样的情况
下,如果想将发往外部的 DNS 流量限制到尽可能的小,就需要使用 BIND 的转发机制。或者你的网络中只有一台机器能连接到 Internet ,而
你在这台机器上运行了 BIND ,那么你可以将这台 BIND 作为内部网络中的其他 BIND 的转发器,使得其他 DNS 也能查找 Internet 域名。
转发机制的这样的:当你设置了转发器后,所有非本域的和在缓存中无法找到的域名查询都将转发到设置的 DNS 转发器上,由这台 DNS 来
完成解析工作并做缓存,因此这台转发器的缓存中记录了丰富的域名信息。因而对非本域的查询,很可能转发器就可以在缓存中找到答案,避
免了再次向外部发送查询,减少了流量。
转发器的配置格式是:
options {
forwarders { 192.168.24.35; 192.168.24.36; };
};
这里要注意,转发器本身不用做任何设置,而是对需要转发器的其他 DNS server 做以上配置。还有,如果该 DNS Server 无法联系到转发
器,那么 BIND 会自己尝试解析。
如果你要禁止 BIND 在无法联系到转发器时不做任何操作,那么你还可以使用 forward only 命令,这样 BIND 只能使用区的权威数据和缓
存来响应查询了( 在连接不到转发器的情况下 )。
options {
forwarders { 192.168.24.35; 192.168.24.36; };
forward only;
};
在 BIND 8.2 以后引入了一个新的特性:转发区( forward zone ),它允许你把 DNS 配置成只有查找特定域名的时候才使用转发器。(
BIND 9 从9.1.0 才开始有转发区功能 )例如,你可以使你的服务器将所有对 xmgd.com 结尾的域名查询都转发给 xmgd.com 的两台名字服务
器:
zone "xmgd.com" {
type forward;
forwarders { 210.52.83.228; 210.52.83.229; };
};
这样的功能有什么用呢?假设 xmgd.com 和你的网络有一个私有的连接,而 xmgd.com 又没有连接上 Internet ,那么你从 Internet 是无
法查到 xmgd.com 后缀的域名的,这时你就要使用转发区的功能了。
还有一种转发区设置和刚才的设置刚好相反,它允许你设置什么样的查询将不被转发,当然这只适用于在 options 语句中指定了转发器的
DNS 。配置如下:
options {
directory "/var/named";
forwarders { 192.168.24.35; 192.168.24.36; };
};
zone "xmgd.com" {
type master;
file "zone.xmgd.com";
forwarders {};
};
这样写你可能会问为什么你要在自己的权威区里禁止转发?难道不是自己回答查询而不使用转发器吗?有这样一种情况,在 xmgd.com 这个
区中,你授权了几个子域,例如:zx.xmgd.com、lab.xmgd.com 等,那么在 xmgd.com 的权威服务器上设置转发后,因为对 zx.xmgd.com、
lab.xmgd.com 这几个子域不是权威,那么如果有对
www.zx.xmgd.com
这样的子域的域名查询,服务器也将转发。这完全是没有必要的,因为
服务器上就有 zx.xmgd.com 子域的 NS 记录,何须再转发。
具体测试时配置(仅供参考):
1、转发器(192.168.1.2):named.conf:
include "/usr/local/bind/etc/rndc.key";
options {
directory "/var/named";
pid-file "/usr/local/bind/var/run/named.pid";
allow-query { any; };
recursion yes;
};
zone "." {
type hint;
file "/var/named/named.root";
};
zone "ceshi.com" {
type forward;
forwarders { 192.168.1.1;};
forward only;
};
转发器上的/var/named下不需要添加ceshi.com的文件
2、DNS Server(192.168.1.1) named.conf:
include "/usr/local/bind/etc/rndc.key";
options {
directory "/var/named";
pid-file "/usr/local/bind/var/run/named.pid";
allow-query { any; }; //此处不加也可以
recursion yes; //此处我测试时no了也可以
};
zone "." {
type hint;
file "/var/named/named.root";
};
zone "ceshi.com" {
type master;
file "/var/named/ceshi.com.hosts";
};
/var/named下的ceshi.com的文件:
$ttl 600
ceshi.com. IN SOA ns.ceshins.com. webmaster.ceshins.com. (
1077295082
10800
3600
604800
600 )
ceshi.com. IN NS ns.ceshins.com.
www.ceshi.com
. IN A 3.3.3.3
本文来自ChinaUnix博客,如果查看原文请点:
http://blog.chinaunix.net/u2/76972/showart_1276006.html
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2