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> を使用します。