NSD4でクエリログが取れるパッチ


どさにっきさんで公開してたNSDでクエリログが取れるようになるパッチ「NSD query logging 」がNSD3用でNSD4だとコンパイルできなかったので、少し変更してNSD4でも動くようにした(変更と言ってもaddr2ipをaddr2strにしただけなんだけどね…)。

--- ./query.c.orig 2014-01-30 22:41:10.000000000 +0900 +++ ./query.c 2014-10-19 14:11:38.141567865 +0900 @@ -1273,6 +1273,7 @@ nsd_rc_type rc; query_state_type query_state; uint16_t arcount; + char address[128]; /* Sanity checks */ if (buffer_limit(q->packet) < QHEADERSZ) { @@ -1380,6 +1381,19 @@ return query_error(q, NSD_RC_OK); } + /* query logging */ + addr2str(&q->addr,address, sizeof(address)); + log_msg(LOG_INFO, "client %s: query %s %s %s %s%s%s%s%s", + address, + q->qname ? dname_to_string(q->qname, NULL) : "(null)", + rrclass_to_string(q->qclass), + rrtype_to_string(q->qtype), + RD(q->packet) ? "+" : "-", + q->edns.status == EDNS_OK ? "E" : "", + q->tcp ? "T" : "", + q->edns.dnssec_ok ? "D" : "", + CD(q->packet) ? "C" : ""); + query_prepare_response(q); if (q->qclass != CLASS_IN && q->qclass != CLASS_ANY) {

ダウンロードしたい方はこちら から。

動作確認はNSD 4.1.0にてやってます。適当にクエリを流した感じちゃんとログに落ちてました。ご利用は自己責任にて。

作成日:2014/10/19 14:20:54
トラックバック  ※トラックバックは承認後に表示されます。
TrackbackURL:このページのトラックバックの受付は終了しています。

トラックバックはありません。
コメント
名前:

タイトル:

コメント: