◇本稿のDNSサーバーの設定
・ホスト名:host1.stream.server
・アドレス:192.168.128.101/24
・DNS:192.168.128.101(正し、BINDインストール前は192.168.128.1)
・ゲートウェイ:192.168.128.1
◇DNSサーバーの構築
・BINDのインストール
[root@host1 ~]# dnf -y install bind bind-chroot bind-libs
メタデータの期限切れの最終確認: 3:52:09 時間前の 2022年06月02日 19時58分21秒 に 実施しました。
パッケージ bind-libs-32:9.16.23-1.el9.x86_64 は既にインストールされています。
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
インストール:
bind x86_64 32:9.16.23-1.el9 appstream 491 k
bind-chroot x86_64 32:9.16.23-1.el9 appstream 19 k
依存関係のインストール:
bind-dnssec-doc noarch 32:9.16.23-1.el9 appstream 48 k
python3-bind noarch 32:9.16.23-1.el9 appstream 63 k
python3-ply noarch 3.11-14.el9 appstream 103 k
弱い依存関係のインストール:
bind-dnssec-utils x86_64 32:9.16.23-1.el9 appstream 116 k
トランザクションの概要
================================================================================
インストール 6 パッケージ
(略)
インストール済み:
bind-32:9.16.23-1.el9.x86_64
bind-chroot-32:9.16.23-1.el9.x86_64
bind-dnssec-doc-32:9.16.23-1.el9.noarch
bind-dnssec-utils-32:9.16.23-1.el9.x86_64
python3-bind-32:9.16.23-1.el9.noarch
python3-ply-3.11-14.el9.noarch
完了しました!
・DNSクライアントの設定変更
続いてDNSのアドレスを変更します。過去の稿ではnmtuiを使いましたが、今回はnmcuiで設定を変更してみましょう。
[root@host1 ~]# nmcli connection modify enp0s3 ipv4.dns 192.168.128.101
設定変更後、ネットワークアダプタを再起動させ設定を反映させます。
[root@host1 ~]# nmcli connection down enp0s3
*注意。 SSHで接続した場合、切断されるのでネットワークアダプタの設定作業は直接仮想マシン上から操作する事をお勧めします。
[root@host1 ~]# nmcli connection up enp0s3
・BIND設定ファイルの編集
先ずは設定ファイルのコピーを行ってから設定を行います。
以降、設定ファイルの設定変更時は基本的に.orgという拡張子でコピーを行っていきます。
[root@host1 ~]# cp -p /etc/named.conf{,.org}
[root@host1 ~]# vi /etc/named.conf
(中略)
options {
listen-on port 53 { 127.0.0.1; 192.168.128.101; }; ←DNSサーバーアドレス追記
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 { localhost; 192.168.128.0/24; }; ←ネットワークアドレス追記
(中略)
#末尾に以下の設定を追記
#正引きゾーンの設定
zone "stream.server" {
type master;
file "stream.server.zone";
};
#逆引きゾーンの設定
zone "128.168.192.in-addr.arpa" {
type master;
file "128.168.192.in-addr.arpa.zone";
};
・正引きゾーンファイルの作成
サンプルのファイルをコピーし、正引きゾーンファイルを作成します。
[root@host1 ~]# cd /var/named/
[root@host1 named]# cp -p named.localhost stream.server.zone
[root@host1 named]# vi stream.server.zone
$TTL 86400
@ IN SOA host1.stream.server. root.stream.server. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS host1.stream.server.
host1 IN A 192.168.128.101
host2 IN A 192.168.128.102
・逆引きゾーンファイルの作成
[root@host1 named]# cp -p stream.server.zone 128.168.192.in-addr.arpa.zone
コピーしたファイルを以下の内容に書き換えます。
[root@host1 named]# vi 128.168.192.in-addr.arpa.zone
$TTL 86400
@ IN SOA host1.stream.server. root.stream.server. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS host1.stream.server.
IN A 255.255.255.0
101 IN PTR host1.stream.server
102 IN PTR host2.stream.server
・設定ファイルの確認
以下のようにアンノウンやエラーが確認されなければOKです。
[root@host1 ~]# named-checkconf -z
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
zone stream.server/IN: loaded serial 0
zone 128.168.192.in-addr.arpa/IN: loaded serial 0
・失敗例
[root@host1 ~]# named-checkconf -z
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
stream.server.zone:2: unknown RR type 'stream.server.'
dns_rdata_fromtext: stream.server.zone:3: near '@': not a valid number
zone stream.server/IN: loading from master file stream.server.zone failed: unknown class/type
zone stream.server/IN: not loaded due to errors.
この場合、stream.server.zoneファイルの2行目と3行目の書式に誤りがある可能性が高いので、修正します。
・ファイアウォールのDNSの許可
[root@host1 ~]# firewall-cmd --add-service=dns --permanent
success
・DNSサーバーの起動
[root@host1 ~]# systemctl start named-chroot
[root@host1 ~]# systemctl status named-chroot
● named-chroot.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named-chroot.service; disabled; ve>
Active: active (running) since Fri 2022-06-03 01:46:10 JST; 9s ago
(略)
[root@host1 ~]# systemctl enable named-chroot
Created symlink /etc/systemd/system/multi-user.target.wants/named-chroot.service → /usr/lib/systemd/system/named-chroot.service.
[root@host1 ~]# systemctl is-enabled named-chroot
enabled
・DNSサーバーの動作確認
[root@host1 ~]# nslookup
> host1.stream.server ←host1を名前から正引き
Server: 192.168.128.101
Address: 192.168.128.101#53
Name: host1.stream.server
Address: 192.168.128.101 ←host1のアドレスが表示
> host2.stream.server ←host2を名前から正引き
Server: 192.168.128.101
Address: 192.168.128.101#53
Name: host2.stream.server
Address: 192.168.128.102 ←host2のアドレスが表示
>192.168.128.101 ←host1のIPアドレスから逆引き
101.128.168.192.in-addr.arpa name = host1.stream.server.128.168.192.in-addr.arpa.
> 192.168.128.102 ←host2のIPアドレスから逆引き
102.128.168.192.in-addr.arpa name = host2.stream.server.128.168.192.in-addr.arpa.
>
(Ctrl+Cキーで終了します)
・ゾーン全体の確認
digコマンドでは、ゾーン全体の情報も確認できます。次のように、ドメイン名の後に axfr を指定するとゾーンに登録されている全ての情報が表示されます。問い合わせをするサーバーは、@をつけて指定します。
[root@host1 ~]# dig stream.server axfr @192.168.128.101
; <<>> DiG 9.16.23-RH <<>> stream.server axfr @192.168.128.101
;; global options: +cmd
stream.server. 86400 IN SOA host1.stream.server. root.stream.server. 0 86400 3600 604800 10800
stream.server. 86400 IN NS host1.stream.server.
host1.stream.server. 86400 IN A 192.168.128.101
host2.stream.server. 86400 IN A 192.168.128.102
stream.server. 86400 IN SOA host1.stream.server. root.stream.server. 0 86400 3600 604800 10800
;; Query time: 2 msec
;; SERVER: 192.168.128.101#53(192.168.128.101)
;; WHEN: Fri Jun 03 01:50:53 JST 2022
;; XFR size: 5 records (messages 1, bytes 205)
以上で最低限のDNSサーバーの設定が終了しました。
次稿以降に構築するWebサーバーやメールサーバーでは本稿で作成したDNSサーバーを使用予定です。