Where is this value coming from/how can we alter it?
So far I've been unable to reproduce this. I always get the minimum TTL in this case, which is 5s by default. I even wrote a simple test for it. The most relevant code also looks good to me (and unchanged between 5.7.6 and 6.x/master).
I wonder if those Azure servers would rarely send something else at that malfunctioning period in time. But the cause could be something completely else; I just don't know so far.
--Vladimir
Log from the test:
[reqdbg][policy][26518.00] request packet:
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id:
26518
;; Flags: rd QUERY: 1; ANSWER: 0; AUTHORITY: 0; ADDITIONAL: 1
;; EDNS PSEUDOSECTION:
;; Version: 0; flags: ; UDP size: 4096 B; ext-rcode: Unused
;; QUESTION SECTION
example. A
;; ADDITIONAL SECTION
[reqdbg][iterat][26518.00] 'example.' type 'A' new uid was
assigned .01, parent uid .00
[reqdbg][resolv][26518.01] => going insecure because
there's no covering TA
[reqdbg][resolv][26518.01] => using root hints
[reqdbg][iterat][26518.01] 'example.' type 'A' new uid was
assigned .02, parent uid .00
[reqdbg][select][26518.02] => id: '40992' choosing from
addresses: 1 v4 + 0 v6; names to resolve: 0 v4 + 0 v6;
force_resolve: 0; NO6: IPv6 is OK
[reqdbg][select][26518.02] => id: '40992' choosing:
'k.root-servers.net.'@'193.0.14.129#00053' with timeout 400 ms
zone cut: '.'
[reqdbg][resolv][26518.02] => id: '40992' querying:
'k.root-servers.net.'@'193.0.14.129#00053' zone cut: '.' qname:
'example.' qtype: 'A' proto: 'udp'
[reqdbg][select][26518.02] => id: '40992' updating:
'k.root-servers.net.'@'193.0.14.129#00053' zone cut: '.' with
rtt 102 to srtt: 102 and variance: 51
[reqdbg][iterat][26518.02] <= answer received:
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id:
40992
;; Flags: qr aa QUERY: 1; ANSWER: 0; AUTHORITY: 0; ADDITIONAL:
1
;; EDNS PSEUDOSECTION:
;; Version: 0; flags: do; UDP size: 1232 B; ext-rcode: Unused
;; QUESTION SECTION
example. A
;; ADDITIONAL SECTION
[reqdbg][iterat][26518.02] <= rcode: NOERROR
[reqdbg][cache ][26518.02] => stashed packet: rank 020, TTL
5, A example. (48 B)
[reqdbg][resolv][26518.02] AD: request NOT classified as
SECURE
[reqdbg][resolv][26518.02] finished in state: 4, queries: 1,
mempool: 16400 B
[reqdbg][policy][26518.00] following rrsets were marked as
interesting:
[reqdbg][policy][26518.00] answer packet:
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id:
26518
;; Flags: qr rd ra QUERY: 1; ANSWER: 0; AUTHORITY: 0;
ADDITIONAL: 1
;; EDNS PSEUDOSECTION:
;; Version: 0; flags: ; UDP size: 4096 B; ext-rcode: Unused
;; QUESTION SECTION
example. A
;; ADDITIONAL SECTION
[reqdbg][policy][03130.00] request packet:
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id:
3130
;; Flags: rd QUERY: 1; ANSWER: 0; AUTHORITY: 0; ADDITIONAL: 1
;; EDNS PSEUDOSECTION:
;; Version: 0; flags: ; UDP size: 4096 B; ext-rcode: Unused
;; QUESTION SECTION
example. A
;; ADDITIONAL SECTION
[reqdbg][iterat][03130.00] 'example.' type 'A' new uid was
assigned .01, parent uid .00
[reqdbg][cache ][03130.01] => satisfied by exact packet:
rank 020, new TTL 5
[reqdbg][iterat][03130.01] <= answer received:
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id:
34288
;; Flags: qr aa QUERY: 1; ANSWER: 0; AUTHORITY: 0; ADDITIONAL:
0
;; QUESTION SECTION
example. A
[reqdbg][iterat][03130.01] <= rcode: NOERROR
[reqdbg][resolv][03130.01] AD: request NOT classified as
SECURE
[reqdbg][resolv][03130.01] finished in state: 4, queries: 1,
mempool: 16400 B
[reqdbg][policy][03130.00] following rrsets were marked as
interesting:
[reqdbg][policy][03130.00] answer packet:
;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id:
3130
;; Flags: qr rd ra QUERY: 1; ANSWER: 0; AUTHORITY: 0;
ADDITIONAL: 1
;; EDNS PSEUDOSECTION:
;; Version: 0; flags: ; UDP size: 4096 B; ext-rcode: Unused
;; QUESTION SECTION
example. A
;; ADDITIONAL SECTION