Ticket #397 (closed defect: invalid)

Opened 20 months ago

Last modified 17 months ago

recursor-3.3-hooks inconsistent ttl in lua postresolve()

Reported by: anon Owned by: ahu
Priority: normal Milestone:
Component: recursor Version:
Severity: normal Keywords:
Cc:

Description

i'm trying to implement postresolve script and came across some inconsistent behaviour.

function postresolve ( remoteip, domain, qtype, records, origrcode )

for key,val in pairs(records) do

-- pdnslog(".. records: "..domain.." "..key.." ("..val.qtype..") "..val.ttl) pdnslog(".. "..key.." => ") for kk,vv in pairs(val) do

pdnslog("... "..kk.." => "..vv)

end

end return origrcode, records

end

if i query a domain with low ttl, ie.

root@kuromaku:~# for i in n1g.akamaiedge.net. n6g.akamaiedge.net. n4g.akamaiedge.net. n7g.akamaiedge.net. n2g.akamaiedge.net. n5g.akamaiedge.net. n0g.akamaiedge.net. n3g.akamaiedge.net. n8g.akamaiedge.net. ; do dig e5237.g.akamaiedge.net @$i | grep e5237.g.akamaiedge.net ; done e5237.g.akamaiedge.net. 20 IN A 2.16.37.55 e5237.g.akamaiedge.net. 20 IN A 2.16.37.55 e5237.g.akamaiedge.net. 20 IN A 2.16.37.55 e5237.g.akamaiedge.net. 20 IN A 2.16.37.55 e5237.g.akamaiedge.net. 20 IN A 2.16.37.55 e5237.g.akamaiedge.net. 20 IN A 2.16.37.55 e5237.g.akamaiedge.net. 20 IN A 2.16.37.55 e5237.g.akamaiedge.net. 20 IN A 2.16.37.55 e5237.g.akamaiedge.net. 20 IN A 2.16.37.55

i'm getting a syslog entry every time local recursor cache expires. but a ttl entry in such a refresh is not the one returned by authoritative nameservers - see attached file.

it seems that in most cases returned ttl is correct (20 seconds), but sometimes it drifts.

what i expect is to get a DNSResourceRecord as get from authoritative dns server in lua.

any advise?

Attachments

akamai-ttl-dance.txt Download (31.9 KB) - added by anon 20 months ago.

Change History

Changed 20 months ago by anon

Changed 17 months ago by peter

  • status changed from new to closed
  • resolution set to invalid

postresolve gets a response right before it is going out to a client. The only thing that can prevent a response to go via postresolve, is the packetcache. Different requests, even if they need the same data, will not map to the same packetcache entry.

Your postresolve script is seeing what the client would be getting. This is normal behaviour.

Closing ticket.

Note: See TracTickets for help on using tickets.