Skip to content
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

FYI: new dnstap implementation won't work with libfstrm #245

Closed
fhriley opened this issue Jun 1, 2020 · 3 comments
Closed

FYI: new dnstap implementation won't work with libfstrm #245

fhriley opened this issue Jun 1, 2020 · 3 comments
Assignees

Comments

@fhriley
Copy link
Contributor

fhriley commented Jun 1, 2020

The new implementation of dnstap sends a unidirectional stream over sockets. Both the libfstrm and golang-dns clients will fail to decode this stream because they are hardcoded to expect a bidirectional stream when using sockets (both unix and tcp). I view this as a bug in the clients, but I thought I would give you guys a heads up. Both of those projects appear to be dormant.

@edmonds
Copy link
Contributor

edmonds commented Jun 1, 2020

The unidirectional Frame Streams transport was designed to be written out to files (because there is no protocol peer when writing to a file), while the bidirectional transport was designed for sockets. The reason for using the bidirectional transport on sockets is to ensure that both sides of the connection are using the Frame Streams protocol before streaming a potentially large amount of data over the socket and automatically reconnecting when the connection is broken.

This diagram shows the relationship between the two transports:

@fhriley
Copy link
Contributor Author

fhriley commented Jun 1, 2020

Ah, ok, then it would be a bug in unbound. I was using master here because it has the fix for #193, which I needed. I assume the code here has the same issue. I tracked it down to the code not sending the READY control. It was only sending START.

@ralphdolmans
Copy link
Contributor

Thanks both for reporting this issue and providing information! The changes in PR #264 make the Unbound frame streams implementation bidirectional.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants