When a query arrives over UDP, and no answer is available in the cache, it may 
take a while to obtain an answer.  After how long will unbound drop the query 
and no longer provide a delayed response?

If the client timeout is shorter than that, unbound will reply to a client port 
that is already closed, or in some rare cases already re-assigned to a new UDP 
socket making a new request.

I believe I am seeing the latter every few million queries with a sequence 
number mismatch for request/reply via UDP to an unbound server listening on 
127.0.0.1.  My only explanation is that the high query rate (thousands per 
second) means that occasionally a new request gets the same port as a recently 
abandoned request whose UDP socket was closed.  Since I'm burning through 
thousands of ports per second, port number re-use within a few seconds of last 
use is somewhat likely, and if the nameserver is still willing to send answer 
after the client request has timed out, then that would be a way to explain the 
occasional sequence number mismatch...

I could tune the nameserver to give up sooner than the clients, or tune the 
clients to wait longer than the nameserver's willingness to send delayed 
replies.  What controls, if any are available to tune the nameserver side?

-- 
        Viktor.

Reply via email to