概要
前回の続編じゃないけど、前回はESXi上に構築したubuntu(amd64 CPU)上に各種サーバを構築しました。
今回は、Raspberry Pi4(arm64)上に構築します。
使うOSはUbuntu Server 20.04.3 LTS(Raspberry pi版)です。
イメージの作成
前回のイメージは、amd64しか準備されていません。
そのため、ラズパイ上で構築します。
まずはgitから必要なファイルを取ってきます。
PowerDNS本体
git clone https://github.com/PowerDNS/pdns.git
cd pdns
git clone https://github.com/PowerDNS/pdns-builder.git builder
Dockerfile-auth
(権威サーバ) 、Dockerfile-dnsdist
(ロードバランサ)、Dockerfile-recursor
(リゾルバ) がそれぞれのdockerfileなので、このDockerfileをもとにdocker build
をする。
docker build -t pdns-recursor-master:raspi -f Dockerfile-recursor .
docker build -t pdns-auth-master:raspi -f Dockerfile-auth .
結構時間がかかるのでお茶でも飲みながらお待ちください。
PowerDNSadmin
git clone https://github.com/PowerDNS-Admin/PowerDNS-Admin
cd PowerDNS-Admin
docker build -t powerdns-admin:raspi -f docker/Dockerfile
これは高速回線だったらそこまで時間かかんないと思う。
#準備
.confファイルの作成
前回と同じようにpdns.conf、recursor.confを作ります。
docker-composeの作成
これも前回とほとんど同じ。
imageの部分が違うのでそこだけは前項で指定したイメージ名( pdns-recursor-master:raspi
、pdns-auth-master:raspi
)に変えてあげる。
ローカルDNS(systemd-resoloved)の機能停止
前回のやり方だと、どうもうまくいかなかったので調べ直したところ、local DNS stub listenerを停止すれば良いことがわかったので、先人の知識をお借りして停止する。
詳細については前の人の記事を参照
/etc/systemd/resolved.conf
を編集して
[Resolve]
DNSStubListener=no
次のコマンドを実行して止める。
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo systemctl restart systemd-resolved
これにより、53番ポートが使えるようになる。
起動以降
ここからは一緒で、docker-compose up -d
で起動して、名前解決のテストをやってあげれば問題なし
Webadminのやり方も一緒。
##参考
Ubuntu 18.04 の systemd-resolved で local DNS stub listener の利用をやめる
PowerDNS(GitHub)のDocker-README.md