-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
dnstap log file not populating for every entry even if repeated. #37
Comments
The dnstap program does not do any deduplication or similar of the messages it receives, but it does use a buffered output when writing to a file. In test setups with low query volumes, this will lead to some queries not being written to the dnstap output file until a subsequent query triggers a buffer flush. If the duplicate query eventually makes it to the dnstap file, this is probably what is going on. If not, this may take further investigation. |
@cmikk thanks for the quick response. We plan to use DNSTAP on bind servers that will received very high volume of forwarding traffic. To confirm, it sounds like dnstap log output is not guaranteed, is that true? Can you share more details on your query volume tests? I would like to mimic with our Ixia test system. |
The current version of the dnstap program in this repository (version 0.3.0) makes every effort to write all data it receives to a destination file or socket. Some earlier versions (prior to 0.2.2) attempted to make this write non-blocking but this interacted poorly with the buffering implementation of a specific dnstap producer, so we backed this out in 0.2.2; all writes to any destination are blocking. Dnstap producers, on the other hand, are encouraged to drop dnstap data rather than block query processing attempting to export it. In this sense, delivery of dnstap data is not guaranteed, but loss can be reduced through faster (or more minimal) processing. The most recent volume tests we've done have used resperf to repeat a query at a selected rate and concurrency against the server under test exporting CLIENT_QUERY reports on a unix domain socket and writing to a regular file. Note that we have not run this setup recently with BIND, but did so with CoreDNS in the process of reproducing issue #34. |
It would be nice to have some control over it. |
Not sure if this belongs here or somewhere else, so let me know if my question / problem needs to be redirected.
When running dnstap I noticed the binary log only populates when new entries are requested from the named server. Is this expected?
Trouble shooting:
I was thinking the log would populate for every request no matter how frequent or similar they are. Was there a reason this was disabled? Too much overhead?
Is there a way to enable this feature?
The text was updated successfully, but these errors were encountered: