在syslog中绑定FORMERR错误

我最近已经closures了一个失败的路由器……而且,一段时间后,我发现了/ var / log / syslog中报告的错误(至less比查询的数量还多) :

Mar 18 19:53:20 kenneth named[4022]: DNS format error from 192.112.36.4#53 resolving ./NS: non-improving referral Mar 18 19:53:20 kenneth named[4022]: error (FORMERR) resolving './NS/IN': 192.112.36.4#53 

这可能是相关的,我有bind.conf中的以下内容:

 dnssec-enable no; dnssec-validation no; 

这可能是一个新的路由器损坏UDP数据报或其他什么问题? 新的路由器是一个(便宜的)NETGEAR WNR854T – 它有最新的固件应用。

任何人都可以build议如何最好的诊断这个错误,如果从上面不明显?

– 其他细节 – 这是一个典型的反应,从地址挖我肯定应该解决。

 $ dig A barclays.co.uk ~ ; <<>> DiG 9.8.1-P1 <<>> A barclays.co.uk ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22161 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;barclays.co.uk. IN A ;; Query time: 84 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Mar 20 23:08:40 2013 ;; MSG SIZE rcvd: 32 $ 

如果您怀疑某个networking元素(如您的路由器)正在截断或损坏UDP DNS通信,则可以尝试以下操作:

  1. 再次用dig执行相同的查询,看看你是否也获得FORMERR作为响应代码。 挖(有正确的选项)将执行类似于您的recursion服务器,但给你更多的过程中的可见性。
  2. 如果使用dig获取FORMERR,请尝试dig + tcp并查看错误是否持续(排除UDP问题)
  3. 使用Wireshark或其他嗅探器来捕获您的服务器在满足查询时递交的内容。

您日志中的所有FORMERR错误是否抱怨非改进的引用? dig说什么是在生成这些错误消息的查询的“附加”部分?

最后,你有没有提到的存根区域或前进或前进区域?