Comment 0 for bug 1472510

Revision history for this message
Patrik Lundin (patrik-lundin) wrote : Unbound returns SERVFAIL for specific query on specific dual stacked machine

Hello,

I noticed a problem on one of my dual stacked (IPv4 and IPv6) Trusty Tahr machines running unbound.

The problem initially was that i failed running dig +trace against it, where it would hang when looking up the root servers.

I could verify the problem using unbound-host:
===
# unbound-host -f /var/lib/unbound/root.key a.root-servers.net
Host a.root-servers.net not found: 2(SERVFAIL).
Host a.root-servers.net not found: 2(SERVFAIL).
Host a.root-servers.net not found: 2(SERVFAIL).
===

The most interesting part was that when forcing either IPv4 or IPv6, it worked:
===
# unbound-host -4 -f /var/lib/unbound/root.key a.root-servers.net
a.root-servers.net has address 198.41.0.4
a.root-servers.net has IPv6 address 2001:503:ba3e::2:30

# unbound-host -6 -f /var/lib/unbound/root.key a.root-servers.net
a.root-servers.net has address 198.41.0.4
a.root-servers.net has IPv6 address 2001:503:ba3e::2:30
===

Looking at the debug-output i noticed several occurences of the following messages:
===
# unbound-host -d -d -f /var/lib/unbound/root.key a.root-servers.net
[...]
[1436342178] libunbound[14283:0] debug: request has exceeded the maximum number of sends with 17
[1436342178] libunbound[14283:0] debug: return error response SERVFAIL
[...]
===

Comparing this against the changelog of unbound (https://www.unbound.net/download.html) I noticed 1.5.0 had increased the MAX_SENT_COUNT definition from 16 to 32.

Attached is a diff which backports this change, which solved my problem.

The most annoying thing about this problem is that I can not recreate it on another host which is both the same Ubuntu version and dual stacked.