0

PowerDNS 递归器提供通过 Lua 实现后端的功能。当 Lua 脚本返回一组包含 CNAME 条目的记录时,CNAME 将由已设置的外部 DNS 服务器解析,而在解析记录时未调用 Lua 脚本。

这是现在发生的过程:

  • 客户:PowerDNS,请解析 example.com?
  • PowerDNS 调用 Lua 脚本,该脚本返回指向 anotherexample.com 的 CNAME。
  • PowerDNS 通过其配置中的 DNS 服务器解析 anotherexample.com,无需再次调用 Lua 脚本。

在最后一步中,PowerDNS 最好在通过外部 DNS 服务器解析之前再次调用 Lua 脚本。

您可以使用以下 Lua 脚本重现此情况:

function postresolve(remoteip, domain, qtype, origrecords, origrcode)
    print ("Resolving through Lua.")
    return {content = "example.com", ttl = 60, qtype = 5 }
end

请注意脚本不会再次被调用来解析 example.com(即使这会以无限循环结束。这个想法是能够重现问题)。

是否可以通过 Lua 重新解决,如果可以,我错过了什么?

4

0 回答 0