pdns递归程序或lua预解析脚本工作不正常
当查询来自内部网络时,我试图使PND递归或将主机名解析为不同的a记录(因为这将通过VPN路由) 为此,我设置了一个LUA脚本,该脚本正在实现预解析函数:pdns递归程序或lua预解析脚本工作不正常,lua,powerdns,Lua,Powerdns,当查询来自内部网络时,我试图使PND递归或将主机名解析为不同的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.reso
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
pdnslog(“pdns递归或Lua脚本启动!”,pdns.loglevels.Warning)
函数预分解(dq)
如果dq.qtype==pdns.A
然后
如果dq.qname:equal(“”)
然后
dq.rcode=0——将其作为正常答案
netMask=newNMG()
网络掩码:添加掩码(“172.28.0.0/14”)
网络掩码:添加掩码(“xxxx:xxx:5:f1:0:0:0/64”)
如果网络掩码:匹配(dq.remoteaddr)
然后
dq:addAnswer(pdns.A,“”)
其他的
dq:addAnswer(pdns.A,“”)
结束
返回真值
结束
结束
返回错误
结束
现在奇怪的事情是:对于来自192.168.23.x的一些客户机,这是可行的,对于其他客户机,它返回内部IP,尽管客户机的远程IP不在上面指定的范围内
有人知道为什么它不能按预期工作吗
谢谢好的,确实是这个选项
disable-packetcache=yes
在recursor.conf中实现了这个技巧。以防万一其他人也有类似的问题。我想我找到了解决办法。这可能是缓存问题,当内部客户端请求IP时,recursor会将结果缓存一段时间。也许关闭数据包缓存会有所帮助。我会尝试,当它起作用时,我会确认。