Hello,

I'm fancing an extrange behaviour with DNS resolution and timeout/hold times. As testing enviroment, I use Haproxy 1.8.25 and this sample conf:

global
        master-worker
        log /dev/log local5 info
        pidfile /var/run/haproxy.pid
        nbproc 1

resolvers dns
        nameserver dns1  1.1.1.1:53

        resolve_retries       3
        timeout resolve       5s
        timeout retry        10s
        hold other           10s
        hold valid           60s
        hold obsolete        10s
        hold refused         10s
        hold nx              10s
        hold timeout         10s

listen proxy-tcp
        mode tcp
        bind *:80
        default-server check resolvers dns init-addr none resolve-prefer ipv4

        server host1 host1:80



On the DNS server, the entry for host1 is valid as noted here:

# dig host1 @1.1.1.1

;; ANSWER SECTION:
host1. 300 IN A 7.7.7.7



But getting the network traffic from the DNS server I can see the following:

11:29:31.064136 IP [bal_ip].49967 > dns1: 121+ [1au] A? host1. (62)
11:29:36.065749 IP [bal_ip].49967 > dns1: 14393+ [1au] A? host1. (62)
11:29:41.067816 IP [bal_ip].49967 > dns1: 35337+ [1au] A? host1. (62)

Each 5 seconds, as defined in "timeout resolve", it receives a query. But as it is valid, why Haproxy doesn't hold it with the time defined on "hold valid", 60 seconds?



Thanks,

Reply via email to