BIND 8 ndc と BIND 9 rndc のネームサーバー制御ツールは、下位互換性がありません。rndc は BIND 8 ネームサーバーに接続できず、ndc は BIND 9 ネームサーバーに接続できません。機能、オプション、操作のデフォルトモード、および構成ファイルの要件が変更されています。そのため、BIND 9 サーバーで ndc を使用すると、機能が使用できなくなったり操作が不安定になったりすることがあります。詳細は、rndc(1M) のマニュアルページを参照してください。
BIND 8 の ndc と BIND 9 の rndc とのもっとも大きな違いは、rndc はそれ自身の構成ファイル rndc.conf を必要とすることです。rndc-confgen コマンドによってこのファイルを生成できます。rndc.conf ファイルは、制御を行うサーバー、およびそのサーバーが使用する必要のあるアルゴリズムを指定します。
options { default-server localhost; default-key "rndc-key"; }; key "rndc-key" { algorithm hmac-md5; secret "qPWZ3Ndl81aBRY9AmJhVtU=="; }; |
controls { inet * allow { any; } keys { "rndc-key"; }; }; key "rndc-key" { algorithm hmac-md5; secret "qPWZ3Ndl81aBRY9AmJhVtU=="; }; |
ndc ユーティリティーと rndc ユーティリティーはどちらも、コマンドをネームサーバーに送信し、情報をネームサーバーから取り出すために制御チャネルを使用します。ただし、これらのユーティリティーには相違点があります。
BIND 8 の ndc は、AF_UNIX ドメインソケット (UNIX 制御チャネル) または TCP/IP ソケット (inet 制御チャネル) を使用できます。デフォルトでは、BIND 8 サーバーは、in.named にコンパイルされたパス (/var/run/ndc.d/ndc) によって UNIX ドメインソケットを使用するので、ndc は /etc/named.conf のサポートを必要としません。
これに対して BIND 9 の rndc は、認証された TCP/IP inet 制御チャネルのみを使用するので、BIND 8 と下位互換性がありません。BIND 9 サーバーには、制御チャネルのための UNIX ドメインソケットのサポートがありません。
rndc を使用する場合、ネームサーバーと通信するために「key」句を指定する必要があります。BIND 9 サーバーと rndc クライアントは、同じキーを共有する必要があります (/etc/named.conf と /etc/rndc.conf で定義される)。BIND 9 で BIND 8 の制御エントリを使用すると、エラーメッセージが表示されます。
一部のコマンドオプションが、ndc 実装から rndc 実装に変更されました。-c オプションもそれに含まれ、BIND 9 では構文が異なります。そのため、BIND 9 で制御チャネルを指定するには、rndc -s <server> -p <port> を使用します。
rndc コマンドの一覧を次に示します。
構成ファイルおよびゾーンを再読み込みする
単一ゾーンを再読み込みする
ゾーンの即時保守をスケジュールする
構成ファイルと新しいゾーンのみを再読み込みする
サーバー統計を統計ファイルに書き込む
照会ロギングを切り替える
キャッシュをダンプファイル (named_dump.db) にダンプする
保留中の更新をマスターファイルに保存し、サーバーを停止する
保留中の更新を保存せずにサーバーを停止する
デバッグレベルを 1 ずつ増分する
デバッグレベルを変更する
デバッグレベルを 0 に設定する
サーバーのキャッシュをすべてフラッシュする
表示用のサーバーのキャッシュをフラッシュする
サーバーの状態を表示する
サーバーを再起動する (未実装)