「構築」はゴールではなく、スタート地点
こんにちは!「リナックス先生」です。
全12回にわたってお届けしてきたBIND9講座、ついに最終回です。
第1回では「DNSって何?」という状態だったコウ君も、今や正引き・逆引き・スレーブ連携・DNSSECまでを操る、立派なDNS管理者になりました。
しかし、プロのエンジニアにとって「サーバーが完成した」というのは、長い戦いの始まりに過ぎません。
「設定変更したら起動しなくなった!」
「スレーブサーバーが同期してくれない!」
「キャッシュに残った古い情報を今すぐ消したい!」
こうした日常的なトラブルに冷静に対処できてこそ、真のプロフェッショナルです。
今回は、あなたのDNSサーバーを末長く安定稼働させるための「運用マニュアル」を伝授して、この講座を締めくくりたいと思います。
先生、ここまで長かったですが、本当に勉強になりました!
でも正直、半年後にまた設定が必要になった時、コマンドを覚えている自信がありません…。
「これさえやっておけば安心」というバックアップ方法と、困った時の見直し方を教えてください!
もちろん!
DNSは一度動くと放置されがちだからこそ、いざという時の復旧手順書が命綱になるの。
「壊れたら元に戻す」「エラーが出たらログを見る」。
この基本動作をマスターして、有終の美を飾りましょう!
1. 命綱!バックアップと復旧(リストア)
BIND9の設定はすべてテキストファイルです。
したがって、バックアップは特定のディレクトリをコピーするだけで完了します。
ただし、「ファイルの所有権(パーミッション)」も一緒に保存しないと、復旧時に動かなくなるので注意が必要です。
バックアップすべき対象
AlmaLinux 9 (RHEL系) の場合、守るべきは以下の2箇所です。
/etc/named.conf- 大元の設定ファイル。ACLやViewの定義などが書かれています。
/var/named/- ゾーンファイル(正引き・逆引きデータ)、DNSSECの鍵ファイル、ログディレクトリなどが含まれます。
バックアップ手順(コマンド一発)
tar コマンドを使って、権限情報ごとアーカイブ(圧縮)します。
# 今日の日付入りファイル名でバックアップ sudo tar -czvf named_backup_$(date +%Y%m%d).tar.gz /etc/named.conf /var/named/
これで named_backup_20260120.tar.gz のようなファイルが生成されます。
これをローカルPCや別のファイルサーバーに転送しておけば完璧です。
復旧(リストア)手順
設定を壊してしまい、元に戻したくなった時の手順です。
BINDを停止してから展開します。
# 1. BINDを停止 sudo systemctl stop named # 2. 既存の設定を退避(念のため) sudo mv /etc/named.conf /etc/named.conf.broken sudo mv /var/named /var/named.broken # 3. バックアップをルートディレクトリ(/)に展開 # ※tar作成時にフルパス指定しているため、-C / で元の場所に配置されます sudo tar -xzvf named_backup_20260120.tar.gz -C / # 4. 起動確認 sudo systemctl start named
【重要】 cp コマンドなどで手動でファイルを戻した場合、ファイルの所有者が root になってしまい、named ユーザーが読み込めずに起動エラーになることがあります。
その場合は以下のコマンドで所有権を修正してください。
sudo chown -R root:named /var/named/ sudo chown root:named /etc/named.conf
2. トラブルシューティング・フローチャート
「DNSが動かない!」「名前が引けない!」
そんな時は、闇雲に設定ファイルを書き換えるのではなく、以下の順番で調査してください。
Step 1: 構文チェック (Syntax Check)
まずは設定ファイルの書き間違いがないか確認します。
セミコロン ; やカッコ } の閉じ忘れが原因の9割です。
sudo named-checkconf
何も表示されなければOK。エラーが出れば行番号を確認して修正します。
Step 2: ステータス確認 (System Status)
プロセスが生きているか確認します。
sudo systemctl status named
Active: active (running) なら起動しています。failed なら起動に失敗しています。
Step 3: ログ確認 (Log Check)
第9回で設定したログファイルを見ます。
なぜ起動しないのか、なぜ問い合わせを拒否したのか、答えは全てここにあります。
# エラーログを見る sudo tail -n 50 /var/log/named/default.log # クエリ(問い合わせ)が来ているか見る sudo tail -f /var/log/named/query.log
Step 4: 問い合わせテスト (Dig Check)
サーバー自身から引けるか? 外部から引けるか? を切り分けます。
# サーバー自身から dig @127.0.0.1 google.com # ネットワーク経由(PCなどから) dig @192.168.1.10 google.com
自身からは引けるのにネットワーク経由だと引けない場合、原因はBINDではなく Firewalld や ACL設定 にあります。
3. よくあるエラーと対処法
Case 1: スレーブサーバーが更新されない
現象: マスター側でレコードを追加したのに、スレーブ側に反映されない。
原因: 十中八九、マスター側のシリアル番号(Serial)を増やし忘れています。
対処:
マスターのゾーンファイルを開き、SOAレコードのシリアル番号を +1 して、systemctl reload named してください。
スレーブはシリアル番号が増えていない限り、データを取りに行きません。
Case 2: “permission denied” エラー
現象: ログに dumping master file: ... permission denied と出る。
原因: BINDがファイルを書き込もうとした場所に、書き込み権限がありません。
対処:/var/named/ 直下への書き込みはOSにより制限されています。
書き込みが必要なファイル(スレーブのデータ、動的更新データ、ダンプファイルなど)は、/var/named/slaves/ や /var/named/data/ ディレクトリに配置するように named.conf を修正してください。
Case 3: “REFUSED” (拒否された)
現象: dig を打つと status: REFUSED が返ってくる。
原因: ACL(allow-query / allow-recursion)で拒否されています。
対処:
第7回、第11回を見直してください。
特にIPv6を有効にした場合、ACLにIPv6アドレスを書き忘れているケースが多発します。
4. プロの運用ツール「rndc」
最後に、サービスを停止せずにメンテナンスを行うためのコマンド rndc を紹介します。systemctl はプロセスの管理ですが、rndc はBIND内部への命令です。
① 設定の再読み込み (reload)
sudo rndc reload
systemctl reload named とほぼ同じですが、より高速です。
特定のゾーンだけリロードしたい場合は sudo rndc reload kou-house.lan と指定できます。
② キャッシュのクリア (flush)
「レコードを変更したのに、古いIPが返ってくる!」
そんな時、BINDがメモリに持っているキャッシュを強制的に削除します。
sudo rndc flush
これでサーバーは全ての記憶を失い、またゼロから問い合わせを行うようになります。
③ ステータスのダンプ (status)
第11回で紹介しましたが、現在の接続数や負荷状況を確認します。
sudo rndc status
5. 全12回・BIND9完全攻略講座まとめ
長い間お付き合いいただき、本当にありがとうございました。
これまでの記事をインデックスとしてまとめました。困った時は該当の回を読み返してください。
【入門編:DNSの仕組みと基礎】
-
第1回:概念編
インターネットの電話帳「DNS」の仕組み。キャッシュサーバーと権威サーバーの違い。 -
第2回:インストール&キャッシュ編
BIND9のインストールと、最小構成のnamed.confで作る安全なキャッシュサーバー。
【構築編:独自ドメインの運用】
-
第3回:正引きゾーン編
自分だけのドメインを作成。絶対に失敗しないゾーンファイルとSOAレコードの書き方。 -
第4回:逆引きゾーン編
IPから名前を知る逆引き設定。in-addr.arpaとPTRレコードの記述ルール。 -
第5回:スレーブサーバー編
冗長化の基本。マスターからスレーブへのゾーン転送設定とセキュリティ。 -
第6回:CNAMEとワイルドカード編
別名の便利さと、ルートドメインにCNAMEが書けない「Zone Apex問題」の回避策。
【応用編:セキュリティと高度な機能】
-
第7回:ACL(アクセス制御)編
身内と他人を区別する。オープンリゾルバ化を防ぐ鉄壁のアクセス制限。 -
第8回:View(スプリットDNS)編
社内と社外で返すIPを変える。named.confの構造を変えるView機能の実装。 -
第9回:ログ監視編
誰が何を見ているか?クエリログを可視化して不正アクセスやトラブルを検知する。 -
第10回:DNSSEC自動化編
dnssec-policy機能で、署名鍵の管理とロールオーバーを全自動化する最新手法。 -
第11回:IPv6対応&チューニング編
IPv6完全対応の手順と、メモリ枯渇を防ぐパフォーマンスチューニング。 -
第12回:運用・トラブルシューティング編(本記事)
バックアップ手順、エラー対応フロー、キャッシュクリア等の運用総まとめ。
おわりに:エンジニアとしての自信を持って
DNSは「動いて当たり前、止まると大事件」という、非常にプレッシャーのかかるインフラです。
しかし、この全12回の講座を完走したあなたなら、設定ファイルの1行1行の意味を理解し、トラブルが起きてもログを見て冷静に対処できるはずです。
「名前解決」というインターネットの根幹を制したあなたは、もう初心者ではありません。
これからもAlmaLinux 9とBIND9を使いこなし、信頼されるサーバーエンジニアとして活躍してください!
全12回、本当にお疲れ様でした!
DNSの世界は奥が深いけれど、基礎さえしっかりしていれば何も怖くないわ。
また別の技術講座でお会いしましょう。Good Luck!
▼学習を続けるならこのVPS
この講座で得た知識を活かして、Webサーバー、メールサーバー、そしてDNSサーバーを組み合わせた「フルスタックなインフラ構築」に挑戦してみてください。何度でも作り直せるおすすめVPSはこちら。


コメント