web-dev-qa-db-ja.com

PowerDNS Split Horizo​​n Resolver

私は解決策を求めてWebを調べましたが、さまざまな提案がある多数のスレッドを見つけました。私が見つけたもののほとんどは、レコードを返すためにリゾルバーでLUAを使用しています。他の投稿では、GEO-IPまたはパイプバックエンドの使用が提案されています。私が読んだすべてのコンテンツは使用しました

LUAを使用してゾーン情報を保存するのではなく、LUAを介してネットワーク範囲に基づいてフォワーダーを変更できるかどうかを知りたいです。

次のようなロジックを機能させることができれば、すべて設定されているはずです。

if sourceip comes from (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) {
     forwarder = 192.168.0.1;
}else{
     forwarder = 8.8.8.8;
}

PDNS自体の設定の変更を示すpdnsからのLUAの例は見当たりません。それが可能かどうか、興味があります。

1
Michael Moser

PowerDNS ServerもRecursorも、BINDのようにスプリットホライズン設定をサポートしていません。

たとえば、特定のサブネットに提供したい回答を直接提供するLuaコードをリカーサーで実行することで回避できますが、Luaからクエリが転送される場所を操作することはできません。

PowerDNSファミリーのコードに比較的新しく追加されたのは、Luaでプログラム可能なDNSロードバランサーです。これにより、DNSプロトコルで許可されているほぼすべてのものに基づいて、さまざまなネームサーバーにクエリを送信できます。 http://dnsdist.org/ および https://github.com/PowerDNS/pdns/blob/master/pdns/README-dnsdist.md を参照してください。 Split Horizo​​nの例では、再帰クエリと非再帰クエリを分割しますが、たとえばaddPoolRule(netmask、pool)関数を使用して、送信元アドレスに応じて分割することもできます。

ところで。あなたがすべて大文字でそれを書くとき、ルアの人々はそれを好きではありません。 http://www.lua.org/about.html "Whats in a name" ;-)を参照してください。

2
ZaphodB