DNS bind9执行rndc dumpdb导出缓存仅见失败应答无成功解析记录
问题排查及解决方法
1. 导出命令参数配置错误
rndc dumpdb 的 -cache 参数默认仅导出负缓存(也就是你能看到的解析失败记录),要导出所有缓存内容需要额外添加 -all 参数:
rndc dumpdb -cache -all
执行上述命令后再查看named_dump.db文件,就能看到成功解析的缓存记录。
2. BIND缓存功能未正常开启
检查named.conf配置文件的options段,确认以下配置符合要求:
- 开启递归功能:
recursion yes; - 允许你的测试客户端IP段使用递归:
allow-recursion { 你的测试IP/网段; }; - 未禁用缓存:删除
max-cache-size 0;、cache-file none;这类禁用缓存的配置项
修改配置后执行rndc reload生效,再重新做dig测试后导出缓存即可。
3. 缓存已过期
成功解析的记录TTL到期后会被自动从缓存中清理,建议你执行dig查询后立即执行缓存导出命令,避免记录过期被清理。
4. 查询域名属于本地权威区
如果你dig查询的域名是BIND本地配置的权威区内的域名,这类记录会直接从权威区读取,不会存入缓存,自然不会出现在缓存导出文件中。
内容的提问来源于stack exchange,提问作者sylvinho81
相关产品推荐
相关产品推荐

