
PowerDNS ifportup lua レコードを動作させるのに問題があります。私は PowerDNS を初めて使用しますが、DNS については比較的よく知っています。どこが間違っているのかを指摘していただけるとありがたいです。
背景 - 私はこれを Debian 11 で sqlite バックエンドに実行しています。パッケージがインストールされています...
pdns サーバー
pdns-バックエンド-sqlite3
pdns-backend-bind (これは自動インストールされると思います)
pdns-バックエンド-lua2
記録は…
fuse-smtp.mydomain.com 30 IN LUA A "ifportup ( 25, { { '1.2.3.4' }, { '5.6.7.8' } } )"
その目的は、これらの IP 上の 2 つの SMTP サーバーのヘルス チェックを行い、その IP でポート 25 が稼働している場合はプライマリとして 1.2.3.4 を返すことです。5.6.7.8 上のサーバーはバックアップです。
この lua レコードはスペースが空いたバージョンです。スペースあり、スペースなし、TTL なし、タブあり、pdnsutil が受け入れないいくつかの壊れた形式でレコードを削除および追加してみました。受け入れられたレコードはすべて同じエラーで失敗します。IPv6 IP を含む同等の AAAA レコードも失敗します。
ログ レベル 9 で syslog を実行していますが、報告されたエラーは次のとおりです...
Apr 24 14:03:56 ns1 pdns[2241120]: Lua record (fuse-smtp.mydomain.com|A) reported: Unable to convert parameter from table to St6vectorISt4pairIiNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEESaIS7_EE#012stack traceback:#012#011[C]: at 0x564c3ff1c4b0
背景をもう少し説明します。このコマンドでドメインを作成しました...
sudo -u pdns pdnsutil create-zone mydomain.com ns1.anotherdomain.net。
ドメインを次のように編集しています...
pdnsutil 編集ゾーン mydomain.com
PowerDNS サービスは動作しており、ドメインは動作しており、よりシンプルな A、AAAA、MX、TXT レコードが解決されています。他にも、次のような lua レコードが動作しています...
fuse.mydomain.com 30 IN LUA A "ifurlup('http://www.anotherdomain.net/', {{'1.2.3.4'}, {'5.6.7.8'}} )"
ifportup レコードが失敗しているだけです。pdns syslog には他のエラーは報告されません。
ここでのあらゆるヒントに感謝します。ありがとうございます。
答え1
変更ログを見ると、これは 4.8.0-beta で導入されたようです。新しい powerdns がない限り、これは機能しません。(私もあなたと同じ問題を抱えていたので、それがこの問題を発見したきっかけです。)