BIND 9.7/rndc設定
| Table of Contents |
はじめに
BIND9.7でのrndc設定手順です。
rndc (remote name server daemon control) とは、BINDをリモートから制御するための仕組みです。
サービスの起動、停止などの様々な作業がリモートから可能になります。
前提
インストール環境
DNSサーバ
-
ホスト名(IP)
- serv100.oss-d.net (192.168.11.100)
-
OS
- CentOS 6.2 (kernel 2.6.32-220.4.1.el6)
-
パッケージ
- bind-9.7.3-8.P3.el6_2.2
rndcクライアント
-
ホスト名(IP)
- serv101.oss-d.net (192.168.11.101)
-
OS
- CentOS 6.2 (kernel 2.6.32-220.4.1.el6)
-
パッケージ
- bind-9.7.3-8.P3.el6_2.2
-
BINDは下記手順でインストールします。
- BIND/キャッシュサーバ
DNSサーバ側の設定(192.168.11.100)
rndc設定
rndc.keyの作成
-
TSIG認証用の鍵を生成します。鍵の長さは最大である512bitを指定します。
# rndc-confgen -a -r keyboard -b 512start typing:...........................................................................................................................................stop typing.wrote key file "/etc/rndc.key"
-
ファイルをchroot配下に移動して、所有者を変更します。
# mv /etc/rndc.key /var/named/chroot/etc/rndc.key# chown named:named /var/named/chroot/etc/rndc.key
-
rndc.keyの設定
# cat /var/named/chroot/etc/rndc.keykey "rndc-key" { algorithm hmac-md5; secret "FpS0OJyGgoTFSfpHcw/kIdOLLkn5qy4sqsqeVV0zPghHRC46pWRwmbX+7Z2nEZ7mIEW32N2KADOLX3plmukBlQ==";};
named.confの編集
-
設定ファイル「/var/named/chroot/etc/named.conf」へ下記を追加します。
# rndcのアクセス許可設定 # (ローカルホストとローカルネットワークを許可) controls { inet 127.0 .0 .1 allow { localhost ; } keys { rndc - key ; } ; inet 192.168 .11 .0 allow { 192.168 .11 .0 / 24 ; } keys { rndc - key ; } ; } ; include " /etc/rndc.key " ;
-
サービス再起動
# /etc/init.d/named restart
rndcクライアント側の設定(192.168.11.101)
rndc設定(クライアント側)
BINDサーバ(制御される側)で下記設定を行います。
rndc.confの作成
-
にクライアント側のrndc設定ファイル「/etc/rndc.conf」を作成します。
# vi /etc/rndc.conf
key " rndc-key " { algorithm hmac - md5 ; secret " FpS0OJyGgoTFSfpHcw/kIdOLLkn5qy4sqsqeVV0zPghHRC46pWRwmbX+7Z2nEZ7mIEW32N2KADOLX3plmukBlQ== " ; } ; options { default - key " rndc-key " ; default - server 127.0 .0 .1 ; default - port 953 ; } ;
動作確認
-
rndcの動作を確認します。
# rndc statusversion: 9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.2CPUs found: 1worker threads: 1number of zones: 19debug level: 0xfers running: 0xfers deferred: 0soa queries in progress: 0query logging is OFFrecursive clients: 0/0/1000tcp clients: 0/100server is up and running
その他
FAQ
rndcコマンドを実行すると「rndc: connection to remote host closed」と表示される
# rndc statusrndc: connection to remote host closedThis may indicate that* the remote server is using an older version of the command protocol,* this host is not authorized to connect,* the clocks are not synchronized, or* the key is invalid.
-
下記の原因が考えられます。
- 「/var/named/chroot/etc/rndc.key」がnamedでアクセスできない
- 認証失敗(keyの名前が間違っている、secretが間違っている)
rndcコマンドを実行すると「rndc: neither /etc/rndc.conf nor /etc/rndc.key was found」と表示される
# rndc statusrndc: neither /etc/rndc.conf nor /etc/rndc.key was found
- 「/etc/rndc.conf」もしくは「/etc/rndc.key」に設定ファイルがありません。設定ファイルはchroot配下に置いてはいけません。
rndcコマンド
-
namedサービスをただちに停止します。
# rndc halt
-
このネームサーバーに送られたクエリの すべてをログします。
# rndc querylog
-
ネームサーバーのデータベースをリフレッシュします。
# rndc refresh
-
ゾーンファイルをリロードしますが、以前にキャッシュされた 他の回答を全て保存します。このコマンドを使用すると、すべての保存された解決を消失することなく ゾーンファイルの変更が出来ます。
もし、変更が特定のゾーンのみに影響する場合、reloadコマンドの後に そのゾーン名を付加することで1つのゾーンだけをリロードします。# rndc reload
-
現在のnamed統計を /var/named/named.statsファイルにダンプします。
# rndc stats
-
サーバーを安全に停止し、終了前に動的な更新やIXFR (Incremental Zone ransfers)データを保存します。
# rndc stop
-
DNSサーバのキャッシュ情報をクリアする
# rndc flush