0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【学習記録】DNSサーバ構築

0
Last updated at Posted at 2025-10-23

Linuxサーバー構築標準教科書


こちらの参考書を使用してDNSサーバを構築しました。記事はWebサーバ、DNSサーバ、メールサーバと3回に分けて書いていき、今回はDNSサーバとなります。

ホスト名やIPアドレス、設定ファイルの値などについては上記の参考書に記載してあるのでそちらでご確認ください。


1.概要

今回は2つのドメイン(example1.jp と example2.jp)を用意し、それぞれが相互に名前解決できるようにDNSサーバーを構築しました。上位ドメイン(jp)からサブドメインへのゾーン委譲も設定しています。


DNSサーバーは3台構成です。

スクリーンショット 2025-10-23 173547.png

DNS構成概要

ゾーン 役割 説明
jpゾーンのサーバー 親ゾーン(キャッシュDNS兼任) jpドメインを管理し、example1.jpexample2.jp に対してゾーン委譲を行う。またキャッシュDNSサーバーとしても動作させる。
example1.jpゾーンのサーバー 権威サーバー example1.jp ドメインの権威サーバーとして動作。
example2.jpゾーンのサーバー 権威サーバー example2.jp ドメインの権威サーバーとして動作。

各サーバー情報

ドメイン名 ホスト名 IPアドレス
jp. host0.jp. 192.168.56.100
example1.jp. host1.example1.jp. 192.168.56.101
example2.jp. host2.example2.jp. 192.168.56.102

各環境情報

項目 内容
OS AlmaLinux 9.3
仮想環境 VirtualBox
ネットワーク構成 NAT、ホストオンリーアダプター

2. example1.jpの設定

example1.jpドメインの設定を行っていきます。

2-1 BINDのインストール

dnf install bind bind -chroot

スクリーンショット 2025-09-30 172412.png


2-2 /etc/named.confの変更

参考書に従って以下の項目を追加、変更しました

vi /etc/named.conf
named.conf
options {
    listen -on port 53 { 127.0.0.1; 192.168.56.101; };
    allow -query { any; };
    recursion no;
}

zone "example1.jp" IN { 
    type master;
    file "example1.jp.zone "; 
    allow -update { none; };
};

スクリーンショット 2025-09-30 172734.png


変更前

スクリーンショット 2025-09-30 172754.png

スクリーンショット 2025-09-30 172839.png

スクリーンショット 2025-09-30 172946.png


変更後

スクリーンショット 2025-09-30 172823.png

スクリーンショット 2025-09-30 172853.png

スクリーンショット 2025-09-30 173300.png


2-3 ゾーンファイルの作成

ゾーンファイルのテンプレートをコピーし編集していきます。

cp -p /var/named/named.empty /var/named/example1.jp.zone
vi /var/named/example1.jp.zone
example1.jp.zone
$TTL 3H
$ORIGIN example1.jp.
@    IN SOA host1 root (
        2023100901 ; serial
        1D ; refresh
        1H ; retry
        1W ; expire
        3H ) ; minimum
     NS host1.example1.jp.
     MX 10 mail.example1.jp.

host1 A 192.168.56.101
www A 192.168.56.101
mail A 192.168.56.101



スクリーンショット 2025-09-30 175553.png

スクリーンショット 2025-10-01 113002.png


変更前
スクリーンショット 2025-10-01 113025.png


変更後

スクリーンショット 2025-10-01 113832.png


2-4 設定ファイルとゾーンファイルのチェック

/etc/named.comfの書式にミスがないかチェックします

named-checkconf

スクリーンショット 2025-10-01 142032.png

「;」をつけ忘れていたので修正します

スクリーンショット 2025-10-01 142237.png
スクリーンショット 2025-10-01 142304.png


再度確認⇒何も表示されないのでOK
スクリーンショット 2025-10-01 142327.png


ゾーンファイルの確認

named-checkzone example1.jp. /var/named/example1.jp.zone

スクリーンショット 2025-10-01 142814.png


ミスがありましたね、見てみましょう
スクリーンショット 2025-10-01 143726.png

3行目に@が2つあったのでSOAとhost1の間にある@を消しました。
スクリーンショット 2025-10-01 144311.png


再度ゾーンファイルをチェックすると問題なしと出ました
スクリーンショット 2025-10-01 144331.png


2-5 BINDの起動

サービスの起動やファイアウォールの設定を行います

systemctl start named-chroot
systemctl enable named-chroot
firewall-cmd --add-service=dns --zone=public --permanent
firewall-cmd --reload

スクリーンショット 2025-10-01 150033.png

スクリーンショット 2025-10-01 150202.png

スクリーンショット 2025-10-01 150837.png


2-5 NATネットワークの無効化

使用している仮想マシンはNATとホストオンリーアダプトの2つを使っています。
さきほど色々とDNSの設定を行いましたが、NATによって参照するDNSサーバーが変わってしまうのでNATのインターフェイスを停止させます。

スクリーンショット 2025-10-01 154531.png
スクリーンショット 2025-10-01 155610.png


画像の様に名前解決を行うサーバが10.0.2.3で、そのインターフェイスがenp0s3なのでこれを停止させます。

nmcli connection down enp0s3

スクリーンショット 2025-10-01 160318.png

これで参照するサーバが自分自身になりました


2-6 名前解決の確認

名前解決ができるかdigコマンドを使って確認します

dig host1.example1.jp
dig www.example1.jp
dig mail.example1.jp

スクリーンショット 2025-10-01 164801.png
スクリーンショット 2025-10-01 164829.png
スクリーンショット 2025-10-01 164850.png


名前解決が出来ていることを確認できました


3. exmaple2.jpドメインとjpドメインの設定

example1.jpドメインの設定が出来たので、exmaple2.jpドメインとjpドメインの設定をしていきます。ホスト名やIPアドレスなどは1.概要に記載しています。


3-1 example2.jpの設定

example2.jpの設定はexample1.jpの設定と同じであるため省略しますが、設定でミスをした
箇所を書いておきます。


ゾーンファイルでのミス
スクリーンショット 2025-10-02 162936.png
スクリーンショット 2025-10-02 163359.png
スクリーンショット 2025-10-02 163437.png
スクリーンショット 2025-10-02 163454.png

⇒MX 10 mail.example2.jpの部分でミス。最後に「.」をつけ忘れ


ゾーンファイル名のミス
サービスを開始させようとしたが出来なかった
スクリーンショット 2025-10-02 164419.png

スクリーンショット 2025-10-02 164435.png

スクリーンショット 2025-10-02 164713.png

⇒ゾーンファイルが存在しないと出ていたので確認すると、ゾーンファイル名が「example2.ip.zone」となっていた。「jp」とするべき部分を「ip」にしていた。
ファイルをコピーして起動させると成功しました。


名前解決できるか確認

スクリーンショット 2025-10-02 165344.png


3-2 ホスト0の設定

ホスト0の設定もホスト1、2とほぼ同じですが上位ゾーンの設定を行うので、そのあたりを中心に書いていこうと思います。


/etc/named.conf
ホスト0はキャッシュサーバとしても動作させるため「recursion yes;」に設定しています。また定義するゾーンも「jp」になります。

named.conf
options {
    listen -on port 53 { 127.0.0.1; 192.168.56.100; };
    allow -query { any; };
    recursion yes;
}

zone "jp" IN { 
    type master;
    file "jp.zone "; 
    allow -update { none; };
};

スクリーンショット 2025-10-02 173044.png
スクリーンショット 2025-10-02 173234.png


/var/named/jp.zoneの修正
権限の譲渡を行ったゾーンのNSレコードとコンテンツサーバを指定するAレコード、グルーレコードを書いていきます

jp.zone
$TTL 3H
$ORIGIN jp.
@       IN SOA host0 root (
            2023100901 ; serial
            1D ; refresh
            1H ; retry
            1W ; expire
            3H ) ; minimum
        NS host0.jp.
        
example1.jp. NS host1.example1 .jp.
example2.jp. NS host2.example2 .jp.
host0 A 192.168.56.100
host1.example1 .jp. A 192.168.56.101
host2.example2 .jp. A 192.168.56.102

スクリーンショット 2025-10-02 174601.png


その後はホスト1,2と同じく書式チェック・サービス起動・ファイアウォールの設定をします
スクリーンショット 2025-10-02 174715.png

スクリーンショット 2025-10-02 180157.png


4. 名前解決の確認

名前解決を確認していきます


ホスト0⇒ホスト1とホスト2のDNSサーバの確認
スクリーンショット 2025-10-02 180548.png
スクリーンショット 2025-10-02 180610.png


ホスト1,2はDNSサーバを自身に指定しているためホスト0に変更する(写真はホスト1のみ)
スクリーンショット 2025-10-02 192018.png


ホスト1⇒ホスト2の名前解決
スクリーンショット 2025-10-02 193717.png

スクリーンショット 2025-10-02 193953.png

スクリーンショット 2025-10-02 194718.png

画像はありませんがホスト2⇒ホスト1の名前解決も確認できました


感想

参考書に書いてあることをそのまま行っただけですが、どうであれDNSサーバを構築するという体験ができてよかったです。
Webサーバと同様に、CCNAなどの資格勉強がひと段落したらもう一歩踏み込んだDNSサーバの構築にチャレンジしたいと思います

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?