1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【PowerDNS,BIND他】 DNSロードバランサーのDNSDistを触ってみる ~その1~

Last updated at Posted at 2023-12-02

はじめに

PowerDNS dnsdistは、DNSクエリ向けのロードバランシングソフトウェアです。高トラフィック環境での安定性と効率性を向上させるため、セキュリティ機能やクエリルーティング制御を提供します。

DNSクエリによる外部からの攻撃の対策として、dnsdistを既存DNSソフトウェアの上に配置する事でレート制限やクエリルーティング設定を行いサーバ負荷を低減させることが可能です。

実行環境、構成

  • OS:WSL2 Ubuntu 22.04
  • dnsdist:1.8.2-1
・本記事でのdnsdist構成
Ubuntu22(WSL) --> dnsdist(10053/udp,tcp) --> WSL用ホスト機仮想インターフェース(53/udp,tcp)

→ WSL標準設定のresolvの前段に、dnsdistを配置する構成としています。
==========================================================================
・実環境でのdnsdist構成例
[Internet] --> dnsdist(53/udp,tcp) --> BIND,PowerDNS等(53/udp,tcp)(※注)

※注…dnsdistは多くのレガシーなDNSソフトウェアの前段で使用可能である事が
公式ページに記載がありますが、具体的なDNSソフトウェアのサポート記載について
は存在しないため本番環境で使用する際はご注意ください。

dnsdistインストール

ubuntu 22.04の標準リポジトリではdnsdist 1.4系が含まれていますが、現状のstableバージョンである1.8系をリポジトリサイトの手順に従いインストールします。

ページ下部にある[Ubuntu -> dnsdist - version 1.8.X (stable)]に記載のインストール手順を実施します。

dnsdistのログディレクトリ作成

# mkdir /var/log/dnsdist
# chown _dnsdist:_dnsdist /var/log/dnsdist

dnsdist.conf修正

dnsdistインストール後、/etc/dnsdist/以下のdnsdist.confを編集します。
※注…dnsdistの設定はLUAスクリプト言語に基づくため、"--"で始まる行がコメント行となります。

# vi /etc/dnsdist/dnsdist.conf

-- dnsdistのListenサーバIPアドレス:使用ポート
-- https://dnsdist.org/reference/config.html#addLocal
addLocal("172.26.2.3:10053")

-- DNSクエリのACL設定 
-- https://dnsdist.org/advanced/acl.html
setACL("172.26.0.0/16")

-- DNSクエリのバックエンドIPアドレス:使用ポート、バックエンド名、秒間クエリ制限数
-- https://dnsdist.org/reference/config.html#newServer
newServer({address="172.26.0.1:53", name="dns1", qps=300})

-- バックエンドに適用するポリシー
-- https://dnsdist.org/guides/serverselection.html
-- https://dnsdist.org/guides/serverselection.html#setServerPolicy
setServerPolicy(firstAvailable)

-- ロギング設定
-- https://dnsdist.org/rules-actions.html#LogAction
addAction(AllRule(), LogAction("/var/log/dnsdist/query.log", false, true, false))

設定ファイルを編集後、dnsdistをrestartします。

# systemctl restart dnsdist

名前解決の動作確認

digコマンドにて、dnsdistを経由して名前解決が可能な事を確認します。

# dig -p 10053 @172.26.2.3 www.google.co.jp +short
172.217.26.227
# tail /var/log/dnsdist/query.log
Packet from 172.26.2.3:40813 for www.google.co.jp. A with id 65362

おわりに

今回の記事では、dnsdistのインストールおよびバックエンドに関する設定を行いdnsdistを通した名前解決動作を確認しました。次回は実際にdnsdistを使用し様々なクエリルーティングに関する動作を確認していきます。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?