BIND-9.8.2‘格式错误的交易’是什么意思?

BIND-9.8.2‘格式错误的交易’是什么意思?

最近,我们的主 DNS 服务开始记录类似以下的错误:

/var/log/messages:Jun 20 13:38:18 inet03 named[3720]: malformed transaction: 
  dynamic/efa1f375d76194fa51a3556a97e641e61685f914d446979da50a551a4333ffd7.mkeys.jnl 
  last serial 103538 != transaction first serial 103361

我以前从未遇到过此错误,在常用搜索引擎上找不到任何与此相关的信息;除了我自己的问题。重新启动命名守护进程似乎已纠正导致此错误的所有原因,但我的问题仍未得到解答:

错误信息是什么意思?原因是什么?

答案1

当同一主机上同时运行两个命名实例并且使用 DNSSEC 时,就会出现此问题。一个实例不断尝试获取监听端口,而另一个实例已绑定该端口但仍继续运行。但是,这两个实例都会创建日志文件,但使用的序列号序列不同。绑定到监听端口的命名实例发现当前日志文件没有预期的序列号,从而产生错误。

解决方法是删除多余的命名实例并重新启动命名服务,并确保只有一个命名守护进程实际运行。

该问题对 DNSSEC 和 DANE 造成了严重后果,因为它会导致对查询产生虚假响应。

相关内容