BINDで構築したDNSサーバーを移行する際、既存サーバーの設定ファイルをまとめてバックアップする必要がありました。
今回はtarコマンドを使って、BINDの設定ファイルやゾーンファイルをtar.gz形式でまとめる方法を備忘録として残します。
環境
今回想定している環境は以下です。
- Amazon Linux 2023
- BIND
- bash
ディストリビューションやBINDの構成によって、設定ファイルの配置場所は異なる場合があります。
BINDの設定ファイルを確認する
BINDでは、環境によって以下のようなファイル・ディレクトリを使用します。
/etc/named.conf
/var/named/
/etc/named.confはBINDの主要な設定ファイルです。
/var/named/にはゾーンファイルなどが配置されます。
例えば以下のような構成です。
/etc/named.conf
/var/named/
├── example.com.zone
├── example.net.zone
└── ...
DNSサーバーを移行する場合は、named.confだけでなく、参照しているゾーンファイルなども忘れずにバックアップします。
tar.gz形式でバックアップする
今回は/etc/named.confと/var/named/をまとめて圧縮します。
sudo tar -czvf /tmp/dns-config-backup.tar.gz \
/etc/named.conf \
/var/named/
各オプションの意味は以下です。
-
-c:新しいアーカイブを作成 -
-z:gzip形式で圧縮 -
-v:処理対象のファイルを表示 -
-f:作成するファイル名を指定
作成されたバックアップファイルは、
/tmp/dns-config-backup.tar.gz
に保存されます。
なお、絶対パスを指定してtarを実行すると、
tar: Removing leading `/' from member names
のようなメッセージが表示される場合があります。
これはアーカイブ内に絶対パスをそのまま保存せず、先頭の/を取り除いて相対パスとして格納していることを示すメッセージです。
エラーではありません。
バックアップファイルを確認する
ファイルが作成されたことを確認します。
ls -lh /tmp/dns-config-backup.tar.gz
例えば以下のように表示されます。
-rw-r--r--. 1 root root 12K Sep 1 12:00 /tmp/dns-config-backup.tar.gz
アーカイブの中身を確認する
バックアップを作っただけで安心せず、必要なファイルが含まれているか確認しておきます。
tar -tzvf /tmp/dns-config-backup.tar.gz
例えば、
etc/named.conf
var/named/example.com.zone
var/named/example.net.zone
のように表示されます。
必要な設定ファイルやゾーンファイルが含まれていればOKです。
展開する場合
バックアップしたファイルを展開する場合は、-xを使用します。
例えば、まず作業用ディレクトリへ展開して中身を確認する場合は、
mkdir /tmp/dns-restore
tar -xzvf /tmp/dns-config-backup.tar.gz -C /tmp/dns-restore
とします。
展開すると、
/tmp/dns-restore/etc/named.conf
/tmp/dns-restore/var/named/
のような形になります。
いきなり/etcや/varへ上書きするのではなく、まず別ディレクトリへ展開して内容を確認すると安全です。
DNSサーバー移行時に注意したこと
DNSサーバーの移行では、ファイルをコピーするだけでなく、新しいサーバー側で設定内容を確認する必要があります。
特に以下は確認しておきます。
-
named.confから参照しているゾーンファイル - ゾーンファイルの配置場所
- ファイルの所有者・権限
- BINDのインストール状況
- FirewallやSecurity Group
- Master/Slave間のゾーン転送設定
- 新サーバーでの名前解決
設定を復元した後は、BINDを起動する前に設定ファイルのチェックも行います。
sudo named-checkconf
ゾーンファイルについては、
sudo named-checkzone example.com /var/named/example.com.zone
のように確認できます。
まとめ
BINDのDNSサーバーを移行する際、設定ファイルをまとめてバックアップする場合は、
sudo tar -czvf /tmp/dns-config-backup.tar.gz \
/etc/named.conf \
/var/named/
でtar.gz形式にまとめられます。
作成後は、
tar -tzvf /tmp/dns-config-backup.tar.gz
で中身まで確認しておくと安心です。
今回のようなサーバー移行では、設定ファイルを直接一つずつコピーするより、関連ファイルをまとめてアーカイブしておくと扱いやすかったです。
また、復元するときはいきなり元のパスへ上書きせず、一度別ディレクトリへ展開して内容を確認してから配置するようにしています。