[dnsdist] dnsdist and PROXYv2 testing - accepting TCP connections when an upstream server is available

Oto Šťáva oto.stava at nic.cz
Mon Jan 31 15:50:11 UTC 2022


Hello,

firstly, I want to thank everyone involved for making dnsdist available, 
it has helped me greatly these past few weeks with implementing and 
testing support for the PROXYv2 protocol in Knot Resolver [1] here at 
CZ.NIC.

I would like to incorporate dnsdist into our CI testing suite to test 
PROXYv2 automatically. We use our DNS testing harness Deckard [2] for 
this type of tests. I want to run dnsdist inside Deckard to send queries 
through it to a Knot Resolver instance that would be running there 
alongside it.

Deckard detects a server's "readiness" by trying to establish a TCP 
connection: when the server accepts the connection, Deckard deems it 
ready and when all servers are ready, the testing begins. However, I 
have run into a problem - dnsdist seems to accept TCP connections even 
when it has not successfully made a heartbeat with any upstream servers, 
and discards any queries over that connection until an upstream server 
is available to it.

I have been looking through the dnsdist docs and what I am looking for 
is probably currently not available, but I would like to ask first 
before deciding on what to do next: Is there a way to make dnsdist 
refuse all TCP connections while there are no upstream servers 
available? If not, do you have any suggestions on how to properly detect 
dnsdist's readiness?

[1] https://gitlab.nic.cz/knot/knot-resolver/-/merge_requests/1238
[2] https://gitlab.nic.cz/knot/deckard/blob/master/README.rst

Best regards
Oto Šťáva @ CZ.NIC


More information about the dnsdist mailing list