magicwen 发表于 2013-04-12 11:01

Ubuntu 设置DNS服务器转发查询 为什么要开启allow-query-cache选项?

在单位的DNS服务器上 开启DNS转发功能

网上的方法都是:
编辑:/etc/bind$ less named.conf.options


   forwarders {
                61.177.7.1;
         };

发现不行,本论坛上也曾有人发帖说不行。

然后同事找到资料说要加多一句: allow-query-cache {any;};

那就加多了一句发现确实可以了

但是从网上资料来看

这句的意思是允许允许任何客户端查询缓存。 这个实现转发查询有什么关系?为什么启用了 allow-query-cache就可以了

还请各位解答一下原理。

llzqq 发表于 2013-04-12 16:29

顾名思义cache 的意思是DNS服务器在完成一次解析后会把解析结果缓存起来,下次有相同的查询时直接返回结果,这样大大加快了查询速度。

magicwen 发表于 2013-04-12 16:49

llzqq 发表于 2013-04-12 16:29 static/image/common/back.gif
顾名思义cache 的意思是DNS服务器在完成一次解析后会把解析结果缓存起来,下次有相同的查询时直接返回结果, ...

我的意思是这句和开启转发有什么联系

Ubuntu怎么样才算真正开启了DNS转发查询功能?

llzqq 发表于 2013-04-12 17:24

你需要的是递归DNS,有两种方式,一种是转发模式(就是你设的那种方式,它把解析工作转给了外部DNS)这种方式不好。另一种是自递归方式,这种方式更好。

allow-query-cache {any;};
allow-query   { any; };
recursion yes;

无论哪种方式,allow-query-cache都是要开启的,原因上面已经说过了。

magicwen 发表于 2013-04-12 18:59

llzqq 发表于 2013-04-12 17:24 static/image/common/back.gif
你需要的是递归DNS,有两种方式,一种是转发模式(就是你设的那种方式,它把解析工作转给了外部DNS)这种方式 ...

嗯那就迷惑了有些资料建议不开启递归查询
比如这个贴:http://blog.csdn.net/cnbird2008/article/details/3913624
“因为任何人都可以利用你的服务器来做DNS这样知道的多了,会造成严重的负载”

“allow-query-cache在未设置allow-recursion的情况下可以取代allow-recursion的功能,有继承关系。如果想禁止用户的递归查询请求,还需要将 allow-query-cache 选项关闭,否则用户仍然可能在 cache 中查到数据”


如果现在做纯粹的 抓发模式的话 难道

forwarders {
                61.177.7.1;
         };
allow-query-cache{any;};
recursion no;
这样就可以?

llzqq 发表于 2013-04-12 19:50

LZ有些DNS的感念还没搞清楚呢,建议看一下我写的扫盲系列之二:DNS的分类

http://bbs.chinaunix.net/thread-1573358-1-1.html

magicwen 发表于 2013-04-15 08:56

回复 6# llzqq

谢谢!


   
页: [1]
查看完整版本: Ubuntu 设置DNS服务器转发查询 为什么要开启allow-query-cache选项?