LoginSignup
0
0

More than 1 year has passed since last update.

【Almalinux】djbdnsをインストールしてSystemdで管理する

Posted at

Goal

Almalinuxにて

  • djbdnsパッケージのインストール
  • djbdnsをsystemdでサービス化

Environment

  • Almalinux 8.6 (Stone Smilodon)
  • ndjbdns 1.06
  • systemd 239 (239-68.el8_7.2)

ndjbdnsパッケージはdjbdnsの堅牢性を低下させる代わりにインストールを容易にしたもの。djbdnsとの互換性はある模様。
この記事ではndjbdnsパッケージを利用してDNSサーバを構築する。

補足だが、djbdnsは下記が含まれている。

  • tinydns(権威DNSサーバ)
  • dnscache(DNSキャッシュサーバ)

1. Download ndjbdns from Web.

cd /usr/local/src
wget "http://pjp.dgplug.org/ndjbdns/ndjbdns-1.06.tar.gz"

2. Install ndjbdns

インストール場所は/usr/local/src配下

tar zxvf ndjbdns-1.06.tar.gz
cd ndjbdns-1.06
./configure --prefix=/usr/local
make install
which tinydns
# Output: /usr/local/sbin/tinydns
which dnscache
# Output: /usr/local/sbin/dnscache

GCCがない環境で./configure --prefix=/usr/localをするとエラーがでる。
その場合は下記を実行。aptでいうbuild-essentialをインストール。

yum groupinstall "Development Tools"
yum install kernel-devel kernel-headers
# その後、./configure --prefix=/usr/local

3. Setting tinydns and dnscache

tinydnsとdnscacheは別のサービスと起動するがどちらもポート53を使用する。そのため、同じサーバ上で両方のサービスを動作させる場合、IPアドレスが2つ以上必要になる。
tinydnsとdnscacheが使用するIPアドレスは下記のファイルでそれぞれ指定できる。

  • /usr/local/etc/ndjbdns/tinydns.conf
  • /usr/local/etc/ndjbdns/dnscache.conf
cd /usr/local/src/ndjbdns-1.06

# 編集内容は下記を参照
vim /etc/init.d/tinydns.sh
vim /etc/init.d/dnscache.sh
vim /usr/local/etc/ndjbdns/tinydns.conf
vim /usr/local/etc/ndjbdns/dnscache.conf
/etc/init.d/tinydns.sh
### BEGIN INIT INFO
# Provides:          tinydns
# Required-Start:    $network
# Required-Stop:     $network
# Default-Stop:      0 1 2 3 4 5 6
# Short-Description: start and stop tinydns daemon at boot time.
# Description:       tinydns is a DNS server program.
### END INIT INFO

# Source function library.
. /etc/init.d/functions

# Source networking configuration
. /etc/sysconfig/network

prog=PREFIX/sbin/tinydns
config=/etc/ndjbdns/tinydns.conf
-config=/etc/ndjbdns/tinydns.conf
+config=/usr/local/etc/ndjbdns/tinydns.conf
/etc/init.d/dnscache.sh
### BEGIN INIT INFO
# Provides:          dnscache
# Required-Start:    $network
# Required-Stop:     $network
# Default-Stop:      0 1 2 3 4 5 6
# Short-Description: start and stop dnscache daemon at boot time.
# Description:       dnscache is an iterative DNS resolver daemon.
### END INIT INFO

# Source function library.
. /etc/init.d/functions

# Source networking configuration
. /etc/sysconfig/network

prog=PREFIX/sbin/dnscache
-config=/etc/ndjbdns/dnscache.conf
+config=/usr/local/etc/ndjbdns/dnscache.conf
/usr/local/etc/ndjbdns/tinydns.conf
# Address to listen on for incoming connections. It could be comma separated
# list of IP addresses.
#
# IP=127.0.0.1[,x.x.x.x,...]
-IP=127.0.0.1
+IP=Your IP Address 1

---

# ROOT: is the new root & working directory for tinydns.
# Obviously, the user whose ID is mentioned above MUST be able to read from
# this directory.
#
# Also, this is where `data' and `data.cdb' files should reside.
-ROOT=PREFIX
+ROOT=/usr/local/etc/ndjbdns
/usr/local/etc/ndjbdns/dnscache.conf
# Address to listen on for incoming connections.
-IP=127.0.0.1
+IP=Your IP Address 2

---

# ROOT: is the new root & working directory for dnscache.
# Obviously, the user whose ID is mentioned above MUST be able to read from
# this directory.
#
# Also, this is where `ip/' and `servers/' directories should reside.
-ROOT=PREFIX
+ROOT=/usr/local/etc/ndjbdns

4. Enable starting tinydns and dnscache with Systemd

cd /usr/local/src/ndjbdns-1.06

cp ./etc/init.d/tinydns.sh /etc/init.d/
chmod u+x /etc/init.d/tinydns.sh
cp ./etc/init.d/dnscache.sh /etc/init.d/
chmod u+x /etc/init.d/dnscache.sh

systemctl start tinydns
systemctl start dnscache

systemctl enable tinydns
systemctl enable dnscache

Almalinuxにおいて、sysVinitは内部的にはsystemdであったのでinit.dに登録することで、systemdで管理可能。
https://qiita.com/KEINOS/items/f3e6b3064b0cbe35fd03

djbdnsにはsystemd用のファイルも含まれているので、/etc/systemd/system/に配置してもいいかもしれない。

  • ${djbdnsフォルダ}/etc/systemd/tinydns.sysd
  • ${djbdnsフォルダ}/etc/systemd/dnscache.sysd

Reference

https://qiita.com/metheglin/items/2c4f798eded252b2b61e
https://blog.64p.org/entry/2013/07/22/142457

以上。

0
0
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
0
0