刚刚将我的 Ubuntu 12.04 LTS 系统升级到 14.04 LTS,现在 bind9 / DNS 系统不再正常工作。
dig google.de
; <<>> DiG 9.9.5-3ubuntu0.5-Ubuntu <<>> google.de
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 24964
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.de. IN A
;; Query time: 0 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Sat Oct 17 16:51:06 CEST 2015
;; MSG SIZE rcvd: 27
我找到了以下有关该问题的链接:
- https://unix.stackexchange.com/questions/220256/how-to-enable-nameserver-recursion
- https://askubuntu.com/questions/464163/ubuntu-dns-server-working-but-getting-errors-in-syslog
- Dig 对外部查询返回“状态:REFUSED”吗?
然后我尝试通过例如更改我的named.conf.options
- 取消注释 dnssec 条目
- 添加递归是;允许查询 { 任何; };
- 添加允许递归
- 修改 /etc/nsswitch.conf
- 修复 /etc/bind 中的权限
git diff named.conf.options:
+ #dnssec-validation auto;
+ allow-query { any; };
+ listen-on { any; };
+ allow-recursion { any; };
+ allow-recursion-on { any; };
后
service bind 9 restart
问题仍然存在。
这些都不起作用。我想调试一下,找出发生了什么,以及为什么升级会导致我现在的系统无法使用。
为了调试我设置了日志记录
// http://www.zytrax.com/books/dns/ch7/logging.html
logging{
channel simple_log {
file "/var/log/named/bind.log" versions 3 size 5m;
//severity warning;
severity debug 10;
print-time yes;
print-severity yes;
print-category yes;
};
category default{
simple_log;
};
};
现在日志文件中有以下条目
请求未签名
如果 /etc/resolv.conf 有以下情况,则会发生这种情况
名称服务器 127.0.1.1
如果我将其更改为服务器的实际 IP 地址,问题就消失了……所以看起来 https://askubuntu.com/questions/627899/nameserver-127-0-1-1-in-resolv-conf-wont-go-away
或许有答案……
答案1
检查递归是否已打开:
recursion yes;
检查监听 IP,可能是你的 DNS(TCP53)没有监听 127.0.0.1:例如
listen-on port 53 { any; };
检查您的 dnssec 设置,它可能看起来类似于以下内容:
dnssec-enable yes; dnssec-validation yes; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key";