Maintained by: NLnet Labs

TCP fallback on timeout

Jacob Hoffman-Andrews
Thu Apr 27 05:14:09 CEST 2017

I'm trying to understand Unbound's TCP fallback better. Is it expected
that Unbound will fall back to TCP when UDP queries timeout, or only if
it receives a truncated ANSWER?

Specifically, I'm trying to make CAA queries, and finding that, when
querying a certain DNS provider (NetRegistry), UDP queries time out but
TCP queries succeed. Specifically, if I set tcp-upstream: yes, I can get
a response, but if I set tcp-upstream: no (the default), I get timeouts
from Unbound, and I never see it fall back to TCP.

I'm considering running two Unbound instances: one with tcp-upstream:
yes, and one with tcp-upstream: no, and having my application implement
fallback between the two. That is, if a query to the first instance
times out, query the second instance. Is that a reasonable approach?