免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 24852 | 回复: 21
打印 上一主题 下一主题

[DNS] BIND 高级特性(一)-- 转发 forwarder [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-02-21 12:22 |只看该作者 |倒序浏览
最新的 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 记录,何须再转发。

论坛徽章:
0
2 [报告]
发表于 2003-02-22 11:43 |只看该作者

BIND 高级特性(一)-- 转发 forwarder

请教:

  比如一台dns服务器(dns1)上设置转发到另一台dns服务器(dns2),假设查询www.chinaunix.net,查询成功后,dns1会缓存www.chinaunix.net的记录,从下次查询吗?我想应该是缓存的吧,对吗?

论坛徽章:
0
3 [报告]
发表于 2003-02-22 11:50 |只看该作者

BIND 高级特性(一)-- 转发 forwarder

对,dns会优先从缓存中查询。
但forwarder并不是新概念啊,在bind4版本就已经有了。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2003-02-22 12:10 |只看该作者

BIND 高级特性(一)-- 转发 forwarder

原帖由 "cpss" 发表:
对,dns会优先从缓存中查询。
但forwarder并不是新概念啊,在bind4版本就已经有了。


我主要是想讲一下转发区的功能,顺带讲的转发。 呵呵  。。。

论坛徽章:
0
5 [报告]
发表于 2003-02-26 09:08 |只看该作者

BIND 高级特性(一)-- 转发 forwarder

我在使用zone forward时,发现一个问题,即recursion必须为yes,否则forward没有作用。
难道recursion yes是forward的前提吗?

论坛徽章:
0
6 [报告]
发表于 2003-02-26 09:09 |只看该作者

BIND 高级特性(一)-- 转发 forwarder

另外一个关于forward dns的问题
    一个只做forward的dns服务器,应该是只需要named.conf,zone "." zone "0.0.127.IN-ADDR.ARPA"其它所有的文件都可以不用了,(包括localhost.rev和正解反解文件)这样说,正确吗?
    我自己认为原因是所有的域都是转发,只要把datasize设置大点就可以了。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
7 [报告]
发表于 2003-02-26 12:15 |只看该作者

BIND 高级特性(一)-- 转发 forwarder

原帖由 "wangrujun" 发表:
另外一个关于forward dns的问题
    一个只做forward的dns服务器,应该是只需要named.conf,zone "." zone "0.0.127.IN-ADDR.ARPA"其它所有的文件都可以不用了,(包括localhost.rev和正解反解文件)这样说,正确吗?
..........


对的。

论坛徽章:
0
8 [报告]
发表于 2003-02-26 13:10 |只看该作者

BIND 高级特性(一)-- 转发 forwarder

谢谢阿骁。
还有这个问题:
我在使用zone forward时,发现一个问题,即recursion必须为yes,否则forward没有作用。
难道recursion yes是forward的前提吗?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
9 [报告]
发表于 2003-02-26 18:36 |只看该作者

BIND 高级特性(一)-- 转发 forwarder

原帖由 "wangrujun" 发表:
我在使用zone forward时,发现一个问题,即recursion必须为yes,否则forward没有作用。
难道recursion yes是forward的前提吗?


呵呵 。。。当然要 recursion yes ,如果是 no ,那么 BIND 只要在自己的权威 zone 和缓存中找不到查询的域名就会返回给用户说找不到啊! 你忘了非递归查询的定义吗?

论坛徽章:
0
10 [报告]
发表于 2003-02-27 13:53 |只看该作者

BIND 高级特性(一)-- 转发 forwarder

咳,我以为recursion (被译为递归查询)是只管查询,而不管forward呢。英文太烂的原因。

谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP