PowerDNS リカーサーは、Lua を介してバックエンドを実装する機能を提供します。Lua スクリプトが CNAME エントリを含む一連のレコードを返すと、レコードの解決時に Lua スクリプトが呼び出されることなく、設定されている外部 DNS サーバーによって CNAME が解決されます。
これは、現在発生しているプロセスです。
- クライアント: PowerDNS、example.com を解決してください。
- PowerDNS は Lua スクリプトを呼び出し、anotherexample.com を指す CNAME を返します。
- PowerDNS は、Lua スクリプトを再度呼び出すことなく、構成内の DNS サーバーを介して anotherexample.com を解決します。
最後のステップで、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 を介して再解決することは可能ですか?もしそうなら、何が欠けていますか?