忍者ブログ

ブランクがあるインフラエンジニアの備忘録

サーバ構築のメモ

BINDによるDNSサーバーの構築

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

BINDによるDNSサーバーの構築

◇本稿の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サーバーを使用予定です。
PR

コメント

プロフィール

HN:
のらくら
性別:
非公開
自己紹介:
介護と自身の手術でブランクが出来たインフラエンジニアの学習メモ。VirtualBOXで仮想サーバーを建て、GNS3でCiscoルーター&スイッチによるネットワークのエミュレーションもしています。GNS3ネットワーク内に仮想サーバーと連携させて、実際のネットワーク環境におけるサーバーをシミュレートする他、LinuC level3 300の対策もしています。

P R