How's your python? Download

  https://github.com/m3047/shodohflo/blob/master/examples/dnstap2json.py

and see if you can make that go. Well really, download the entire repo. The framestreams implementation is here:

  https://github.com/m3047/shodohflo/blob/master/shodohflo/fstrm.py

I make no apologies for framestreams, I think think they could have done better borrowing from how DNS does TCP but that's just my opinion. In any case, it requires a "notary sojack" (handshake) from the "server"... yes your client is the server. Is whatever you're using as a sink sending the handshake?

(There is a complete pure python implementation of framestreams / protobuf in there.)

--

Fred Morris, internet plumber

On Sat, 27 Jun 2026, Peter 'PMc' Much wrote:

A while back I upgraded an internal server from 9.18 to 9.20.
Everything works fine there.

Now I upgraded a public server (rented KVM). Same config, same
infrastructure. It probably works, but there is no dnstap output, so I
am blind.

I put a hexdump on the socket like so (before starting named):

root@wand:/tmp # /usr/bin/stdbuf -o 0 /usr/local/bin/fstrm_capture \
  -t protobuf:dnstap.Dnstap -u /var/named//var/run/dnstap.sock -w - | hd
fstrm_capture: opening Unix socket path /var/named//var/run/dnstap.sock
fstrm_capture: opened output file -
00000000  00 00 00 00 00 00 00 22  00 00 00 02 00 00 00 01  |......."........|
00000010  00 00 00 16 70 72 6f 74  6f 62 75 66 3a 64 6e 73  |....protobuf:dns|

And that is all that appears.
[...]

--
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list.

Reply via email to