💡
権威DNSサーバをBINDで構築(マスターDNS): Route 53との連携
はじめに
今回はBINDを利用して権威DNSサーバを構築します。AWSにはRoute 53という非常に便利なサービスがありますが、BINDを使用する理由です。
- DNSの仕組みを理解する: Linuc202の試験に向けて、DNSの仕組みを実際に構築することで理解を深めます。
- 実運用スキルの向上: 自分で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