BINDバージョンアップ後毎日0時に謎のエラーが発生

インターネットにつながらないクローズドなシステムで、毎日0時に謎のエラーが発生するようになりました。

RHELのsyslogには以下のようにエラーメッセージが出力されていました。

query failed (SERVFAIL) for xxx.xxx.xxx/IN/A at ../../../bin/named/query.c:7630
query failed (SERVFAIL) for xxx.xxx.xxx/IN/ANY at ../../../bin/named/query.c:7038

ログの重要度は「Information」で出ていたため、ログ監視では気づかなったのですが、syslogサイズが肥大化しており、ディスクの容量監視に引っかかりました。

ログからDNSのクエリログだとはわかったのですが、もう何年も運用しているシステムであり、何故今頃容量監視に引っかかったのか疑問でした。

過去のsyslogを追っていくと、ある時を境に出力されるようになっていることがわかりました。

BINDのバージョンを9.9から9.11に上げたタイミングであり、その作業が原因でした。

BIND9.11からは仕様変更によって「query failedメッセージがsyslogに出力されるようになったようです。

この点は、RedHatのナレッジに公開されてます。

Updating bind package triggers named to give SERVFAIL error at severity info.
https://access.redhat.com/solutions/5278061

ナレッジにも記載がありますが、メッセージ出力を止めたいのであれば、named.confに以下を追加すれば良いです。

category query-errors {
  null;
};

上記定義を入れて、BINDを再起動すれば、メッセージ出力は止まりました。

ただ、ログメッセージの「xxx.xxx.xxx」の部分が名前解決対象のFQDNですが、かなりの数の通信がインターネットに出ていこうとしており、DNSサーバーでエラーとなって止められているというのが現状です。

別にDNSサーバーの負荷が上がっているわけでもないので、何の弊害もないなら良いじゃない。

と、したいところです。