0

当查询来自内部网络时,我试图让 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 不在上面指定的范围内。

任何人都知道为什么它没有按预期工作?

谢谢

4

1 回答 1

0

好的,确实是选项

disable-packetcache=yes

recursor.conf中成功了。以防万一其他人有类似的问题。

于 2020-03-20T09:54:50.263 回答