不知道如何开始使用 powerdns-recursor lua 脚本

不知道如何开始使用 powerdns-recursor lua 脚本

我有一台服务器(Ubuntu 12.04),我运行powerdns-recursor

我正在尝试向某些请求添加一些逻辑,并将我的目标设置为 powerdns 的 lua 脚本。

但我似乎无法让它工作。

我猜想/希望 ubuntu 存储库中提供的递归器版本已编译了 lua 支持。我发现情况很可能如此,因为 liblua5.1-0 是该软件包的必需项。此外,当我重新加载 lua 脚本时,我似乎得到了合理的输出:

$ sudo rec_control reload-lua-script
ok, reload/unload queued

我已经创建了一个 lua 文件并设置了我的配置来加载它:

$ grep lua /etc/powerdns/recursor.conf 
# lua-dns-script    Filename containing an optional 'lua' script that will be used to modify dns answers
lua-dns-script=/etc/powerdns/script.lua

我添加了一个例子脚本添加到文件并重新加载服务器。

示例脚本为:

$ cat /etc/powerdns/script.lua 
function preresolve ( ip, destination, domain, qtype )
        if domain == "the.time."
        then
                d=os.date("\"%c\"")
                ret={
                        {qtype="16", ttl=1, place="1", content=d},
                }
                if qtype == pdns.TXT
                then
                        return 0, ret
                else
                        return -1, {}
                end
        end
        return -1, {}
end
function nxdomain ( ip, destination, domain, qtype )
    return -1, {}
end

但是当我请求“the.time”记录时,我没有得到想要的结果:

$ nslookup -type=TXT the.time. 1.2.3.4
Server:     1.2.3.4
Address:    1.2.3.4#53

** server can't find the.time.: NXDOMAIN

我错过了什么?

答案1

从函数参数中删除“目标”。

https://doc.powerdns.com/md/recursor/scripting/,preresolve() 仅接受三个参数

预解析(remoteip,域,qtype)

相关内容