以下の内容はhttps://souiunogaii.hatenablog.com/entry/almalinux96-bind9-dnsより取得しました。


AlmaLinux9.6でDNSサーバーを構築(Bind)マスターとスレーブ

※[PR]当ブログの記事の中にはプロモーションが含まれています。

・AlmaLinux9.6でDNSサーバーを構築する方法を知りたい。
・具体的な手順を教えてほしい。

こういった疑問に答えます。

本記事の内容

  1. AlmaLinux9.6でDNSサーバーを構築(Bind)マスターとスレーブ

サトナカ (@souiunogaii)

この記事を書いている私は、某SIerに勤務しながら、
WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。

こういった私が、解説していきます。

私が実機で試したコマンドや画像を載せて書いています。
記事の信頼性担保に繋がると思います。

AlmaLinux9.6でDNSサーバーを構築(Bind)マスターとスレーブ

今回の構成

  • ゾーン名: blue-planet.internal
  • AlmaLinux 9.6
  • bind 9.16

DNS(マスター)のbindインストール

dnf install bind bind-utils -y
[root@b-bidns01 ~]# dnf install bind bind-utils -y
メタデータの期限切れの最終確認: 2:01:49 前の 20250830104247秒 に実施しました。
依存関係が解決しました。
====================================================================================================
 パッケージ                         Arch         バージョン                   リポジトリー    サイズ
====================================================================================================
インストール:
 bind                               x86_64       32:9.16.23-31.el9_6          appstream       488 k
 bind-utils                         x86_64       32:9.16.23-31.el9_6          appstream       198 k
依存関係のインストール:
 bind-dnssec-doc                    noarch       32:9.16.23-31.el9_6          appstream        45 k
 bind-libs                          x86_64       32:9.16.23-31.el9_6          appstream       1.2 M
 bind-license                       noarch       32:9.16.23-31.el9_6          appstream        12 k
 checkpolicy                        x86_64       3.6-1.el9                    appstream       351 k
 fstrm                              x86_64       0.6.1-3.el9                  appstream        27 k
 libmaxminddb                       x86_64       1.5.2-4.el9                  appstream        32 k
 libuv                              x86_64       1:1.42.0-2.el9_4             appstream       146 k
 policycoreutils-python-utils       noarch       3.6-2.1.el9                  appstream        71 k
 protobuf-c                         x86_64       1.3.3-13.el9                 baseos           34 k
 python3-audit                      x86_64       3.1.5-4.el9                  appstream        83 k
 python3-bind                       noarch       32:9.16.23-31.el9_6          appstream        60 k
 python3-libsemanage                x86_64       3.6-5.el9_6                  appstream        78 k
 python3-ply                        noarch       3.11-14.el9                  baseos          103 k
 python3-policycoreutils            noarch       3.6-2.1.el9                  appstream       2.0 M
 python3-setools                    x86_64       4.4.4-1.el9                  baseos          551 k
弱い依存関係のインストール:
 bind-dnssec-utils                  x86_64       32:9.16.23-31.el9_6          appstream       112 k

トランザクションの概要
====================================================================================================
インストール  18 パッケージ

ダウンロードサイズの合計: 5.6 M
インストール後のサイズ: 17 M
パッケージのダウンロード:
(1/18): bind-dnssec-doc-9.16.23-31.el9_6.noarch.rpm                 565 kB/s |  45 kB     00:00
(2/18): bind-dnssec-utils-9.16.23-31.el9_6.x86_64.rpm               1.1 MB/s | 112 kB     00:00
(3/18): bind-license-9.16.23-31.el9_6.noarch.rpm                    508 kB/s |  12 kB     00:00
(4/18): bind-9.16.23-31.el9_6.x86_64.rpm                            2.2 MB/s | 488 kB     00:00
(5/18): bind-utils-9.16.23-31.el9_6.x86_64.rpm                      1.9 MB/s | 198 kB     00:00
(6/18): fstrm-0.6.1-3.el9.x86_64.rpm                                369 kB/s |  27 kB     00:00
(7/18): libmaxminddb-1.5.2-4.el9.x86_64.rpm                         894 kB/s |  32 kB     00:00
(8/18): checkpolicy-3.6-1.el9.x86_64.rpm                            2.9 MB/s | 351 kB     00:00
(9/18): bind-libs-9.16.23-31.el9_6.x86_64.rpm                       4.6 MB/s | 1.2 MB     00:00
(10/18): libuv-1.42.0-2.el9_4.x86_64.rpm                            3.5 MB/s | 146 kB     00:00
(11/18): policycoreutils-python-utils-3.6-2.1.el9.noarch.rpm        1.8 MB/s |  71 kB     00:00
(12/18): python3-audit-3.1.5-4.el9.x86_64.rpm                       2.4 MB/s |  83 kB     00:00
(13/18): python3-libsemanage-3.6-5.el9_6.x86_64.rpm                 2.6 MB/s |  78 kB     00:00
(14/18): python3-bind-9.16.23-31.el9_6.noarch.rpm                   1.4 MB/s |  60 kB     00:00
(15/18): protobuf-c-1.3.3-13.el9.x86_64.rpm                         982 kB/s |  34 kB     00:00
(16/18): python3-ply-3.11-14.el9.noarch.rpm                         1.1 MB/s | 103 kB     00:00
(17/18): python3-setools-4.4.4-1.el9.x86_64.rpm                     2.2 MB/s | 551 kB     00:00
(18/18): python3-policycoreutils-3.6-2.1.el9.noarch.rpm             6.3 MB/s | 2.0 MB     00:00
----------------------------------------------------------------------------------------------------
合計                                                                2.9 MB/s | 5.6 MB     00:01
トランザクションを確認しています
トランザクションの確認に成功しました。
トランザクションをテストしています
トランザクションのテストに成功しました。
トランザクションを実行しています
  準備中           :                                                                            1/1
  インストール中   : protobuf-c-1.3.3-13.el9.x86_64                                            1/18
  インストール中   : bind-license-32:9.16.23-31.el9_6.noarch                                   2/18
  インストール中   : libuv-1:1.42.0-2.el9_4.x86_64                                             3/18
  インストール中   : libmaxminddb-1.5.2-4.el9.x86_64                                           4/18
  インストール中   : fstrm-0.6.1-3.el9.x86_64                                                  5/18
  インストール中   : bind-libs-32:9.16.23-31.el9_6.x86_64                                      6/18
  インストール中   : bind-utils-32:9.16.23-31.el9_6.x86_64                                     7/18
  インストール中   : bind-dnssec-doc-32:9.16.23-31.el9_6.noarch                                8/18
  インストール中   : python3-setools-4.4.4-1.el9.x86_64                                        9/18
  インストール中   : python3-ply-3.11-14.el9.noarch                                           10/18
  インストール中   : python3-bind-32:9.16.23-31.el9_6.noarch                                  11/18
  インストール中   : bind-dnssec-utils-32:9.16.23-31.el9_6.x86_64                             12/18
  インストール中   : python3-libsemanage-3.6-5.el9_6.x86_64                                   13/18
  インストール中   : python3-audit-3.1.5-4.el9.x86_64                                         14/18
  インストール中   : checkpolicy-3.6-1.el9.x86_64                                             15/18
  インストール中   : python3-policycoreutils-3.6-2.1.el9.noarch                               16/18
  インストール中   : policycoreutils-python-utils-3.6-2.1.el9.noarch                          17/18
  scriptletの実行中: bind-32:9.16.23-31.el9_6.x86_64                                          18/18
  インストール中   : bind-32:9.16.23-31.el9_6.x86_64                                          18/18
  scriptletの実行中: bind-32:9.16.23-31.el9_6.x86_64                                          18/18
  検証中           : bind-32:9.16.23-31.el9_6.x86_64                                           1/18
  検証中           : bind-dnssec-doc-32:9.16.23-31.el9_6.noarch                                2/18
  検証中           : bind-dnssec-utils-32:9.16.23-31.el9_6.x86_64                              3/18
  検証中           : bind-libs-32:9.16.23-31.el9_6.x86_64                                      4/18
  検証中           : bind-license-32:9.16.23-31.el9_6.noarch                                   5/18
  検証中           : bind-utils-32:9.16.23-31.el9_6.x86_64                                     6/18
  検証中           : checkpolicy-3.6-1.el9.x86_64                                              7/18
  検証中           : fstrm-0.6.1-3.el9.x86_64                                                  8/18
  検証中           : libmaxminddb-1.5.2-4.el9.x86_64                                           9/18
  検証中           : libuv-1:1.42.0-2.el9_4.x86_64                                            10/18
  検証中           : policycoreutils-python-utils-3.6-2.1.el9.noarch                          11/18
  検証中           : python3-audit-3.1.5-4.el9.x86_64                                         12/18
  検証中           : python3-bind-32:9.16.23-31.el9_6.noarch                                  13/18
  検証中           : python3-libsemanage-3.6-5.el9_6.x86_64                                   14/18
  検証中           : python3-policycoreutils-3.6-2.1.el9.noarch                               15/18
  検証中           : protobuf-c-1.3.3-13.el9.x86_64                                           16/18
  検証中           : python3-ply-3.11-14.el9.noarch                                           17/18
  検証中           : python3-setools-4.4.4-1.el9.x86_64                                       18/18

インストール済み:
  bind-32:9.16.23-31.el9_6.x86_64                     bind-dnssec-doc-32:9.16.23-31.el9_6.noarch
  bind-dnssec-utils-32:9.16.23-31.el9_6.x86_64        bind-libs-32:9.16.23-31.el9_6.x86_64
  bind-license-32:9.16.23-31.el9_6.noarch             bind-utils-32:9.16.23-31.el9_6.x86_64
  checkpolicy-3.6-1.el9.x86_64                        fstrm-0.6.1-3.el9.x86_64
  libmaxminddb-1.5.2-4.el9.x86_64                     libuv-1:1.42.0-2.el9_4.x86_64
  policycoreutils-python-utils-3.6-2.1.el9.noarch     protobuf-c-1.3.3-13.el9.x86_64
  python3-audit-3.1.5-4.el9.x86_64                    python3-bind-32:9.16.23-31.el9_6.noarch
  python3-libsemanage-3.6-5.el9_6.x86_64              python3-ply-3.11-14.el9.noarch
  python3-policycoreutils-3.6-2.1.el9.noarch          python3-setools-4.4.4-1.el9.x86_64

完了しました!

DNS(マスター)のnamed.conf編集

編集前のnamed.confのバックアップ

[root@b-bidns01 ~]# cp /etc/named.conf /etc/named.conf_original

named.confの編集

/etc/named.conf
[root@b-bidns01 ~]# vi /etc/named.conf
      1 //
      2 // named.conf
      3 //
      4 // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
      5 // server as a caching only nameserver (as a localhost DNS resolver only).
      6 //
      7 // See /usr/share/doc/bind*/sample/ for example named configuration files.
      8 //
      9
     10 options {
     11         listen-on port 53 { 192.168.100.132; };  ←★★★変更
     12         listen-on-v6 port 53 { ::1; };
     13         directory       "/var/named";
     14         dump-file       "/var/named/data/cache_dump.db";
     15         statistics-file "/var/named/data/named_stats.txt";
     16         memstatistics-file "/var/named/data/named_mem_stats.txt";
     17         secroots-file   "/var/named/data/named.secroots";
     18         recursing-file  "/var/named/data/named.recursing";
     19         allow-query     { 192.168.100.0/24; };  ←★★★変更
     20         forwarders { 192.168.100.254; };  ←★★★追加
     21
     22         /*
     23          - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
     24          - If you are building a RECURSIVE (caching) DNS server, you need to enable
     25            recursion.
     26          - If your recursive DNS server has a public IP address, you MUST enable access
     27            control to limit queries to your legitimate users. Failing to do so will
     28            cause your server to become part of large scale DNS amplification
     29            attacks. Implementing BCP38 within your network would greatly
     30            reduce such attack surface
     31         */
     32         recursion yes;
     33
     34         dnssec-validation yes;
     35
     36         managed-keys-directory "/var/named/dynamic";
     37         geoip-directory "/usr/share/GeoIP";
     38
     39         pid-file "/run/named/named.pid";
     40         session-keyfile "/run/named/session.key";
     41
     42         /* https://fedoraproject.org/wiki/Changes/CryptoPolicy */
     43         include "/etc/crypto-policies/back-ends/bind.config";
     44 };
     45
     46 logging {
     47         channel default_debug {
     48                 file "data/named.run";
     49                 severity dynamic;
     50         };
     51 };
     52
     53 zone "blue-planet.internal" IN {    ←★★★変更
     54         type master;
     55         file "blue-planet.internal";
     56         allow-update { none; };
     57 };
     58
     59 zone "100.168.192.in-addr.arpa" IN {    ←★★★追加
     60         type master;
     61         file "blue-planet.internal.rev";
     62         allow-update { none; };
     63 };
     64
     65
     66 include "/etc/named.rfc1912.zones";
     67 include "/etc/named.root.key";
     68

DNS(マスター)の正引きファイル作成

/var/named/blue-planet.internal
[root@b-bidns01 ~]# vi /var/named/blue-planet.internal
$TTL      86400
@         IN       SOA     b-bidns01.blue-planet.internal.  root.blue-planet.internal.(
                                                 2025083001 ; Serial
                                                 28800      ; Refresh
                                                 14400      ; Retry
                                                 3600000    ; Expire
                                                 86400 )    ; Minimum
          IN NS b-bidns01.blue-planet.internal.
a-email01 IN A 192.168.100.121
a-bidns01 IN A 192.168.100.128
b-bidns01 IN A 192.168.100.132

DNS(マスター)の逆引きファイル作成

/var/named/blue-planet.internal.rev
[root@b-bidns01 ~]# vi /var/named/blue-planet.internal.rev
$TTL      86400
@         IN       SOA     b-bidns01.blue-planet.internal.  root.blue-planet.internal.(
                                        2025083001 ; Serial
                                        28800      ; Refresh
                                        14400      ; Retry
                                        3600000    ; Expire
                                        86400 )    ; Minimum
      IN NS  b-bidns01.blue-planet.internal.
121   IN PTR a-email01.blue-planet.internal.
128   IN PTR a-bidns02.blue-planet.internal.
132   IN PTR b-bidns01.blue-planet.internal.

DNS(マスター)の設定チェック

named-checkconf
named-checkzone blue-planet.internal /var/named/blue-planet.internal
named-checkzone blue-planet.internal.rev /var/named/blue-planet.internal.rev
[root@b-bidns01 ~]# named-checkconf
[root@b-bidns01 ~]# named-checkzone blue-planet.internal /var/named/blue-planet.internal
zone blue-planet.internal/IN: loaded serial 2025083001
OK
[root@b-bidns01 ~]# named-checkzone blue-planet.internal.rev /var/named/blue-planet.internal.rev
zone blue-planet.internal.rev/IN: loaded serial 2025083001
OK

DNS(マスター)のサービス起動

systemctl restart named
systemctl enable named
systemctl status named
[root@b-bidns01 ~]# systemctl restart named
[root@b-bidns01 ~]# systemctl enable named
Created symlink /etc/systemd/system/multi-user.target.wants/named.service → /usr/lib/systemd/system/named.service.
[root@b-bidns01 ~]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)
     Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; preset: disabled)
     Active: active (running) since Sat 2025-08-30 13:10:25 JST; 17s ago
   Main PID: 5871 (named)
      Tasks: 5 (limit: 11066)
     Memory: 16.3M
        CPU: 53ms
     CGroup: /system.slice/named.service
             mq5871 /usr/sbin/named -u named -c /etc/named.conf

 830 13:10:25 b-bidns01 named[5871]: zone blue-planet.internal/IN: loaded serial 2025083001
 830 13:10:25 b-bidns01 named[5871]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
 830 13:10:25 b-bidns01 named[5871]: all zones loaded
 830 13:10:25 b-bidns01 systemd[1]: Started Berkeley Internet Name Domain (DNS).
 830 13:10:25 b-bidns01 named[5871]: running
 830 13:10:25 b-bidns01 named[5871]: network unreachable resolving './DNSKEY/IN': 2001:500:a8::e>
 830 13:10:25 b-bidns01 named[5871]: network unreachable resolving './DNSKEY/IN': 2001:500:2f::f>
 830 13:10:25 b-bidns01 named[5871]: managed-keys-zone: Initializing automatic trust anchor mana>
 830 13:10:25 b-bidns01 named[5871]: managed-keys-zone: Initializing automatic trust anchor mana>
 830 13:10:25 b-bidns01 named[5871]: resolver priming query complete

DNS(マスター)のfirewalldの設定

[root@b-bidns01 ~]# firewall-cmd --zone=home --add-service=dns --permanent
success
[root@b-bidns01 ~]# firewall-cmd --reload
success

DNSクライアントの設定

``/etc/resolv.con`` を設定するときは,合わせてNetworkManagerの設定も変更します。
これをしないと,再起動したときに``/etc/resolv.conf`` が初期化されてしまいます。

NetworkManagerを一度停止

systemctl stop NetworkManager
systemctl disable NetworkManager
systemctl is-enabled NetworkManager
[root@a-email01 ~]# systemctl stop NetworkManager
[root@a-email01 ~]# systemctl disable NetworkManager
Removed "/etc/systemd/system/multi-user.target.wants/NetworkManager.service".
Removed "/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service".
Removed "/etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service".
[root@a-email01 ~]# systemctl is-enabled NetworkManager
disabled

NetworkManagerの設定変更

/etc/NetworkManager/NetworkManager.conf
[root@a-email01 ~]# vi /etc/NetworkManager/NetworkManager.conf
     22 [main]
     23 dns=none  ←★★★追加
     24 #plugins=keyfile,ifcfg-rh

resolv.confの修正

/etc/resolv.conf
[root@b-bidns01 ~]# vi /etc/resolv.conf
# Generated by NetworkManager
search blue-planet.internal
nameserver 192.168.100.132

NetworkManagerの再起動

systemctl restart NetworkManager
systemctl enable NetworkManager
systemctl is-enabled NetworkManager
[root@a-email01 ~]# systemctl restart NetworkManager
[root@a-email01 ~]# systemctl enable NetworkManager
Created symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service → /usr/lib/systemd/system/NetworkManager.service.
Created symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service → /usr/lib/systemd/system/NetworkManager-dispatcher.service.
Created symlink /etc/systemd/system/network-online.target.wants/NetworkManager-wait-online.service  → /usr/lib/systemd/system/NetworkManager-wait-online.service.
[root@a-email01 ~]# systemctl is-enabled NetworkManager
enabled

DNSの動作テスト

正引き

[root@b-bidns01 ~]# nslookup a-email01
Server:         192.168.100.132
Address:        192.168.100.132#53

Name:   a-email01.blue-planet.internal
Address: 192.168.100.121

逆引き

[root@b-bidns01 ~]# nslookup 192.168.100.121
121.100.168.192.in-addr.arpa    name = a-email01.blue-planet.internal.

DNS(マスター)側にスレーブの追加

/etc/named.conf
[root@b-bidns01 ~]# vi /etc/named.conf
options {
        listen-on port 53 { 192.168.100.132; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";
        allow-query     { 192.168.100.0/24; };
        allow-transfer  { 192.168.100.128; };  ←★★★追加
        forwarders { 192.168.100.254; };
/var/named/blue-planet.internal
[root@b-bidns01 ~]# vi /var/named/blue-planet.internal
$TTL      86400
@         IN       SOA     b-bidns01.blue-planet.internal.  root.blue-planet.internal.(
                                                 2025083002 ; Serial  ←★★★カウントアップ
                                                 28800      ; Refresh
                                                 14400      ; Retry
                                                 3600000    ; Expire
                                                 86400 )    ; Minimum
          IN NS b-bidns01.blue-planet.internal.
          IN NS a-bidns02.blue-planet.internal.   ←★★★追加
a-email01 IN A 192.168.100.121
a-bidns02 IN A 192.168.100.128
b-bidns01 IN A 192.168.100.132

サービス再起動

[root@b-bidns01 ~]# systemctl restart named

DNS(スレーブ)側の設定

/etc/named.conf
[root@a-bidns02 ~]# vi /etc/named.conf
options {
        listen-on port 53 { 192.168.100.128; };  ←★★★変更
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";
        allow-query     { 192.168.100.0/24; };  ←★★★変更
        forwarders      { 192.168.100.254; };  ←★★★追加
zone "blue-planet.internal" IN {   ←★★★追加
        type slave;
        masters { 192.168.100.132; };
        file "slaves/blue-planet.internal";
        notify no;
};

DNS(スレーブ)のサービス起動

[root@a-bidns02 ~]# systemctl restart named
[root@a-bidns02 ~]# systemctl enable named

DNS(スレーブ)のfirewalldの設定

[root@a-bidns02 ~]# firewall-cmd --zone=home --add-service=dns --permanent
success
[root@a-bidns02 ~]# firewall-cmd --reload
success

DNSクライアントにDNSスレーブの登録

/etc/resolv.conf
[root@a-bidns02 ~]# vi /etc/resolv.conf
# Generated by NetworkManager
search blue-planet.internal
nameserver 192.168.100.132
nameserver 192.168.100.128



以上の内容はhttps://souiunogaii.hatenablog.com/entry/almalinux96-bind9-dnsより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14