💡

権威DNSサーバをBINDで構築(マスターDNS): Route 53との連携

2024/07/25に公開

はじめに

今回はBINDを利用して権威DNSサーバを構築します。AWSにはRoute 53という非常に便利なサービスがありますが、BINDを使用する理由です。

  1. DNSの仕組みを理解する: Linuc202の試験に向けて、DNSの仕組みを実際に構築することで理解を深めます。
  2. 実運用スキルの向上: 自分でDNSサーバを構築・運用する経験は、実際のシステム管理やトラブルシューティングに役立ちます。

この記事では、以下の環境で権威DNSサーバを構築します。

  • Route 53にドメイン登録済み
  • サーバ: Amazon EC2 (Amazon Linux 2)
  • BINDのバージョン: 9.11.4
  • EC2はパブリックサブネットに配置
  • セキュリティグループはポート53のTCP/UDPを開放

今回は、Route 53で管理しているドメインのサブドメインを作成し、その管理をEC2上のマスターDNSサーバに委任する形で権威サーバを構築します。
具体的には、example.comをRoute 53で管理し、www.example.comをマスターDNSで管理します。

検証手順

ステップ1: bindで権威DNSサーバの構築

bindのインストール

bind本体とクライアントユーティリティをインストールします。

sudo yum update -y
sudo yum install bind bind-utils -y

/etc/named.confの編集

bindの設定ファイルを編集します。

sudo vi /etc/named.conf

以下の設定を追加または変更します。

options {
    listen-on port 53 { any; };
    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";
    allow-query     { any; };
    recursion no;
    allow-transfer  { スレーブDNS_IP; };  # スレーブDNSのIPアドレスを指定
};

zone "." IN {
    type hint;
    file "named.ca";
};

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

ゾーンデータの作成

ゾーンデータファイルを作成します。

sudo vi /var/named/example.com.zone

以下の内容を記述します。

$TTL 86400
@   IN  SOA     ns1.example.com. admin.example.com. (
                    2023070801  ; Serial
                    3600        ; Refresh
                    1800        ; Retry
                    1209600     ; Expire
                    86400       ; Minimum TTL
                )
    IN  NS      ns1.example.com.
    IN  NS      ns2.example.com.
ns1 IN  A       マスターDNS_IP
ns2 IN  A       スレーブDNS_IP
www IN  A       ウェブサーバー_IP

bindの起動と確認

bindを起動し、設定が正しいか確認します。
active (running) と表示されていれば正常に起動しています。

sudo systemctl start named
sudo systemctl enable named
sudo systemctl status named

ステップ2: Route 53でサブドメインの管理を委任

NSレコードの追加

Route 53でホストゾーンを開き、対象のホストゾーンにNSレコードを追加します。

1.レコード名にサブドメインを入力
2.レコードタイプにNSを選択
3.値に権威DNSサーバのホストネーム(例:ns1.example.com)を入力

Aレコードの追加

1.レコード名に権威DNSサーバのホストネームを入力
2.レコードタイプにAを選択
3.値にパブリックIPを入力

ステップ3: 名前解決をテスト

dig @localhost www.example.com

このコマンドは、example.com ドメインのNSレコードを確認するためのものです。期待される結果は、www.example.com ドメインのAレコードが正しく返されることです。

まとめ

以上でマスターDNSの構築が完了しました。この手順を実行することで、BINDを使用して独自の権威DNSサーバを構築できました。次回はスレーブDNSの構築をしたいと思います。

Discussion