named —
インターネットドメインネームサーバ
(DNS)
named
[
-d
debuglevel]
[
-p
port#]
[
-(b|c)
config_file]
[
-f
-q -r
-v]
[
-u
user_name]
[
-g
group_name]
[
-t
directory]
[
-w
directory]
[
config_file]
named
はインターネットドメインネームサーバです。
インターネットドメインネームシステムの詳細な情報については
RFC 1033, 1034, 1035
を参照してください。
パラメータがない場合は
named
はデフォルトの設定ファイルである
/etc/namedb/named.conf
の初期化データを読み込み、問い合わせに対し待機します。
コマンド行の最後に与えられた
config_file 引数は
“
-b” または
“
-c”
フラグを使用して指定された
config_file
を無効にします。
注: named
のいくつかのオプションと多くの動作は、設定ファイルの中で
制御できます。更なる情報はこの
BIND
配布物に含まれる設定ファイルガイドを参照してください。
指定できるオプションは以下の通りです。
-
-d
debuglevel
- デバッグ情報を出力します。
debuglevel
は表示するメッセージのレベルを決定する数字です。もし負の値の場合、
debuglevel は “1”
に設定されます。
注:
新しいデバッグの枠組は古いバージョンの
named
よりもかなり洗練されています。
設定ファイルの
“
logging
” 宣言は
(問い合わせや内/外への転送などの)
多くの種類にわたるイベント
それぞれに対して、複数の別々なデバッグレベルを設定することができます。
これらの広範囲にわたる新しい機能に関する更なる情報は、この
BIND
配布物に含まれる設定ファイルガイドを参照してください。
-
-p
port#
- 指定されたリモートポート番号を使用します。このポート番号は
named
が問い合わせを送る番号です。デフォルトの値は標準のポート番号、つまり
getservbyname(3) が
“
domain
”
に対して返すポート番号です。
注: 以前は、
“-p
port#[/localport#]”
という文法が使用でき、1
つ目のポートが
remote
サーバへの接続に使用され、2
つ目のポートが
named の
local
サーバに対するポート番号として使用されました。
現在の使用法は古い使用法から
localport#
の指定を除いたものと同等です。この機能は
設定ファイルの
“options
”
宣言にある
“listen-on
”
節で指定できます。
-
-(b|c)
config_file
- 代わりの
config_file
を使用します。
この引数はコマンド行の最後に指定された
config_file
によって上書きされます。
デフォルトの値は
/etc/namedb/named.conf
です。
- -f
- このプロセスを表で動かし、
fork(2)
やデーモン化をしません
(デフォルトではデーモン化をします)。
- -q
-
named が
QRYLOG
を定義してコンパイルされている場合に、
すべての問い合わせのトレースを行ないます。
注:
設定ファイルの
“logging
” 宣言で
“queries
”
logging category
する方が賛成され、このオプションは反対されています。
更なる情報は、この
BIND
配布物に含まれる設定ファイルガイドを参照してください。
- -r
- 再帰的なネームサーバの問い合わせを抑止します。
問い合わせに対してはローカルゾーン
(プライマリもしくはセカンダリ)
からのみ
回答されます。
この指定はルートサーバにて使用することができます。
デフォルトでは再帰的な問い合わせを行ないます。
注:
このオプションは設定ファイルの
“
options
” 宣言の
“recursion
”
節によって上書きされ、またそちらのほうが推奨されています。
- -v
- バージョンを報告し、終了します。
-
-u
user_name
- ユーザを指定すると、初期化後のサーバがこのユーザで動作します。
値はユーザ名または数字のユーザ
ID
どちらでも構いません。
“-g”
フラグが指定されていなかった場合、
指定されたユーザのプライマリグループがグループ
ID
として使用されます
(initgroups()
が呼ばれるため、ユーザの所属するすべてのグループがサーバに
渡されます)。
-
-g
group_name
- グループを指定すると、初期化後のサーバがこのグループで動作します。
値はグループ名または数字のグループ
ID
どちらでも構いません。
-
-t
directory
- サーバがコマンド行引数を処理したらすぐに
chroot() するべき
ディレクトリを指定します。
-
-w
directory
- サーバの作業ディレクトリを設定します。設定ファイルの
“
options
” 宣言の
“directory
”
節はコマンド行で指定したあらゆる値を上書きします。
デフォルトの作業ディレクトリはカレントディレクトリ
(“.”) です。
それ以外の引数は上で述べたとおり、
古い実装との互換性のために、設定ファイルの名前として扱われます。この引数は
“
-b” または
“
-c”
フラグを使用して指定される
config_file
を無効にします。
特に引数が与えられなければ、デフォルトの設定ファイルが使用されます
(
/etc/namedb/named.conf) 。
マスタファイルは制御情報とゾーン中のオブジェクトの
資源レコードのリストからなり、次の形式を取ります。
$INCLUDE <filename> <opt_domain>
$ORIGIN <domain>
$TTL <ttl>
<domain> <opt_ttl> <opt_class> <type> <resource_record_data>
ここで、
- domain
- ルートの場合は
“
.
”
を、現在の起点の場合は
“@
”
を、それら以外では通常のドメイン名を指定します。
domain が
“.
” で終って
いない
通常のドメイン名である場合は、
現在の起点がドメインに追加されます。
ドメイン名が
“.
”
で終っている場合は変更されません。
- opt_domain
- このフィールドにはインクルードファイル中のデータの起点を定義します。
これはインクルードファイルの最初の行の前に
$ORIGIN
宣言を置くことと等価です。
このフィールドはオプショナルです。
opt_domain
フィールドやインクルードファイル中の
$ORIGIN
宣言はそのファイル自身の現在の起点を変更することはありません。
- ttl
- 明示的な TTL (time-to-live)
を持たない
将来のレコードのためのデフォルトの
TTL
を、整数値で指定します。
- opt_ttl
- このフィールドはオプションであり、
time-to-live
を整数値で指定します。
設定されない場合、TTL
は最後の $TTL
文から取得されます。
$TTL
文が存在しない場合、SOA
の最小値が使用され、警告が生成されます。
- opt_class
- オブジェクトのアドレスの型を指定します。
現在はDARPAインターネットに接続するオブジェクトである
IN
のみがサポートされています。
- type
- このフィールドには以下のトークンのうちひとつが含まれます。
括弧中におのおの
resource_record_data
フィールドに指定すべきデータを示しています。
通常は行末でリソースレコードは終了しますが、
左括弧と右括弧で囲まれた場合は複数行にまたがることが可能となります。
セミコロンから行末まではコメントとして扱われます。
注:
ここには示されていませんが、このほかのタイプのリソースレコードも存在します。
リソースレコードのすべてのタイプを知るには
BIND Operations Guide (“BOG”)
を参照する必要があるでしょう。
新しい RFC
にていくつかのリソースタイプが標準化されていますが、
このバージョンの
BIND
ではまだ実装されていません。
各マスタゾーンファイルはそのゾーンの
SOA
レコードで始まらなければなりません。
以下に SOA
レコードの例を示します。
@ IN SOA ucbvax.Berkeley.EDU. rwh.ucbvax.Berkeley.EDU. (
1989020501 ; serial
10800 ; refresh
3600 ; retry
3600000 ; expire
86400 ) ; minimum
SOA ではシリアル番号 (serial)
を指定します。
シリアル番号はマスタファイルを更新するたびに増加する必要があります。
シリアル番号は小数点つきの数字を指定することもできますが、
整数への変換は乗算や加算ではなく文字列としてつなげて行っているため、
あまり
賢い方法とはいえません。
年月日と 0〜99
のシリアル番号を使用することで、
このフィールドのサイズである符号なしの
32
ビット以内に収まります。
(このやり方は 4294
年には考え直す必要があることは確かですが、
それについては心配する必要はないでしょう)。
セカンダリサーバは秒で指定されたリフレッシュ時間
(refresh) の間隔で
シリアル番号をチェックします。
シリアル番号に変更があれば、新しいデータを読み込むために
ゾーン情報が転送されます。
リフレッシュ時間が過ぎてもマスタサーバに接続できない場合は、
リトライ時間 (retry)
の間隔でリフレッシュが試みられます。
期限切れ時間 (expire)
が過ぎてマスタサーバに接続できない場合は、
セカンダリサーバはそのゾーンのすべてのデータを破棄します。
ブートファイルでの
“
domain
” と
“
suffixes
”
の指定は廃止され、
もっと便利なリゾルバベースの実装、すなわち部分的な形のドメイン名
(partially-qualified domain names)
の接尾辞に置き変えられました。
以前のメカニズムでは多くの状況下で失敗することがあり、
特にローカルネームサーバが完全な情報を持っていない場合に失敗しました。
以下に各シグナルを
kill(1)
コマンドによってサーバに送った場合の効果を示します。
SIGHUP
- サーバは
named.conf
を読み、データベースをロードし直します。
サーバがコンパイルオプションの
FOCED_RELOAD
を定義されてコンパイルされている場合は、
SIGHUP
を送るとサーバはすべてのセカンダリゾーンのシリアル番号もチェックします。
通常、シリアル番号は
SOA
中に指定された間隔でのみチェックされます。
SIGINT
- 現在のデータベースとキャッシュの内容を
“/var/tmp/named_dump.db”
または
_PATH_DUMPFILE
の値にダンプします。
SIGILL
- サーバが -DSTATS
付きでコンパイルされていれば、
統計データを
named.stats
にダンプします。
統計データはこのファイルの末尾に追加されます。
SIGSYS
- サーバがプロファイリング
(サーバの fork, chdir と exit) を
有効にされてコンパイルされていれば、
プロファイリングデータを
/var/tmp
にダンプします。
SIGTERM
- 更新されたデータが存在すればこれを保存し、サーバをシャットダウンします
SIGUSR1
- デバッグ機能を有効にします。
SIGUSR1
が送られるたびにデバッグレベルが上がります。
(SIGUSR1
がない古いシステムでは
SIGEMT
が使われます。)
SIGUSR2
- デバッグ機能を完全に無効にします。
(
SIGUSR2
がない古いシステムでは
SIGFPE
が使われます。)
SIGWINCH
- すべてのサーバに入力される問い合わせの
syslog(8) による
ログ採取の有無を切り替えます。
(ログ採取はサーバが
QRYLOG
オプションを指定されて
コンパイルされている必要があります。)
- /etc/namedb/named.conf
- デフォルトのネームサーバの設定ファイル
-
/var/run/named.pid
(
_PATH_PIDFILE
)
- プロセス ID
-
/var/tmp/named_dump.db
(
_PATH_DUMPFILE
)
- ネームサーバデータベースのダンプ
-
/var/tmp/named.run
(file:
_PATH_DEBUG
)
- デバッグ出力
-
/var/tmp/named.stats
(file:
_PATH_STATS
)
- ネームサーバの統計データ
gethostbyname(3),
hostname(7),
kill(1),
resolver(3),
resolver(5),
signal(2), RFC 882, RFC 883, RFC 973, RFC 974,
RFC 1033, RFC 1034, RFC 1035, RFC 1123, RFC 2308 “Name Server
Operations Guide for
BIND”