【DNS入门学习】之BIND递归查询

举报
anna 发表于 2017/11/25 15:05:06 2017/11/25
【摘要】 一般客户机和服务器之间属递归查询,当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机。主机向本地域名服务器的查询一般都是采用递归查询。默认情况下bind关闭了转发查询,但是递归查询是开启的。 一、配置参数 1.recursion 如果是yes,并且一个DNS询问要求递归,那么服务器将会做所有能够回答查询请求的工作。如果recu

一般客户机和服务器之间属递归查询,当客户机向DNS服务器发出请求后,DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到结果后转交给客户机。主机向本地域名服务器的查询一般都是采用递归查询。默认情况下bind关闭了转发查询,但是递归查询是开启的。
一、配置参数
1.recursion

如果是yes,并且一个DNS询问要求递归,那么服务器将会做所有能够回答查询请求的工作。如果recursionoff的,并且服务器不知道答案,它将会返回一个推荐(referral)响应。默认值是yes。注意把recursion设为no,不会阻止用户从服务器的缓存中得到数据,它仅仅阻止新数据作为查询的结果被缓存。服务器的内部操作还是可以影响本地的缓存内容,如NOTIFY地址查询。
2.allow-recursion
设定哪台主机可以进行递归查询。如果没有设定,缺省是允许所有主机进行递归查询。注意禁止一台主机的递归查询,并不能阻止这台主机查询已经存在于服务器缓存中的数据。
3.recursive-clients
服务器同时为用户执行的递归查询的最大数量。默认值1000,因为每个递归用户使用许多位内存,一般为20KB,主机上的recursive-clients选项值必须根据实际内存大小调整。
二、配置格式
recursion yes | no;
recursive-clients number;
allow-recursion { address_match_list | any | none;};
配置实例:
recursion      yes;
allow-recursion   { any; };

allow-recursion { 10.0/16; };
recursive-clients 25;
注意:
如果你要建立一个 授权域名服务器服务器, 那么不要开启recursion(递归)功能。
如果你要建立一个 递归 DNS 服务器, 那么需要开启recursion 功能。
如果你的递归DNS服务器有公网IP地址, 你必须开启访问控制功能,只有那些合法用户才可以发询问. 如果不这么做的话,那么你的服服务就会受到DNS 放大攻击。实现BCP38将有效抵御这类攻击。

使用非递归查询服务器需要注意:
一、保证该非递归服务器不出现在客户机的/etc/resolv.conf
二、保证该非递归服务器不被其他 name server 当成转发器 forwarder
三、推荐使用 allow-recursion 而不是 recursion (关闭allow-recursion { none; };)
四、该非递归服务器可以出现在 zone data file NS 记录中。它可以正常的接收其他 name server 发来的查询
五、外部 name server 是通过上级域的 Referral 消息找到该非递归服务器的
六、外部 name server 在得到上级域的 Referral 消息后,向该非递归服务器发送的查询是 iterative query ,而不是 recusive query ,所以该非递归服务器仍然可以回答那些它所权威的 zone 的查询。但不能用于查询外部域名了。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。