unbound-control

Section: unbound 1.1.0-1.1.1 (8)
Updated: Nov 20, 2008


名前

unbound-control - Unboundリモートサーバ制御ユーティリティ

書式

unbound-control [-h] [-c cfgfile] [-s server] command

説明

Unbound-controlunbound(8)DNSサーバのリモート管理を行います。設定ファイルを読み込み、unboundサーバにSSL越しで接続し、コマンドを送り、結果を表示します。利用できるオプションは次の通りです。

-h
バージョンとコマンドライン・オプションのヘルプを表示します。
-c cfgfile
設定を読み込む設定ファイル。省略したら、デフォルトの設定ファイルが使われます。
-s server[@port]
接続するサーバのIPv4かIPv6のアドレス。省略したら、アドレスは設定ファイルから読まれます。

コマンド

There are several commands that the server understands.

start
サーバを起動します。単にunbound(8)を実行します。unboundの実行ファイルは環境変数PATHから検索します。-cを使って指定した設定ファイルかデフォルトの設定ファイルを使って起動します。
stop
サーバを停止します。サーバ…デーモンが終了します。
reload
サーバをリロードします。 これはキャッシュを削除し、新しい設定ファイルを読み込みます。
verbosity number
ログ出力の饒舌さの値を変更します。unbound.conf(5)におけるverbosityキーワードと同じ値です。サーバがreload(設定ファイルの再読込)制御コマンドか次のverbosity制御コマンドが発行されるまでこの新しい設定値は続きます。
stats
統計を出力します。内部カウンタを0にリセットします。これはstatistics-cumulative設定オプションを使って制御できます。統計は行毎に[名前]: [値]の形式で出力されます。
local_zone name type
名前とタイプを伴ったローカル・ゾーンを追加します。local-zone設定オプションと同じです。そのゾーンがすでに存在していたら、タイプは与えられた引数に変更されます。
local_zone_remove name
与えられた名前のローカル・ゾーンを削除します。そのゾーン内の全てのローカル・データも削除します。そのゾーンが存在しなかったら、コマンドは成功します。
local_data RR data…
新しいローカル・データ、すなわち与えられたリソース・レコードを追加します。そのゾーンが存在しないときを除いて、local-data設定オプションと同じです。このリモート制御コマンドがこのレコードと同じ名前のtransparentゾーンを生成した場合には、このコマンドは詳細な文法エラーを返すことはしません。
local_data_remove name
ローカル・ネームから全てのリソース・レコードのデータを削除します。その名前が項目をすでに保っていなければ、何も起きません。(staticゾーンでは)その名前に対してNXDOMAINになります。しかし、その名前が空の終端でないもの(削除された名前の下のドメイン名にまだデータがある)になれば、NOERRORデータなしという回答がその名前に対しての結果になります。
dump_cache
キャッシュの内容が標準出力にテキスト形式で出力されます。ファイルにキャッシュを保存するためにはリダイレクトすることでできます。
load_cache
キャッシュの内容を標準入力から読み込みます。dump_cacheと同じ形式を使います。古いか間違ったデータのキャッシュを読み込むことは、古いか間違ったデータをクライアントに返すという結果になります。
lookup name
指定した名前を検索するのに使われたネームサーバを標準出力に出力します。
flush name
キャッシュからその名前を削除します。タイプとしてA, AAAA, NS, SOA, CNAME, DNAME, MX, PTR, SRV, NAPTRを削除します。それは速く行えるので、他のレコード・タイプはflush_typeflush_zoneを使って削除することができます。
flush_type name type
キャッシュからその名前とタイプの情報を削除します。
flush_zone name
キャッシュからその名前以下の全ての情報を削除します。新しい検索が行われるように、そのRRsetとキー・エントリは削除されます。キャッシュ全体を歩き、検査する必要があり、遅い動作です。

終了コード

unbound-controlプログラムは、エラーのときにはステータスコード1で、成功したときにはステータスコード0で終了します。

セットアップ

セットアップはサーバとクライアントの両方に自己署名証明書と秘密鍵を要求します。スクリプトunbound-control-setupはデフォルトの実行ディレクトリ、あるいは-dで指定した別のディレクトリにそれらを生成します。そのスクリプトはディレクトリに存在する秘密鍵を保護します。rootとしてそのスクリプトを実行した後に、unbound.confにおいてcontrol-enableを有効にしてください。

統計カウンタ

statsコマンドはたくさんの統計カウンタを表示します。

threadX.num.queries
number of queries received by thread
threadX.num.cachehits
number of queries that were successfully answered using a cache
lookup
threadX.num.cachemiss
number of queries that needed recursive processing
threadX.num.recursivereplies
The number of replies sent to queries that needed recursive
processing. Could be smaller than threadX.num.cachemiss if due to
timeouts no replies were sent for some queries.
threadX.requestlist.avg
The average number of requests in the internal recursive
processing request list on insert of a new incoming recursive
processing query.
threadX.requestlist.max
Maximum size attained by the internal recursive processing
request list.
threadX.requestlist.overwritten
Number of requests in the request list that were overwritten by
newer entries. This happens if there is a flood of queries that
recursive processing and the server has a hard time.
threadX.requestlist.exceeded
Queries that were dropped because the request list was full.
This happens if a flood of queries need recursive processing, and
the server can not keep up.
threadX.requestlist.current.all
Current size of the request list, includes internally generated
queries (such as priming queries and glue lookups).
threadX.requestlist.current.user
Current size of the request list, only the requests from client
queries.
threadX.recursion.time.avg
Average time it took to answer queries that needed recursive
processing. Note that queries that were answered from the cache are
not in this average.
threadX.recursion.time.median
The median of the time it took to answer queries that needed
recursive processing. The median means that 50% of the user queries
were answered in less than this time. Because of big outliers
(usually queries to non responsive servers), the average can be
bigger than the median. This median has been calculated by
interpolation from a histogram.
total.num.queries
summed over threads.
total.num.cachehits
summed over threads.
total.num.cachemiss
summed over threads.
total.num.recursivereplies
summed over threads.
total.requestlist.avg
averaged over threads.
total.requestlist.max
the maximum of the thread requestlist.max values.
total.requestlist.overwritten
summed over threads.
total.requestlist.exceeded
summed over threads.
total.requestlist.current.all
summed over threads.
total.recursion.time.median
averaged over threads.
time.now
current time in seconds since 1970.
time.up
uptime since server boot in seconds.
time.elapsed
time since last statistics printout, in seconds.

拡張された統計

mem.total.sbrk
If sbrk(2) is available, an estimate of the heap size of the program in number of
bytes. Close to the total memory used by the program, as reported
by top and ps. Could be wrong if the OS allocates memory
non-contiguously.
mem.cache.rrset
Memory in bytes in use by the RRset cache.
mem.cache.message
Memory in bytes in use by the message cache.
mem.mod.iterator
Memory in bytes in use by the iterator module.
mem.mod.validator
Memory in bytes in use by the validator module. Includes the
key cache and negative cache.
histogram.<sec>.<usec>.to.<sec>.<usec>
Shows a histogram, summed over all threads. Every element
counts the recursive queries whose reply time fit between the lower
and upper bound. Times larger or equal to the lowerbound, and
smaller than the upper bound. There are 40 buckets, with bucket
sizes doubling.
num.query.type.A
The total number of queries over all threads with query type A.
Printed for the other query types as well, but only for the types
for which queries were received, thus =0 entries are omitted for
brevity.
num.query.type.other
Number of queries with query types 256-65535.
num.query.class.IN
The total number of queries over all threads with query class
IN (internet). Also printed for other classes (such as CH (CHAOS)
sometimes used for debugging), or NONE, ANY, used by dynamic
update. num.query.class.other is printed for classes
256-65535.
num.query.opcode.QUERY
The total number of queries over all threads with query opcode
QUERY. Also printed for other opcodes, UPDATE, …
num.query.tcp
Number of queries that were made using TCP towards the unbound
server.
num.query.flags.RD
The number of queries that had the RD flag set in the header.
Also printed for flags QR, AA, TC, RA, Z, AD, CD. Note that queries
with flags QR, AA or TC may have been rejected because of
that.
num.query.edns.present
number of queries that had an EDNS OPT record present.
num.query.edns.DO
number of queries that had an EDNS OPT record with the DO
(DNSSEC OK) bit set. These queries are also included in the
num.query.edns.present number.
num.answer.rcode.NXDOMAIN
The number of answers to queries, from cache or from recursion,
that had the return code NXDOMAIN. Also printed for the other
return codes.
num.answer.rcode.nodata
The number of answers to queries that had the pseudo return
code nodata. This means the actual return code was NOERROR, but
additionally, no data was carried in the answer (making what is
called a NOERROR/NODATA answer). These queries are also included in
the num.answer.rcode.NOERROR number. Common for AAAA lookups when
an A record exists, and no AAAA.
num.answer.secure
Number of answers that were secure. The answer validated
correctly. The AD bit might have been set in some of these answers,
where the client signalled (with DO or AD bit in the query) that
they were ready to accept the AD bit in the answer.
num.answer.bogus
Number of answers that were bogus. These answers resulted in
SERVFAIL to the client because the answer failed validation.
num.rrset.bogus
The number of rrsets marked bogus by the validator. Increased
for every RRset inspection that fails.
unwanted.queries
Number of queries that were refused or dropped because they
failed the access control settings.
unwanted.replies
Replies that were unwanted or unsolicited. Could have been
random traffic, delayed duplicates, very late answers, or could be
spoofing attempts. Some low level of late answers and delayed
duplicates are to be expected with the UDP protocol. Very high
values could indicate a threat (spoofing).

ファイル

/var/unbound/unbound.conf
unbound設定ファイル。
/var/unbound
秘密鍵(unbound_server.keyとunbound_control.key)と自己署名証明書(unbound_server.pemとunbound_control.pem)を置くディレクトリ。

関連項目

unbound.conf(5), unbound(8).