Pre-generating PTR records for dynamically-assigned SLAAC IPv6 is fairly
unreasonable and silly because most of the time there won't be a
match. However, if you do want to do that, and you runPowerDNS (which you should pick
because it has working Lua scripting support to do this), you can
generate them when the query hits quite easily:
function preresolve ( remoteip, domain, qtype )
-- for a v6 only connected site, don't resolve A records
if matchnetmask( remoteip, "2000::/3") then
-- only rewrite PTR requests
if (qtype == pdns.PTR) then
-- and then only in our block(s)
qv6 = string.find(domain, "d.f.8.6.8.a.8.3.0.0.2.ip6.arpa")
if not qv6 then return -1, {} end
ret={}
revdom="reverse-ip.mylab.tld.";
rev= string.reverse( string.gsub( string.gsub(domain, "%.ip6%.arpa", ""), "%.", "") ) .. "." .. revdom;
-- pdnslog("returning " .. rev .. " for " .. domain);
ret[1]= {qtype=pdns.PTR, content=rev, ttl=86400}
return 0, ret
end
end
end