前回からの流れ
DNSクエリのロードバランシングソフトウェアであるPowerDNS dnsdistを通した形での名前解決を確認しました。今回は、一般的なDNSサーバ環境に近い構成とした上でdnsdistのクエリ処理状況を確認するダッシュボードの設定と簡単なブロック動作を確認していきます。
- PowerDNS DNSdist
- DNSdist documentation
実行環境、構成
- OS:WSL2 Ubuntu 22.04
- dnsdist:1.8.2-1
- powerdns:4.5.3-1
前回実行環境からのdnsdist.conf変更点
WSL2上にコンテンツDNSサーバを配置したため、以下の通り変更しています。
変更前:newServer({address="172.26.0.1:53", name="dns1", qps=300})
変更後:newServer({address="172.26.2.3:15053", name="dns1", qps=300})
検証用コンテンツDNSサーバの設定
下記レコードを含むexample.comゾーンを用意
www IN A 192.168.5.1
srv IN A 192.168.5.2
* IN A 192.168.5.123
dnsdistのダッシュボード設定
dnsdistでのクエリルーティング動作状況を確認可とするため、ダッシュボード設定を追加します
- dnsdist.confへダッシュボード用設定を追加します。
# vi /etc/dnsdist/dnsdist.conf
-- dnsdistのダッシュボード設定
-- https://dnsdist.org/guides/webserver.html
webserver("172.26.2.3:8083")
setWebserverConfig({password="supersecretpassword", apiKey="supersecretAPIkey", acl="172.26.0.0/16"})
※注意…検証のため、ダッシュボードのbindポート/パスワード/APIKEYをデフォルトとしています。
- 設定反映のため、dnsdistをrestartします。
# systemctl restart dnsdist
特定DNSレコードのブロック用ルールを追加
検証用レコードであるsrv.exmaple.comの名前解決を行わないよう、dnsdistにて対象クエリをdropさせる単純なルールを追加します。
- dnsdist.confへブロック用ルールを追加します。
# dig -p 10053 @172.26.2.3 srv.example.com +norec +short
192.168.5.2
# vi /etc/dnsdist/dnsdist.conf
-- 特定DNSクエリのブロック
-- https://dnsdist.org/rules-actions.html
addAction("srv.example.com.", DropAction())
- 設定反映のため、dnsdistをrestartします。
- digコマンドにて、正しくDNSクエリがブロックされる事を確認します。
# dig -p 10053 @172.26.2.3 srv.example.com +norec +short
;; communications error to 172.26.2.3#10053: timed out
;; communications error to 172.26.2.3#10053: timed out
;; communications error to 172.26.2.3#10053: timed out
おわりに
今回の記事では、dnsdistのダッシュボード設定の追加および特定レコードの簡単なブロック設定を追加しdnsdistの動作を確認しました。次回は、今回に引き続きクエリルーティングの設定とダイナミックルールに関する動作を確認していきます。