dnsdist

DNSに特化したリバース・フォワード兼用ロードバランサー。
バックエンド死活監視、ポリシールーティング、QoS制御などのLSLBが備える機能を実装している。
設定ファイルはLua言語で記述するので、環境に合わせてスクリプト主体の細かい制御も出来る。
DNSクエリ処理に限定すると、dnsdistはクエリ・フォワード動作に特化している為、
バックエンドに権威DNS・キャッシュDNSなどを構築する必要がある。
 
アプリケーションは単一バイナリ動作なので、機能を盛り過ぎるとバイナリが70MB程まで大きくなる。
必要な機能を抜粋して自前でソースビルドを行うと、バイナリ容量と使用メモリ容量の削減が出来る。

参考サイト

インストール

コンフィグ

構築例ではdnsdistのコンフィグを "/etc/dnsdist/dnsdist.conf" としている為、
下記コンフィグ例も同じファイルに設定を行う。
dnsdistの設定は単純な為、単にDNSロードバランサーとして稼働させるならば、
「DNSクエリ・クエリタイプ・接続元IPアドレス・パケット制御」の4項目を抑えれば設定出来る。
 
複数のポリシーを組み合わせる時は、MatchingPackets(Selectors)の "AndRule/NotRule/OrRule" 条件、
バックエンドのサーバ設定は、Servers/Poolsの "newServer/getServer" を利用する。
その他、細かい設定内容は公式ドキュメントの下記3項目を読めば大体判る。