rndcコマンドによるDNS管理|BIND運用で必須の管理コマンドを理解する

目次
rndcコマンドによるDNS管理
BINDを運用していると、設定変更後の再読み込みやゾーン情報の更新、キャッシュ削除などを行う機会が頻繁にあります。
初心者のうちは設定変更のたびにnamedサービスを再起動することが多いかもしれません。
しかし実務ではDNSサービスを停止させずに設定反映を行うことが重要です。
そのために利用されるのがrndc(Remote Name Daemon Control)です。
rndcはBIND専用の管理コマンドであり、サービス停止なしに様々な管理操作を実行できます。
本記事ではrndcの仕組みや主要コマンド、実務でよく利用する操作について解説します。
rndcとは
rndcはBINDを管理するための専用コマンドです。
正式名称は次の通りです。
Remote Name Daemon Control
BINDサーバへ管理命令を送信するために利用されます。
なぜrndcが必要なのか
DNSサーバ運用中に設定変更が発生することは珍しくありません。
例えばゾーンファイルへレコードを追加した場合です。
www IN A 192.168.60.20
ftp IN A 192.168.60.30変更内容をBINDへ反映する必要があります。
その際にrndcを利用します。
service restartとの違い
初心者がよく行う方法です。
# systemctl restart namedこの方法でも反映できます。
しかしDNSサービスが一瞬停止します。
実務では次の方法が一般的です。
# rndc reloadサービス停止なしに反映できます。
rndcの通信方式
rndcはBINDと認証付きで通信します。
rndc
↓
TCP 953
↓
named
DNSの53番ポートではありません。
953番ポートが利用されます。
設定ファイル
通常は以下の設定ファイルを利用します。
/etc/rndc.conf
ただしRocky Linuxでは自動生成されていることがほとんどです。
接続確認
まずは状態確認を行います。
# rndc status
正常な例です。
version: BIND 9.18
number of zones: 25
debug level: 0
xfers running: 0BINDの状態を確認できます。
最も利用するreload
設定変更後に最も利用するコマンドです。
# rndc reloadnamed.confやゾーンファイルを再読み込みします。
サービス停止は発生しません。
ゾーン単位のreload
特定ゾーンだけ再読み込みすることも可能です。
# rndc reload example.com大規模環境ではよく利用されます。
reconfigとは
named.confを再読み込みします。
# rndc reconfig新しいゾーン定義を認識させる際によく利用されます。
reloadとreconfigの違い
| コマンド | 役割 |
|---|---|
| reload | 設定とゾーン再読込 |
| reconfig | named.conf再読込 |
実務ではreloadの利用頻度が高くなります。
flushによるキャッシュ削除
キャッシュDNS運用時によく利用します。
# rndc flushDNSキャッシュを全削除します。
flushnameとは
特定ホストだけ削除できます。
# rndc flushname www.example.com全削除したくない場合に便利です。
zonestatusコマンド
ゾーン状態を確認します。
# rndc zonestatus example.com
出力例です。
name: example.com
type: primary
serial: 2026060901シリアル番号も確認できます。
freezeコマンド
ゾーン更新を停止します。
# rndc freeze example.com動的更新利用時に使用されます。
thawコマンド
freezeを解除します。
# rndc thaw example.com更新可能状態へ戻します。
syncコマンド
メモリ上のゾーン情報をディスクへ保存します。
# rndc sync動的更新利用時に重要です。
querylogの有効化
DNS問い合わせログを有効化できます。
# rndc querylog再実行で無効化されます。
トラブル調査時によく利用します。
問い合わせログ確認
ログを確認します。
# journalctl -u named問い合わせ内容を確認できます。
stopコマンド
BINDを停止します。
# rndc stopsystemctl stop namedと同様です。
haltコマンド
即時停止します。
# rndc halt通常は利用機会は少なめです。
notifyコマンド
セカンダリーDNSへ通知します。
# rndc notify example.comゾーン変更を即時反映したい場合に利用します。
セカンダリーDNSとの連携
ゾーン変更後の流れです。
ゾーン編集
↓
シリアル更新
↓
rndc reload
↓
NOTIFY送信
↓
セカンダリー同期
実務で非常によく使う流れです。
よく利用するコマンド一覧
| コマンド | 用途 |
|---|---|
| rndc status | 状態確認 |
| rndc reload | 再読み込み |
| rndc reconfig | 設定再読込 |
| rndc flush | キャッシュ削除 |
| rndc zonestatus | ゾーン確認 |
| rndc notify | ゾーン通知 |
よくあるトラブル
rndc connection refused
namedが起動していない場合があります。
認証エラー
rndc設定ファイルに問題がある場合があります。
reloadしても反映されない
シリアル番号更新漏れの可能性があります。
ゾーンファイル構文エラー
named-checkzoneで確認します。
実務で覚えておきたいポイント
- rndcはBIND専用管理コマンド
- TCP953番ポートを利用する
- reloadは最も利用頻度が高い
- flushでキャッシュ削除できる
- zonestatusでシリアル確認できる
- notifyでセカンダリーDNSへ即時通知できる
まとめ
rndcはBIND運用に欠かせない管理コマンドです。
設定変更後のreload、キャッシュ削除、ゾーン状態確認など、多くの運用作業をサービス停止なしに実行できます。
特にreload、status、flush、zonestatusは実務でも頻繁に利用されるコマンドです。
BINDを運用する場合は、systemctlだけでなくrndcを使いこなせるようになることで、より効率的なDNS管理が可能になります。





