🦁

権威DNSサーバをBINDで構築(スレーブDNS)

2024/07/26に公開

はじめに

前回の記事では、マスターDNSの構築について解説しました。今回は、スレーブDNSの設定について説明します。スレーブDNSは、マスターDNSのデータをコピーし、負荷分散や冗長性を提供する役割を果たします。
https://zenn.dev/shz/articles/a4a1e5cad4be89

検証手順

ステップ1: bindのインストール

スレーブDNSサーバにもbind本体とクライアントユーティリティをインストールします。

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

ステップ2: /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;
};

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

zone "example.com" IN {
    type slave;
    file "slaves/example.com.zone";
    masters { マスターDNS_IP; };
};

ステップ3: ディレクトリとファイルの準備

スレーブゾーンデータを保存するディレクトリを作成します。

sudo mkdir -p /var/named/slaves

ステップ4: bindの起動と確認

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

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

ステップ5: コピーしたゾーン情報の確認

マスターのゾーン情報をコピーすると初期設定ファイルに記述したファイルが作成され、そこに内容が記述されます。
ただし、形式がバイナリ形式(rawフォーマットと呼ばれる)のため、文字化けしそのまま内容を確認することができません。
確認するには内容を読める形に変換する必要があります。

テキスト形式への変換方法(一時対応)

named-compilezoneコマンドを使って、raw形式のファイルをtext形式に変換します

コマンドの書式

named-compilezone -f raw -F text -o 出力ファイル名 ゾーン名 ゾーンファイル名

実例

sudo named-compilezone -f raw -F text -o /var/named/slaves/example_text.com.zone example.com /var/named/slaves/example.com.zone
  • -f raw:変換前のファイル形式
  • -F text:変換後のファイル形式
  • -o /var/named/slaves/example_text.com.zone:出力ファイル名
  • example.com:ゾーン名
  • /var/named/slaves/example.com.zone:ゾーンファイル名

これで、example_text.com.zoneというtext形式のファイルが生成され、catコマンドなどで確認できます。

まとめ

以上でスレーブDNSの構築が完了しました。この手順を実行することで、BINDを使用して独自のスレーブDNSサーバを構築できます。これでマスターDNSとスレーブDNSの構成が完了し、負荷分散や冗長性を高めることができます。

次回は、DNSサーバのセキュリティ強化について学習します。

Discussion