pdns-recursor lua preresolve脚本无法正常工作

问题描述 投票:0回答:1

[当查询来自内部网络时,我试图使pnds-recursor将主机名解析为另一个A记录(因为这将通过VPN进行路由)。

为此,我设置了一个实现预解析功能的LUA脚本:

pdnslog("pdns-recursor Lua script starting!", pdns.loglevels.Warning)

function preresolve(dq)
    if dq.qtype == pdns.A
    then
        if dq.qname:equal("<host.to.resolve>")
        then
            dq.rcode=0 -- make it a normal answer
            netMask = newNMG()
            netMask:addMask("172.28.0.0/14")
            netMask:addMask("xxxx:xxx:5:f1:0:0:0:0/64")
            if netMask:match(dq.remoteaddr)
            then
                dq:addAnswer(pdns.A, "<internal IP>")
            else
                dq:addAnswer(pdns.A, "<public IP>")
            end
            return true
        end
  end
  return false
end

现在很奇怪:对于来自192.168.23.x的某些客户端,它可以正常工作;对于其他客户端,它返回内部IP,尽管客户端的远程IP不在上述指定范围内。

任何人都有线索,为什么它没有按预期工作?

谢谢

lua powerdns
1个回答
0
投票

确定,确实是选项

disable-packetcache=yes

recursor.conf中做到了。以防万一别人有类似的问题。

© www.soinside.com 2019 - 2024. All rights reserved.