Add a fragment which was left untranslated in fstat.1. Submitted by: kano@na.rim.or.jp Translated by: Nobuyuki Koganemaru <n-kogane@syd.odn.ne.jp> Approved by: kuriyama (mentor/implicitly)
2250 lines
70 KiB
Groff
2250 lines
70 KiB
Groff
.\" Copyright (c) 1999-2000 by Internet Software Consortium
|
|
.\"
|
|
.\" Permission to use, copy, modify, and distribute this software for any
|
|
.\" purpose with or without fee is hereby granted, provided that the above
|
|
.\" copyright notice and this permission notice appear in all copies.
|
|
.\"
|
|
.\" THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
|
|
.\" ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
|
|
.\" OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
|
|
.\" CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
|
.\" DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
|
.\" PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
|
|
.\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
|
.\" SOFTWARE.
|
|
.\" $FreeBSD$
|
|
.\" WORD: inbound zone transfer 内部へのゾーン転送 [named]
|
|
.\" WORD: statement ステートメント
|
|
.\" WORD: listener 待機タスク
|
|
.\" WORD: address match list アドレスマッチリスト [named]
|
|
.\" WORD: negative answers 否定応答
|
|
.\" WORD: positive 許可
|
|
.\" WORD: prefix プレフィックス
|
|
.\" WORD: forwarder フォワードを行うサーバ [named]
|
|
.\" WORD: octothorpe ナンバ記号
|
|
.\" WORD: severity 重大度
|
|
.\" WORD: outstanding 未解決の 処理中の
|
|
.Dd January 7, 1999
|
|
.Dt NAMED.CONF 5
|
|
.Os BSD 4
|
|
.Sh 名称
|
|
.Nm named.conf
|
|
.Nd
|
|
.Xr named 8
|
|
用の設定ファイル
|
|
.Sh 概要
|
|
BIND 8 は、以前のリリースと比べて遥かに設定可能なものになっています。
|
|
完全に新しい設定項目があります。例えばアクセス制御リストやカテゴリ別の
|
|
ログなどです。以前はゾーンすべてに対して適用されていたオプションの多くが、
|
|
選択的に使えるようになっています。
|
|
こうした機能に加え、
|
|
将来必要とされる設定がどのようなものになるかをよく考えた結果、
|
|
新たに設定ファイルのフォーマットを作ることにしました。
|
|
.Ss 一般的な文法
|
|
BIND 8 の設定には、一般的な特徴が 2 つあります。
|
|
それは、ステートメントとコメントです。
|
|
ステートメントはすべてセミコロンで終わります。ステートメントの多くは
|
|
サブステートメントを持っており、サブステートメントもセミコロンで終わります。
|
|
.Pp
|
|
次のようなステートメントをサポートしています :
|
|
.Bl -tag -width 0n
|
|
.It Ic logging
|
|
サーバが何をログに残すか、そしてどこにログメッセージを送るのかを指定します。
|
|
.It Ic options
|
|
グローバルなサーバ設定オプションを制御し、
|
|
その他のステートメントに対するデフォルトを設定します。
|
|
.It Ic zone
|
|
ゾーンを定義します。
|
|
.It Ic acl
|
|
名前つきの IP アドレスマッチングリストを定義します。これは、アクセス制御や
|
|
その他の用途に使われます。
|
|
.It Ic key
|
|
認証と許可に使われる鍵情報を指定します。
|
|
.It Ic trusted-keys
|
|
DNSSEC 鍵を定義します。これは、事前にサーバに設定されており、暗黙のうちに
|
|
信頼します。
|
|
.It Ic server
|
|
個々のリモートサーバ用の設定オプションを設定します。
|
|
.It Ic controls
|
|
.Nm ndc
|
|
ユーティリティが使用する制御チャネルを宣言します。
|
|
.It Ic include
|
|
他のファイルをインクルードします。
|
|
.El
|
|
.Pp
|
|
.Ic logging
|
|
および
|
|
.Ic options
|
|
ステートメントは、各設定につき 1 回のみ記述可能です。それに対し、
|
|
その他のステートメントは何回でも記述可能です。各ステートメントの
|
|
詳細については、次に個々のセクションで述べます。
|
|
.Pp
|
|
コメントは、BIND 設定ファイル中でホワイトスペースが現れて良い
|
|
所ならどこでも記述可能です。いろいろなプログラマの注意を引くように、
|
|
C や C++、あるいは シェルや perl の形式のコメントを書くことができます。
|
|
.Pp
|
|
C のスタイルのコメントは、次の 2 つの文字から始まります。
|
|
.Li /*
|
|
(スラッシュと星印) そして、
|
|
.Li */
|
|
(星印とスラッシュ) で終わります。
|
|
この形式のコメントは、これらの文字で完全に区切られるものであるので、
|
|
行の一部分のみでも複数行にまたがっても使用することができます。
|
|
.Pp
|
|
C のスタイルのコメントは入れ子にはできません。例えば、次の例は
|
|
不適切なものです。なぜなら、コメント全体が最初の
|
|
.Li */
|
|
で終わってしまうからです。
|
|
.Bd -literal -offset indent
|
|
/* この行はコメントの最初です。
|
|
この行もコメントの一部です。
|
|
/* この行は、間違えてコメントを入れ子にしようとしています。 */
|
|
この行は、もうコメント内部ではありません。 */
|
|
.Ed
|
|
.Pp
|
|
C++ スタイルのコメントは、次の 2 文字から始まります。
|
|
.Li //
|
|
(スラッシュとスラッシュ) そして、その行の終わりまでがコメントとして
|
|
続きます。この種類のコメントは、複数行にわたって続きません。意味としては
|
|
1 つだが複数行にまたがるようなコメントを書きたい場合は、各行に
|
|
.Li //
|
|
を書かなくてはなりません。例えば、次のようにです :
|
|
.Bd -literal -offset indent
|
|
// この行は、コメントの始まりです。次の行は、
|
|
// 新しいコメントになります。たとえ、意味としては
|
|
// 前の行のコメントの一部分であってもです。
|
|
.Ed
|
|
.Pp
|
|
シェルスタイル (あるいは、お好みなら perl スタイル) のコメントは、
|
|
次の文字で始まります。
|
|
.Li #
|
|
(ハッシュとかポンドとか番号とかナンバ記号とかどう呼んでも良い) そして、
|
|
C++ スタイルのコメントと同様に、その行の最後までコメントが続きます。
|
|
例えば、次のようにです :
|
|
.Bd -literal -offset indent
|
|
# この行は、コメントの始まりです。次の行は、
|
|
# 新しいコメントになります。たとえ、意味としては
|
|
# 前の行のコメントの一部分であってもです。
|
|
.Ed
|
|
.Em 注 :
|
|
ゾーンファイルで書くように、
|
|
.Li ;
|
|
(セミコロン) をコメントの始まりに使用することはできません。
|
|
セミコロンは、設定ステートメントの末尾を表すものですので、
|
|
その後ろに続く文字は、何であれ次のステートメントの先頭だと
|
|
解釈されてしまいます。
|
|
.Ss BIND 4.9.x から変更する
|
|
BIND 4.9.x の設定ファイルは、
|
|
.Pa src/bin/named/named-bootconf
|
|
という名前の、BIND 8.2.x のソースキットに同梱されている
|
|
シェルスクリプトを使用することで新しいフォーマットに変換する
|
|
ことができます。
|
|
.Sh 記述方法の定義
|
|
次から述べていることは、BIND 設定ファイルを記述する間使用される要素
|
|
についてです。1 つのステートメントとしか結びつかない要素は、その
|
|
ステートメントについて述べているセクションにだけ記述があります。
|
|
.Bl -tag -width 0n
|
|
.It Va acl_name
|
|
.Ic acl
|
|
ステートメントで定義される
|
|
.Va address_match_list
|
|
の名称です。
|
|
.It Va address_match_list
|
|
.Va ip_addr ,
|
|
.Va ip_prefix ,
|
|
.Va key_id ,
|
|
.Va acl_name
|
|
要素が 1 つまたはそれ以上集まったリストです。これについては、
|
|
.Sx アドレスマッチリスト
|
|
の項で述べます。
|
|
.It Va dotted-decimal
|
|
ドット (``.'') だけで区切られた、
|
|
1 つまたはそれ以上の数の 0 から 255 までの整数です。
|
|
例えば、
|
|
.Li 123 ,
|
|
.Li 45.67 ,
|
|
.Li 89.123.45.67
|
|
などです。
|
|
.It Va domain_name
|
|
DNS 名として使用される文字列をクォーテーションで囲んだものです。
|
|
例えば、
|
|
.Qq Li my.test.domain
|
|
のようにです。
|
|
.It Va path_name
|
|
パス名として使用される文字列をクォーテーションで囲んだものです。
|
|
例えば、
|
|
.Qq Li zones/master/my.test.domain
|
|
のようにです。
|
|
.It Va ip_addr
|
|
.Va dotted-decimal
|
|
表記でちょうど 4 つの要素からなる IP アドレスです。
|
|
.It Va ip_port
|
|
IP ポートを表す
|
|
.Va number
|
|
です。
|
|
.Va number
|
|
は、
|
|
.Li 0
|
|
から
|
|
.Li 65535
|
|
までの値に限定されており、そのうち 1024 以下の値は、
|
|
典型的には、所有者が root のプロセスのみに制限されています。
|
|
場合によっては、適当に大きな番号を選択するように、穴埋めとしてアスタリスク文字
|
|
(``*'') を使うことができます。
|
|
.It Va ip_prefix
|
|
.Va dotted-decimal
|
|
表記で指定された IP ネットワークです。その後に、``/'' が続き、
|
|
そしてネットマスクのビット数が続きます。
|
|
例えば、
|
|
.Li 127/8
|
|
は、
|
|
ネットワーク
|
|
.Li 127.0.0.0
|
|
で、ネットマスクは
|
|
.Li 255.0.0.0
|
|
です。
|
|
.Li 1.2.3.0/28
|
|
はネットワーク
|
|
.Li 1.2.3.0
|
|
で、ネットマスクは
|
|
.Li 255.255.255.240
|
|
です。
|
|
.It Va key_name
|
|
共有鍵の名前を表した文字列です。
|
|
これはトランザクションセキュリティに使用します。
|
|
.It Va number
|
|
C 言語での符号つき整数
|
|
(32 ビット整数のマシンでは 2,147,483,647)
|
|
の範囲全体をとる、非負整数です。
|
|
取り得る値の範囲は、
|
|
使用されるコンテキストによってさらに制限されるかもしれません。
|
|
.It Va size_spec
|
|
.Va number
|
|
または単語
|
|
.Li unlimited
|
|
か単語
|
|
.Li default
|
|
です。
|
|
.Pp
|
|
.Va size_spec
|
|
の最大値は、マシンの符号なし long 型整数の最大値になります。
|
|
.Li unlimited
|
|
は、値を無制限に使用できるよう要求したり、
|
|
取り得る最大の値を要求したりするために使用します。
|
|
.Li default
|
|
は、サーバが始動したときに有効だった制限が使われます。
|
|
.Pp
|
|
.Va number
|
|
には、次のようなスケールファクタを続けることもできます :
|
|
.Li K
|
|
または
|
|
.Li k
|
|
はキロバイトを、
|
|
.Li M
|
|
または
|
|
.Li m
|
|
はメガバイトを、そして
|
|
.Li G
|
|
または
|
|
.Li g
|
|
はギガバイトを表します。
|
|
これらはそれぞれ、
|
|
1024, 1024*1024, 1024*1024*1024
|
|
倍であることを表します。
|
|
.Pp
|
|
スケールファクタの変換時に、整数値の格納場所でオーバフローが発生しても、
|
|
現状では黙って無視します。
|
|
その結果、期待した結果よりも小さな値、おそらくは負の値にさえなってしまいます。
|
|
本当に大きな値を安全に設定したいなら
|
|
.Li unlimited
|
|
を使うのが最良の方法です。
|
|
.It Va yes_or_no
|
|
.Li yes
|
|
または
|
|
.Li no
|
|
です。あるいは
|
|
.Li true
|
|
と
|
|
.Li false
|
|
という単語でも受け付けます。
|
|
.Li 1
|
|
と
|
|
.Li 0
|
|
という番号でも同様です。
|
|
.El
|
|
.Sh アドレスマッチリスト
|
|
.Ss 文法
|
|
.Bd -literal
|
|
\fIaddress_match_list\fR = 1\&*\fIaddress_match_element\fR
|
|
.Pp
|
|
\fIaddress_match_element\fR = [ \&"!\&" ] ( \fIaddress_match_list\fR /
|
|
\fIip_address\fR / \fIip_prefix\fR /
|
|
\fIacl_name\fR / \&"key \&" \fIkey_id\fR ) \&";\&"
|
|
.Ed
|
|
.Ss 定義と使用法
|
|
アドレスマッチリストは、
|
|
主にいくつかのサーバの操作でのアクセス制御を決定するために使われます。
|
|
また、アドレスマッチリストは、他のネームサーバに問い合わせる際の優先順位や、
|
|
.Nm named
|
|
が問い合わせを待つアドレスを決定するためにも使われます。
|
|
アドレスマッチリストを構成する要素は、次のうちのどれでもありえます :
|
|
.Bl -bullet
|
|
.It
|
|
.Va ip-address
|
|
(
|
|
.Va dotted-decimal
|
|
表記
|
|
.It
|
|
.Va ip-prefix
|
|
('/' での表記)
|
|
.It
|
|
.Ic key
|
|
ステートメントで定義された
|
|
.Va key_id
|
|
.It
|
|
先に
|
|
.Ic acl
|
|
ステートメントで定義されたアドレスマッチリスト名
|
|
.It
|
|
別の
|
|
.Va address_match_list
|
|
.El
|
|
.Pp
|
|
要素は、エクスクラメーションマーク (``!'') で始めると無効にできます。
|
|
また、アドレスマッチリスト名に
|
|
.Li any ,
|
|
.Li none ,
|
|
.Li localhost ,
|
|
.Li localnets
|
|
が前もって定義されています。リスト名に関してのさらなる情報は、
|
|
.Ic acl
|
|
ステートメントの説明のところにあります。
|
|
.Pp
|
|
.Ic key
|
|
節が追加されたことにより、この文法の構成要素名はある種の誤用
|
|
になってしまっています。なぜなら、ホストやネットワークアドレス
|
|
に関係なく、アクセスの認証には認証鍵を使用することができるからです。
|
|
それでもまだ、このドキュメントを通して「アドレスマッチリスト」という
|
|
用語が使われています。
|
|
.Pp
|
|
与えられた IP アドレスまたはプレフィックスがアドレスマッチリストと
|
|
比較されるときには、要素が合致するまでリストをスキャンしていきます。
|
|
合致したことをどう解釈するかは、アクセス制御、
|
|
.Ic listen-on
|
|
ポート定義、またはトポロジのいずれの用途にリストを使ったか、
|
|
またその要素が無効にされていたかで決定します。
|
|
.Pp
|
|
アクセス制御リストとしてアドレスマッチリストが使われる場合、合致した要素が
|
|
無効になっていないときはアクセスを許可し、無効になっているときはアクセスを
|
|
禁止します。アドレスマッチリスト中に合致するものが 1 つもない場合には、
|
|
アクセスは禁止されます。
|
|
.Ic allow-query ,
|
|
.Ic allow-transfer ,
|
|
.Ic allow-update ,
|
|
.Ic allow-recursion ,
|
|
.Ic blackhole
|
|
節はすべてこのようにアドレスマッチリストを使用します。同様に、
|
|
.Ic listen-on
|
|
オプションを使うと、リストに合致しないマシンのアドレスでの問い合わせは、
|
|
いずれもサーバが受け取らないようになります。
|
|
.Pp
|
|
.Ic topology
|
|
オプションと一緒にアドレスマッチリストが使用される場合、合致した要素が
|
|
無効になっていない場合、リスト中で合致した位置に基づいた距離が返されます
|
|
(合致した箇所がリストの先頭に近ければそれだけ、サーバとの間の距離は
|
|
短いことになります)。合致した要素が無効になっている場合、サーバから
|
|
もっとも遠い距離が割り当てられることになるでしょう。合致するものが
|
|
なかった場合は、そのアドレスには、無効になっていないリスト要素よりは
|
|
遠く、無効になっている要素よりは近い距離が返されるでしょう。
|
|
.Pp
|
|
ファーストマッチアルゴリズムを使用していますので、リスト中で
|
|
他の要素のサブセットを定義している要素のほうが、より広い範囲の定義を
|
|
している要素よりも、先に定義すべきです。これは、どちらか一方の要素が無効
|
|
になっていようがいまいが関係ありません。例えば、
|
|
.Dl 1.2.3/24; !1.2.3.13
|
|
では、1.2.3.13 という要素は無意味です。なぜなら、
|
|
このアルゴリズムでは、1.2.3.13 の検索を 1.2.3/24 という要素に合致
|
|
してしまうからです。
|
|
.Dl !1.2.3.13; 1.2.3/24
|
|
を使うと、1.2.3.13 は要素が無効になっていることにより拒否されますが、
|
|
その他の 1.2.3.* のホストは素通りになりますので、この問題を回避できます。
|
|
.Sh logging ステートメント
|
|
.Ss 文法
|
|
.Bd -literal
|
|
logging {
|
|
[ channel \fIchannel_name\fR {
|
|
( file \fIpath_name\fR
|
|
[ versions ( \fInumber\fR | unlimited ) ]
|
|
[ size \fIsize_spec\fR ]
|
|
| syslog ( kern | user | mail | daemon | auth | syslog | lpr |
|
|
news | uucp | cron | authpriv | ftp |
|
|
local0 | local1 | local2 | local3 |
|
|
local4 | local5 | local6 | local7 )
|
|
| null );
|
|
.Pp
|
|
[ severity ( critical | error | warning | notice |
|
|
info | debug [ \fIlevel\fR ] | dynamic ); ]
|
|
[ print-category \fIyes_or_no\fR; ]
|
|
[ print-severity \fIyes_or_no\fR; ]
|
|
[ print-time \fIyes_or_no\fR; ]
|
|
}; ]
|
|
.Pp
|
|
[ category \fIcategory_name\fR {
|
|
\fIchannel_name\fR; [ \fIchannel_name\fR; ... ]
|
|
}; ]
|
|
...
|
|
};
|
|
.Ed
|
|
.Pp
|
|
.Ss 定義と使用法
|
|
.Ic logging
|
|
ステートメントは、ネームサーバに対する様々な種類のログ用オプションを
|
|
設定します。
|
|
その中の
|
|
.Ic channel
|
|
フレーズでは、出力方法とフォーマットオプションと重大度を
|
|
名前と結びつけます。
|
|
この名前は後で
|
|
.Ic category
|
|
フレーズで使用し、様々なメッセージクラスをどのようにログに落すかを選択します。
|
|
.Pp
|
|
ただ 1 つの
|
|
.Ic logging
|
|
ステートメントを使用して、望むだけ多くのチャネルとカテゴリを
|
|
定義できます。設定中に、複数の logging ステートメントがあった場合、
|
|
最初以外の logging ステートメントに対しては警告が出されます。
|
|
logging ステートメントが 1 個も存在しなかった場合、ログ用の設定は
|
|
次のようになるでしょう :
|
|
.Bd -literal
|
|
logging {
|
|
category default { default_syslog; default_debug; };
|
|
category panic { default_syslog; default_stderr; };
|
|
category packet { default_debug; };
|
|
category eventlib { default_debug; };
|
|
};
|
|
.Ed
|
|
ログ用の設定は、
|
|
.Ic logging
|
|
ステートメントがパースされたらすぐに確立されます。もし、設定ファイル
|
|
全体の処理状況についてのメッセージをリダイレクトしたいのであれば、
|
|
.Ic logging
|
|
ステートメントが最初に出てくるようにしなければなりません。たとえ、
|
|
設定ファイルのパース状況を表すメッセージをリダイレクトしたくなくても、
|
|
.Ic logging
|
|
ステートメントはファイルの先頭に置くことを勧めます。そうすることによって、
|
|
パーサの出すメッセージを再度設定する必要が生じたときに、意識して
|
|
このルールを思い出す必要がなくなります。
|
|
.Ss チャネルフレーズ
|
|
ログの出力はすべて、1 つまたはそれ以上の「チャネル」へと渡ります。
|
|
チャネルは好きなだけ作ることができます。
|
|
.Pp
|
|
それぞれのチャネルの定義には、そのチャネル用に選択したメッセージが
|
|
ファイルに落されるのか、特別な syslog ファシリティに渡されるのか、
|
|
または、捨てられるのかを指定する節が含まれていなくてはなりません。
|
|
チャネルの定義では、チャネルが受け取るメッセージの重大度を制限する
|
|
こともオプションでできます (デフォルトは
|
|
.Li info
|
|
です)。また、
|
|
.Nm named
|
|
が生成するタイムスタンプと、
|
|
カテゴリ名と、重大度を含めるかどうかを制限することもできます。
|
|
デフォルトでは、この 3 つのいずれも含めないようになっています。
|
|
.Pp
|
|
チャネルに対するログの送り先のオプションに
|
|
.Li null
|
|
という単語を使用すると、そのチャネルに送られるメッセージはすべて
|
|
捨てられるようになります。チャネルに対するその他のオプションは意味が
|
|
ありません。
|
|
.Pp
|
|
.Ic file
|
|
節を使用すると、ログファイルがどれだけ大きくなっても良いかということと、
|
|
ログファイルがオープンされるごとに
|
|
何個のバージョンを残すのかということに関する制限を、取り込むことができます。
|
|
.Pp
|
|
ログファイルに対する
|
|
.Ic size
|
|
オプションは、単純にログが大きくなるのを制限する固い天井になるものです。
|
|
ログファイルが size を超えると、
|
|
ログファイルが再度オープンされるまで
|
|
.Nm named
|
|
はファイルに何も書き込みません。size を超えていても、自動的にはファイルは
|
|
オープンされません。デフォルトでは、ログファイルのサイズ制限はありません。
|
|
.Pp
|
|
ログファイルオプションに
|
|
.Ic versions
|
|
を使用すると、
|
|
.Nm named
|
|
は、ログファイルがオープンされるときにファイルのバックアップバージョンの
|
|
名前を変更して、指定した数だけ保持します。例えば、lamers.log というファイルの
|
|
古いバージョンを 3 つ保持するように選択した場合、lamers.log がオープンされる
|
|
直前に lamers.log.1 というファイルは lamers.log.2 という名前に変更され、
|
|
lamers.log.0 というファイルは lamers.log.1 という名前に変更され、そして
|
|
lamers.log というファイルが lamers.log.0 という名前に変更されます。
|
|
巡回バージョンはデフォルトでは保持されません。
|
|
すでに存在しているログファイルは、
|
|
ただ単に追加して書かれます。
|
|
.Li unlimited
|
|
キーワードは、現在の BIND のリリースでは
|
|
.Li 99
|
|
と同義です。size および versions オプションの使用例は次の通りです :
|
|
.Bd -literal
|
|
channel an_example_level {
|
|
file "lamers.log" versions 3 size 20m;
|
|
print-time yes;
|
|
print-category yes;
|
|
};
|
|
.Ed
|
|
.Pp
|
|
.Ic syslog
|
|
節の引数は、
|
|
.Xr syslog 3
|
|
マニュアルページに記述されている syslog ファシリティを表します。
|
|
.Nm syslogd
|
|
がこのファシリティに送られるメッセージをどのように扱うかについては、
|
|
.Xr syslog.conf 5
|
|
マニュアルページに記述があります。
|
|
.Fn openlog
|
|
関数に 2 つの引数しか使用しない、とても古いバージョンの syslog を
|
|
使用しているシステムをお使いの場合は、この節は黙って無視されます。
|
|
.Pp
|
|
.Ic severity
|
|
節は、syslog の「優先度」のように働きます。ただし、syslog を
|
|
使用するかわりにファイルを直接書いても使用できるところが違います。
|
|
与えられた重大度よりも低いレベルのメッセージは、
|
|
このチャネルに対しては選択されません。与えられた重大度
|
|
よりも高いレベルのメッセージが受け取られます。
|
|
.Pp
|
|
syslog を使っている場合、
|
|
.Pa syslog.conf
|
|
での優先度によっても最終的に何が通り抜けるかが決定されます。
|
|
例えば、チャネルのファシリティおよび重大度を
|
|
.Li daemon
|
|
および
|
|
.Li debug
|
|
に定義しているが、
|
|
.Pa syslog.conf
|
|
では
|
|
.Li daemon.warning
|
|
しかログに落とさないようにしている場合、
|
|
.Li info
|
|
および
|
|
.Li notice
|
|
の重大度を持ったメッセージは捨てられてしまいます。
|
|
状況が逆になり、
|
|
.Nm named
|
|
が
|
|
.Li warning
|
|
かそれ以上の重大度を持ったメッセージしか書きださないように
|
|
なっている場合、
|
|
.Nm syslogd
|
|
は、そのチャネルから受け取ったメッセージをすべて書き出すことでしょう。
|
|
.Pp
|
|
デバッグモードになっている場合、サーバはもっと多くのデバッグ情報を
|
|
提供できます。サーバのデバッグレベルが 0 より大きくなっていれば、
|
|
デバッグモードは有効になっています。全体でのデバッグレベルは、
|
|
.Fl d
|
|
フラグに正の整数値を続けて指定して
|
|
.Nm named
|
|
サーバを開始するか、または、動いているサーバに
|
|
.Dv SIGUSR1
|
|
シグナルを送る (例えば、
|
|
.Ic ndc trace
|
|
を使って) ことによって設定します。
|
|
全体でのデバッグレベルは 0 にも設定でき、このときは、デバッグモードは
|
|
無効になります。この状態には、サーバに
|
|
.Dv SIGUSR2
|
|
シグナルを送る (
|
|
.Ic ndc notrace
|
|
を使って) ことによってもできます。
|
|
サーバでのデバッグメッセージにはすべてデバッグレベルがあります。
|
|
そして、デバッグレベルが高いほどより詳細な出力になっています。
|
|
例えば、特定のデバッグ重大度を次のように指定したチャネル
|
|
では、サーバがデバッグモードであればいつでも、レベル 3 または
|
|
それ以下のレベルのデバッグ出力が得られます。
|
|
.Bd -literal
|
|
channel specific_debug_level {
|
|
file \&"foo\&";
|
|
severity debug 3;
|
|
};
|
|
.Ed
|
|
.Pp
|
|
それは、全体でのデバッグレベルには依りません。
|
|
.Li dynamic
|
|
重大度を指定したチャネルでは、どのメッセージを出力するかを
|
|
決めるためにサーバ全体のデバッグレベルを使用します。
|
|
.Pp
|
|
.Ic print-time
|
|
がオンになっていれば、日付および時刻がログに落とされます。
|
|
.Ic print-time
|
|
は、syslog チャネルに対しても指定できますが、通常は意味のないことです。
|
|
なぜなら、syslog も日付および時刻は出力するからです。
|
|
.Ic print-category
|
|
が要求されている場合、メッセージのカテゴリも同様にログに落とされます。
|
|
最後に、
|
|
.Ic print-severity
|
|
がオンになっていれば、メッセージの重大度がログに落とされます。
|
|
.Ic print-
|
|
オプションはどういう組合せでも使うことができ、
|
|
常に次のような順番で出力されます :
|
|
それは time, category, severity の順です。
|
|
次に示す例は、3 つすべての
|
|
.Ic print-
|
|
オプションをオンにした例です :
|
|
.Bd -literal
|
|
28-Apr-1997 15:05:32.863 default: notice: Ready to answer queries.
|
|
.Ed
|
|
.Pp
|
|
デフォルトのログ取得用に使用されるチャネルには、次のような、
|
|
事前に定義された 4 つがあります。どのようにこのチャネルを使うのかに
|
|
ついては次節
|
|
.Sx category フレーズ
|
|
に記述があります。
|
|
.Bd -literal
|
|
channel default_syslog {
|
|
syslog daemon; # syslog の daemon ファシリティに送る
|
|
severity info; # 優先度が info およびそれ以上のものだけ送る
|
|
};
|
|
.Pp
|
|
channel default_debug {
|
|
file \&"named.run\&"; # 作業ディレクトリ内の named.run ファイルに
|
|
# 書き込む
|
|
# 注 : サーバが -f オプションつきで開始されている
|
|
# 場合は、\&"named.run\&" の代わりに標準エラー
|
|
# 出力が使われます。
|
|
severity dynamic; # サーバの現在のデバッグレベルでログに落とす
|
|
};
|
|
.Pp
|
|
channel default_stderr { # 標準エラー出力に書き出す
|
|
file \&"<stderr>\&"; # ここでは、見えるように書いただけです。現在、
|
|
# 内部のファイル記述子を設定ファイルの
|
|
# 文中に記述する方法はありません。
|
|
severity info; # 優先度が info およびそれ以上のものだけ送る
|
|
};
|
|
.Pp
|
|
channel null {
|
|
null; # このチャネルに送られたメッセージはみなはじく
|
|
};
|
|
.Ed
|
|
.Pp
|
|
いったんチャネルが定義されると、再設定はできません。そのため、組み込みの
|
|
チャネルは直接変更できないわけです。しかし、定義したチャネルでのカテゴリを
|
|
指し示すことによって、デフォルトのログ用機能を変更することができます。
|
|
.Ss category フレーズ
|
|
カテゴリはたくさんあります。そのため、見たいと思うログをどこへでも送る
|
|
ことができ、見たくないログは見ないですますことができます。カテゴリに対して
|
|
チャネルのリストを指定しなかった場合は、代わりに
|
|
.Li default
|
|
カテゴリにログが送られます。
|
|
default カテゴリを指定しなかった場合、次のような「デフォルトの
|
|
default カテゴリ」が使われます :
|
|
.Bd -literal
|
|
category default { default_syslog; default_debug; };
|
|
.Ed
|
|
.Pp
|
|
例として、セキュリティのイベントをファイルにログとして落としたいが、
|
|
デフォルトのロギングの挙動は維持したいとしましょう。そうすると、次のように
|
|
指定することになるでしょう :
|
|
.Bd -literal
|
|
channel my_security_channel {
|
|
file \&"my_security_file\&";
|
|
severity info;
|
|
};
|
|
category security { my_security_channel;
|
|
default_syslog; default_debug; };
|
|
.Ed
|
|
.Pp
|
|
カテゴリ内のすべてのメッセージを捨てるには、
|
|
.Li null
|
|
チャネルを指定してください :
|
|
.Bd -literal
|
|
category lame-servers { null; };
|
|
category cname { null; };
|
|
.Ed
|
|
.Pp
|
|
次のようなカテゴリが使用可能です :
|
|
.Bl -tag -width 0n
|
|
.It Ic default
|
|
すべて捕まえます。多くのメッセージがまだカテゴリ分けされておらず、
|
|
すべてここで捕まります。さらに、カテゴリに対して何のチャネルも
|
|
指定しなかった場合、代わりに default カテゴリが使われます。default
|
|
カテゴリを指定しなかった場合、次のような定義が使われます :
|
|
.Dl category default { default_syslog; default_debug; };
|
|
.It Ic config
|
|
ハイレベルの設定ファイル処理です。
|
|
.It Ic parser
|
|
ローレベルの設定ファイル処理です。
|
|
.It Ic queries
|
|
サーバが受け取った問い合わせそれぞれに対して、短いログメッセージを生成します。
|
|
.It Ic lame-servers
|
|
``Lame server on ...'' というようなメッセージです。
|
|
.It Ic statistics
|
|
統計です。
|
|
.It Ic panic
|
|
サーバ内部の問題でサーバ自体がシャットダウンしなくてはならなくなると、
|
|
問題の起きた元のカテゴリとこのカテゴリの両方に、
|
|
問題をログとして書きこみます。
|
|
panic カテゴリを定義していない場合には、次のような定義が使われます :
|
|
.Dl category panic { default_syslog; default_stderr; };
|
|
.It Ic update
|
|
動的な更新です。
|
|
.It Ic update-security
|
|
アクセス制御により拒否された動的な更新です。
|
|
.It Ic ncache
|
|
ネガティブキャッシングです。
|
|
.It Ic xfer-in
|
|
サーバが受け取っているゾーン転送です。
|
|
.It Ic xfer-out
|
|
サーバが送っているゾーン転送です。
|
|
.It Ic db
|
|
すべてのデータベースの操作です。
|
|
.It Ic eventlib
|
|
イベントシステムからのデバッグ情報です。このカテゴリには、ただ 1 つの
|
|
チャネルが指定でき、そのチャネルはファイルチャネルでなくてはなりません。
|
|
eventlib カテゴリを指定しない場合は、次のような定義が使われます :
|
|
.Dl category eventlib { default_debug; };
|
|
.It Ic packet
|
|
受け取ったパケットおよび送ったパケットのダンプです。このカテゴリには、
|
|
ただ 1 つのチャネルが指定でき、そのチャネルはファイルチャネルでなくては
|
|
なりません。packet カテゴリを指定しない場合は、次のような定義が使われます :
|
|
.Dl category packet { default_debug; };
|
|
.It Ic notify
|
|
NOTIFY プロトコルです。
|
|
.It Ic cname
|
|
``... points to a CNAME'' のようなメッセージです。
|
|
.It Ic security
|
|
許可された / 許可されなかったリクエストです。
|
|
.It Ic os
|
|
オペレーティングシステムの問題です。
|
|
.It Ic insist
|
|
内部の整合性チェックの失敗です。
|
|
.It Ic maintenance
|
|
定期的に行われるメンテナンスのイベントです。
|
|
.It Ic load
|
|
ゾーンへのロードメッセージです。
|
|
.It Ic response-checks
|
|
応答のチェックから発生するメッセージです。例えば、
|
|
``Malformed response ...'', ``wrong ans. name ...'',
|
|
``unrelated additional info ...'', ``invalid RR type ...'',
|
|
``bad referral ...'' といったものです。
|
|
.El
|
|
.Sh options ステートメント
|
|
.Ss 文法
|
|
.Bd -literal
|
|
options {
|
|
[ hostname \fIhostname_string\fR; ]
|
|
[ version \fIversion_string\fR; ]
|
|
[ directory \fIpath_name\fR; ]
|
|
[ named-xfer \fIpath_name\fR; ]
|
|
[ dump-file \fIpath_name\fR; ]
|
|
[ memstatistics-file \fIpath_name\fR; ]
|
|
[ pid-file \fIpath_name\fR; ]
|
|
[ statistics-file \fIpath_name\fR; ]
|
|
[ auth-nxdomain \fIyes_or_no\fR; ]
|
|
[ deallocate-on-exit \fIyes_or_no\fR; ]
|
|
[ dialup \fIyes_or_no\fR; ]
|
|
[ fake-iquery \fIyes_or_no\fR; ]
|
|
[ fetch-glue \fIyes_or_no\fR; ]
|
|
[ has-old-clients \fIyes_or_no\fR; ]
|
|
[ host-statistics \fIyes_or_no\fR; ]
|
|
[ host-statistics-max \fInumber\fR; ]
|
|
[ multiple-cnames \fIyes_or_no\fR; ]
|
|
[ notify ( \fIyes_or_no\fR | explicit ); ]
|
|
[ suppress-initial-notify \fIyes_or_no\fR; ]
|
|
[ recursion \fIyes_or_no\fR; ]
|
|
[ rfc2308-type1 \fIyes_or_no\fR; ]
|
|
[ use-id-pool \fIyes_or_no\fR; ]
|
|
[ treat-cr-as-space \fIyes_or_no\fR; ]
|
|
[ also-notify \fIyes_or_no\fR; ]
|
|
[ forward ( only | first ); ]
|
|
[ forwarders { [ \fIin_addr\fR ; [ \fIin_addr\fR ; ... ] ] }; ]
|
|
[ check-names ( master | slave | response ) ( warn | fail | ignore ); ]
|
|
[ allow-query { \fIaddress_match_list\fR }; ]
|
|
[ allow-recursion { \fIaddress_match_list\fR }; ]
|
|
[ allow-transfer { \fIaddress_match_list\fR }; ]
|
|
[ blackhole { \fIaddress_match_list\fR }; ]
|
|
[ listen-on [ port \fIip_port\fR ] { \fIaddress_match_list\fR }; ]
|
|
[ query-source [ address ( \fIip_addr\fR | * ) ]
|
|
[ port ( \fIip_port\fR | * ) ] ; ]
|
|
[ lame-ttl \fInumber\fR; ]
|
|
[ max-transfer-time-in \fInumber\fR; ]
|
|
[ max-ncache-ttl \fInumber\fR; ]
|
|
[ min-roots \fInumber\fR; ]
|
|
[ serial-queries \fInumber\fR; ]
|
|
[ transfer-format ( one-answer | many-answers ); ]
|
|
[ transfers-in \fInumber\fR; ]
|
|
[ transfers-out \fInumber\fR; ]
|
|
[ transfers-per-ns \fInumber\fR; ]
|
|
[ transfer-source \fIip_addr\fR; ]
|
|
[ maintain-ixfr-base \fIyes_or_no\fR; ]
|
|
[ max-ixfr-log-size \fInumber\fR; ]
|
|
[ coresize \fIsize_spec\fR ; ]
|
|
[ datasize \fIsize_spec\fR ; ]
|
|
[ files \fIsize_spec\fR ; ]
|
|
[ stacksize \fIsize_spec\fR ; ]
|
|
[ cleaning-interval \fInumber\fR; ]
|
|
[ heartbeat-interval \fInumber\fR; ]
|
|
[ interface-interval \fInumber\fR; ]
|
|
[ statistics-interval \fInumber\fR; ]
|
|
[ topology { \fIaddress_match_list\fR }; ]
|
|
[ sortlist { \fIaddress_match_list\fR }; ]
|
|
[ rrset-order { \fIorder_spec\fR ; [ \fIorder_spec\fR ; ... ] }; ]
|
|
[ preferred-glue ( A | AAAA ); ]
|
|
[ edns-udp-size \fInumber\fR; ]
|
|
};
|
|
.Ed
|
|
.Ss 定義および使用法
|
|
options ステートメントは BIND で使われるグローバルオプションを
|
|
設定します。このステートメントは、設定ファイル中で 1 度だけ出現できます。
|
|
もし複数のステートメントが出現した場合は、最初に出現したステートメントが
|
|
実際に使用されるオプションを決定し、警告が行われます。options ステートメントが
|
|
存在しない場合は、各オプションがデフォルトに設定された options ブロックが
|
|
使われます。
|
|
.Ss サーバ情報
|
|
.Bl -tag -width 0n
|
|
.It Ic hostname
|
|
このデフォルトは、ネームサーバを提供しているマシンのホスト名を、
|
|
gethostname() の実行結果の形式で与えます。
|
|
第 1 の目的は、多数のエニーキャストサーバのどれが
|
|
実際に問い合わせに答えているのかを識別できるようにすることです。
|
|
chaos クラスの
|
|
.Pa hostname.bind
|
|
のテキスト問い合わせをエニーキャストサーバに送信し、
|
|
一意な名前を得ることによって、これを実現します。
|
|
in class chaos to the anycast server and geting back a unique name.
|
|
hostname を空文字列 ("") に設定すると、問い合わせの処理を無効化します。
|
|
.It Ic version
|
|
ndc コマンドの問い合わせや chaos クラスの
|
|
.Pa version.bind
|
|
名の問い合わせを通してサーバがレポートするべきバージョンです。
|
|
デフォルトではサーバの本当のバージョン番号になっていますが、
|
|
サーバのオペレータの中にはこの文字列の方が好みという人もいます
|
|
(
|
|
.Ic もちろん冗談に決まっていますが
|
|
)。
|
|
.El
|
|
.Ss パス名
|
|
.Bl -tag -width 0n
|
|
.It Ic directory
|
|
サーバの作業ディレクトリです。設定ファイル中の絶対パスでない
|
|
パス名は、どんなものでもこのディレクトリからの相対パスと受け取られます。
|
|
大部分のサーバの出力ファイル (例えば、
|
|
.Pa named.run)
|
|
のデフォルトの置き場所は、このディレクトリです。もし、ディレクトリの指定が
|
|
なければ、作業ディレクトリはデフォルトで
|
|
.Pa \&.
|
|
になります。このディレクトリは、サーバが起動したディレクトリです。
|
|
指定されたディレクトリは絶対パスでなくてはいけません。
|
|
.It Ic named-xfer
|
|
内部へのゾーン転送用にサーバが使用する named-xfer プログラムへのパス名です。
|
|
指定されていない場合のデフォルトは、システム依存です
|
|
(例えば、
|
|
.Pa /usr/sbin/named-xfer
|
|
です)。
|
|
.It Ic dump-file
|
|
.Dv SIGINT
|
|
シグナルをサーバが受け取ったとき (
|
|
.Ic ndc dumpdb
|
|
が送った場合のように) に、
|
|
データベースのダンプを落とすファイルへのパス名です。
|
|
指定されていない場合のデフォルトは、
|
|
.Pa named_dump.db
|
|
です。
|
|
.It Ic memstatistics-file
|
|
.Ic deallocate-on-exit
|
|
が
|
|
.Li yes
|
|
になっている場合に、
|
|
サーバが終了時にメモリ使用統計を書き出すファイルへのパス名です。
|
|
指定されていない場合のデフォルトは、
|
|
.Pa named.memstats
|
|
です。
|
|
.It Ic pid-file
|
|
サーバが自分のプロセス ID を書き出すファイルへのパス名です。
|
|
指定されていない場合のデフォルトは、オペレーティングシステムに
|
|
依存しますが、通常は、
|
|
.Pa /var/run/named.pid
|
|
あるいは
|
|
.Pa /etc/named.pid
|
|
です。
|
|
pid-file は、
|
|
.Nm ndc
|
|
のような、動作しているネームサーバにシグナルを送りたい
|
|
プログラムが使用します。
|
|
.It Ic statistics-file
|
|
サーバが
|
|
.Dv SIGILL
|
|
シグナルを
|
|
(
|
|
.Ic ndc stats
|
|
から)
|
|
受け取った場合に、統計を追加書き込みするファイルへのパス名です。
|
|
指定されていない場合のデフォルトは、
|
|
.Pa named.stats
|
|
です。
|
|
.El
|
|
.Ss ブール値のオプション
|
|
.Bl -tag -width 0n
|
|
.It Ic auth-nxdomain
|
|
これが
|
|
.Li yes
|
|
の場合、
|
|
.Li AA
|
|
ビットは、常に
|
|
.Dv NXDOMAIN
|
|
の応答にセットされます。たとえサーバが実際には信頼できるものでは
|
|
なくてもです。
|
|
デフォルトでは、
|
|
.Li no
|
|
になっています。
|
|
.Lc auth-nxdomain
|
|
を設定すると、
|
|
.Dv NXDOMAIN
|
|
応答を受け取るためには
|
|
.Li AA
|
|
が設定されていることが必要な古いクライアントが動作可能となります。
|
|
.It Ic deallocate-on-exit
|
|
これが
|
|
.Li yes
|
|
の場合には、サーバは、終了時に自分が確保したオブジェクトを
|
|
徹底して解放して、
|
|
.Ic memstatistics-file
|
|
にメモリ使用レポートを書き出します。
|
|
デフォルトでは、
|
|
.Li no
|
|
になっています。なぜなら、オペレーティングシステムにクリーンアップを
|
|
やらせたほうが高速だからです。
|
|
.Ic deallocate-on-exit
|
|
は、メモリリークを検出するために便利です。
|
|
.It Ic dialup
|
|
これが
|
|
.Li yes
|
|
の場合には、サーバは、すべてのゾーンを、
|
|
要求時ダイヤルによるダイヤルアップリンクを通して
|
|
ゾーン転送を行っているかのように扱います。
|
|
このダイヤルアップリンクは、このサーバから通信が始まった場合に
|
|
立ち上げられるものです。
|
|
これは、ゾーンの種類によって異なる効果をもたらし、ゾーンの保守に
|
|
専念できるようになります。これによって、
|
|
.Ic heartbeat-interval
|
|
ごとに 1 度、願わくは、1 回の呼び出しの間という短い間隔で
|
|
ゾーンの保守を行えるようになります。
|
|
このオプションはまた、通常のゾーン保守にかかるトラフィックを
|
|
いくらか抑えることもできます。
|
|
デフォルトは、
|
|
.Li no
|
|
です。
|
|
.Ic dialup
|
|
オプションは、
|
|
.Ic zone
|
|
ステートメント中でも指定することができます。この場合は、
|
|
.Ic options dialup
|
|
ステートメントは上書きされます。
|
|
.Pp
|
|
ゾーンが
|
|
.Ic master
|
|
である場合、
|
|
サーバは、すべてのスレーブに対して
|
|
.Dv NOTIFY
|
|
リクエストを送信するようになります。
|
|
これによって、スレーブをチェックし、呼び出しが生きている間に
|
|
スレーブがゾーンを検証できるようにすることで、
|
|
ゾーンを最新のものにする契機ができます (サーバが
|
|
.Dv NOTIFY
|
|
をサポートする場合です)。
|
|
.Pp
|
|
ゾーンが
|
|
.Ic slave
|
|
もしくは
|
|
.Ic stub
|
|
である場合、
|
|
サーバは、通常のゾーンのアップデート問い合わせを抑制し、
|
|
.Ic heartbeat-interval
|
|
が時間切れになったときだけ問い合わせるようにします。
|
|
.It Ic fake-iquery
|
|
これが
|
|
.Li yes
|
|
の場合、
|
|
サーバは、
|
|
.Dv IQUERY
|
|
という、もう古くなって使われていない DNS 問い合わせをシミュレーション
|
|
します。
|
|
デフォルトは
|
|
.Li no
|
|
です。
|
|
.It Ic fetch-glue
|
|
これが
|
|
.Li yes
|
|
の場合 (デフォルトではそうです)、サーバは、追加の応答用データセクションを
|
|
作る際には持っていない「糊」となるリソースレコードを取得します。
|
|
サーバのキャッシュが大きくなったり、破壊されたりしないようにするため
|
|
(こうなると、クライアントからもっと多くの仕事を要求されるという
|
|
代償を払うことになります)、
|
|
.Ic fetch-glue no
|
|
は、
|
|
.Ic recursion no
|
|
と一緒に使用できます。
|
|
.It Ic has-old-clients
|
|
このオプションを
|
|
.Li yes
|
|
に設定することと、次の 3 つのオプションを設定することとは等価です :
|
|
.Ic auth-nxdomain yes ; ,
|
|
.Ic maintain-ixfr-base yes ; ,
|
|
.Ic rfc2308-type1 no ;
|
|
.Ic has-old-clients
|
|
を
|
|
.Ic auth-nxdomain ,
|
|
.Ic maintain-ixfr-base ,
|
|
.Ic rfc2308-type1
|
|
と一緒に使用することで起こることは、指定の順番によります。
|
|
.It Ic host-statistics
|
|
これが
|
|
.Li yes
|
|
である場合、
|
|
ネームサーバと相互に作用する各ホストに対して統計が保持されます。
|
|
デフォルトでは
|
|
.Li no
|
|
です。
|
|
.Em 注 :
|
|
.Ic host-statistics
|
|
をオンにすると、膨大な量のメモリを消費する可能性があります。
|
|
.It Ic maintain-ixfr-base
|
|
これが
|
|
.Li yes
|
|
の場合、すべての動的に更新されるゾーンに対して、
|
|
単一の IXFR データベースファイルが保持されます。
|
|
これを有効にすると、
|
|
ゾーン転送を非常に高速化可能な IXFR 問い合わせに、サーバは答えます。
|
|
デフォルトは
|
|
.Li no
|
|
です。
|
|
.It Ic multiple-cnames
|
|
これが
|
|
.Li yes
|
|
である場合、
|
|
1 つのドメイン名について複数の CNAME リソースレコードか許可されます。
|
|
デフォルトは
|
|
.Li no
|
|
です。複数の CNAME レコードを許可するということは、標準からは
|
|
外れており、推奨されることではありません。
|
|
以前のバージョンの BIND が複数の CNAME レコードを持つことを許しており、
|
|
このレコードがいくつかのサイトでは負荷のバランスを取るために
|
|
使用されていたことから、複数の CNAME のサポートを利用できるということです。
|
|
.It Ic notify
|
|
これが
|
|
.Li yes
|
|
である場合 (それがデフォルトです)、
|
|
変更を行うためにゾーンサーバが信頼できる場合に DNS NOTIFY メッセージを
|
|
送るようになります。
|
|
NOTIFY を使用すると、マスタサーバとそのスレーブとの間の収束が
|
|
早まります。NOTIFY メッセージを受け取り、理解するスレーブサーバは
|
|
そのゾーン用にマスタサーバに接続し、ゾーン転送を行う必要があるかを
|
|
点検します。そして、必要がある場合は直ちにゾーン転送を開始します。
|
|
.Li explicit
|
|
の場合、DNS NOTIFY メッセージは
|
|
.Ic also-notify
|
|
リスト中のアドレスに対してのみ送信されます。
|
|
.Ic notify
|
|
オプションは
|
|
.Ic zone
|
|
ステートメント内でも指定できます。この場合は、
|
|
.Ic options notify
|
|
ステートメントは上書きされます。
|
|
.It Ic suppress-initial-notify
|
|
これが
|
|
.Li yes
|
|
の場合、サーバが最初にロードするときの最初の通知メッセージを抑制します。
|
|
デフォルトでは、
|
|
.Li no
|
|
です。
|
|
.It Ic recursion
|
|
これが
|
|
.Li yes
|
|
であり、
|
|
DNS の問い合わせが再帰処理を要求している場合、
|
|
サーバはその問い合わせに答えるために必要な仕事をすべて行おうとします。
|
|
recursion がオンになっていない場合、サーバが答えを
|
|
知らない場合は、サーバはクライアントに照会を返します。デフォルトでは、
|
|
.Li yes
|
|
です。前述の
|
|
.Ic fetch-glue
|
|
も参照してください。
|
|
.It Ic rfc2308-type1
|
|
これが
|
|
.Li yes
|
|
であれば、サーバは、否定応答用に SOA レコードと一緒に NS レコードを
|
|
送ります。もし、古い BIND サーバを持っていて、
|
|
SOA と NS の両方を含んだ否定応答を理解しないフォワード用サーバとして使用して
|
|
いる場合や、古いバージョンの sendmail を持っている場合は、この
|
|
オプションを no に設定する必要があります。正しい解決策は、
|
|
そういう壊れたサーバや sendmail を使用しないことです。デフォルトでは、
|
|
このオプションは
|
|
.Li no
|
|
です。
|
|
.It Ic use-id-pool
|
|
これが
|
|
.Li yes
|
|
であれば、サーバは自分自身の未解決の問い合わせ ID を追跡して、
|
|
重複を避け、ランダム性を高めるようにします。これによって、
|
|
サーバが 128 KB も多くメモリを消費するようになります。
|
|
デフォルトは
|
|
.Li no
|
|
です。
|
|
.It Ic treat-cr-as-space
|
|
これが
|
|
.Li yes
|
|
の場合、
|
|
サーバは、スペースやタブを扱うのと同じ方法で CR 文字を扱うように
|
|
なります。NT あるいは DOS マシンで生成したゾーンファイルを
|
|
UNIX システム上にロードするときに、このオプションは必要でしょう。
|
|
デフォルトでは、このオプションは
|
|
.Li no
|
|
です。
|
|
.El
|
|
.Ss Also-Notify
|
|
.Ic also-notify
|
|
.Pp
|
|
ゾーンの新しいコピーがロードされるときはいつでも送信された
|
|
NOTIFY メッセージも受け取る IP アドレスのグローバルリストを定義します。
|
|
このオプションは、ゾーンのコピーが素早く「内密の」サーバ上で確実に収束
|
|
する助けになります。
|
|
.Ic also-notify
|
|
リストが
|
|
.Ic zone
|
|
ステートメントで与えられた場合、
|
|
.Ic options also-notify
|
|
ステートメントは上書きされます。
|
|
.Ic zone notify
|
|
ステートメントが
|
|
.Ic no
|
|
に設定されている場合、
|
|
グローバルの
|
|
.Ic also-notify
|
|
リストの IP アドレスは、このゾーンに対する NOTIFY メッセージを
|
|
送信されません。デフォルトでは、このリストは空です
|
|
(グローバルな notification リストはないということです)。
|
|
.Ss フォワード
|
|
フォワード機能は、少数のサーバ上で大きなサイト単位のキャッシュを作成する
|
|
ために使用することができます。これによって、外部のネームサーバへの
|
|
リンクを越えたトラフィックを軽減できます。フォワード機能は、直接
|
|
インターネットに接続できないが、ともかく外部のホスト名を見つけ出したい
|
|
というサーバの問い合わせを許可するためにも使用できます。
|
|
フォワードが発生するのは、そうした問い合わせに対してサーバが
|
|
権限を持たず、キャッシュにその応答が入っていない場合だけです。
|
|
.Bl -tag -width 0n
|
|
.It Ic forward
|
|
このオプションは、
|
|
.Ic forwarders
|
|
リストが空でない場合にだけ意味があります。
|
|
.Li first
|
|
という値がデフォルトですが、このときサーバは、まずフォワードを行うサーバに
|
|
問い合わせを行い、フォワードを行うサーバが要求に対して応答しない場合、
|
|
自分で応答を探します。
|
|
.Li only
|
|
が指定された場合、サーバは、ただフォワードを行うサーバに問い合わせを
|
|
行うだけです。
|
|
.It Ic forwarders
|
|
フォワードを行うために使用される IP アドレスを指定します。デフォルトでは、
|
|
これは空のリストです (フォワードを行いません)。
|
|
.El
|
|
.Pp
|
|
フォワード機能は、ゾーン単位をもとにして設定することもできます。
|
|
このときは、グローバルのフォワード用オプションが、さまざまな方法で
|
|
上書きできるようになります。
|
|
特定のゾーンに対し、
|
|
別のフォワード用サーバを使用したり、別の
|
|
.Ic forward only/first
|
|
の振るまいをもたせたり、あるいはまったくフォワードしなかったり
|
|
できます。
|
|
さらなる情報については、
|
|
.Sx ゾーンステートメント
|
|
のセクションを参照してください。
|
|
.Pp
|
|
BIND 8 の将来のバージョンでは、もっと強力なフォワード用システムを
|
|
提供する予定です。先に述べた文法は引き続きサポートされる予定です。
|
|
.Ss ネームチェック
|
|
サーバは、期待するクライアントの関係に基づいてドメイン名をチェックできます。
|
|
例えば、ホスト名として使用されるドメイン名は、正当なホスト名を
|
|
定義している RFC に準拠するかという点でチェックされます。
|
|
.Pp
|
|
チェック方法には 3 通りのやり方が利用可能です :
|
|
.Bl -tag -width 0n
|
|
.It Ic ignore
|
|
何のチェックも行われません。
|
|
.It Ic warn
|
|
期待するクライアントの関係から名前をチェックします。不正な名前は
|
|
ログに書かれますが、処理は普通に継続します。
|
|
.It Ic fail
|
|
期待するクライアントの関係から名前をチェックします。不正な名前は
|
|
ログに書かれ、ルールに合わないデータは拒否されます。
|
|
.El
|
|
.Pp
|
|
サーバは、名前を 3 つのエリアでチェックできます : マスタゾーンファイル、
|
|
スレーブゾーンファイル、そして、サーバが発行した問い合わせへの応答
|
|
です。
|
|
.Ic check-names response fail
|
|
が指定されており、クライアントの問い合わせに対する応答が
|
|
クライアントに不正な名前を送る必要のあるものであった場合、
|
|
サーバは、
|
|
.Dv REFUSED
|
|
応答コードをクライアントに送ります。
|
|
.Pp
|
|
デフォルトは、次の通りです :
|
|
.Bd -literal
|
|
check-names master fail;
|
|
check-names slave warn;
|
|
check-names response ignore;
|
|
.Ed
|
|
.Pp
|
|
.Ic check-names
|
|
は、
|
|
.Ic zone
|
|
ステートメントでも指定できます。この場合、
|
|
.Ic options check-names
|
|
は上書きされます。
|
|
.Ic zone
|
|
ステートメントで使用した場合、
|
|
エリアは指定されません (なぜなら、ゾーンの種類からエリアは推測できる
|
|
からです)。
|
|
.Ss アクセス制御
|
|
サーバへのアクセスは、アクセスを要求したシステムの IP アドレス
|
|
または共有秘密鍵に基づいて制限することができます。
|
|
アクセス基準をどのように指定するかについての詳細は、
|
|
.Sx アドレスマッチリスト
|
|
を参照してください。
|
|
.Bl -tag -width 0n
|
|
.It Ic allow-query
|
|
どのホストが通常の問い合せをすることができるかを指定します。
|
|
.Ic allow-query
|
|
は、
|
|
.Ic zone
|
|
ステートメントでも指定できます。この場合、
|
|
.Ic options allow-query
|
|
ステートメントを上書きします。もし、allow-query オプションが
|
|
指定されていない場合は、デフォルトは、
|
|
すべてのホストからの問い合わせを許可します。
|
|
.Bl -tag -width 0n
|
|
.It Ic allow-recursion
|
|
どのホストが再帰的な問い合わせが可能かを指定します。
|
|
指定されていない場合は、
|
|
デフォルトでは全てのホストから再帰的な問い合わせができます。
|
|
.It Ic allow-transfer
|
|
どのホストがゾーン転送をサーバから受け取ることを許可されるかを
|
|
指定します。
|
|
.Ic allow-transfer
|
|
は、
|
|
.Ic zone
|
|
ステートメントでも指定できます。その場合、
|
|
.Ic options allow-transfer
|
|
ステートメントは上書きされます。もし、allow-transfer オプションが
|
|
指定されていない場合は、デフォルトでは、
|
|
すべてのホストからの転送を許可します。
|
|
.It Ic blackhole
|
|
サーバが問い合わせを受け取らないようになったり、問い合わせを解決するために
|
|
使用しないようになるアドレスのリストを指定します。これらのアドレスからの
|
|
問い合わせは、応答されることはありません。
|
|
.El
|
|
.El
|
|
.Ss インタフェース
|
|
サーバが問い合わせに答えるインタフェースならびにポートは、
|
|
.Ic listen-on
|
|
オプションを使って指定することができます。
|
|
.Ic listen-on
|
|
は、オプションのポートおよびアドレスマッチリストを取ります。
|
|
サーバは、アドレスマッチリストで許可されたインタフェース全てで待機します。
|
|
ポートを指定しない場合は、53 番ポートが使われます。
|
|
.Pp
|
|
.Ic listen-on
|
|
ステートメントが複数あっても良いです。例えば、
|
|
.Bd -literal
|
|
listen-on { 5.6.7.8; };
|
|
listen-on port 1234 { !1.2.3.4; 1.2/16; };
|
|
.Ed
|
|
.Pp
|
|
では、IP アドレスが 5.6.7.8 のマシン用にネームサーバに 53 番ポートの使用を
|
|
許可し、1234 番ポートを 1.2 のネットワークにいて、IPアドレスが 1.2.3.4 ではない
|
|
マシンに使用を許可します。
|
|
.Pp
|
|
.Ic listen-on
|
|
が指定されていない場合は、サーバは、すべてのインタフェース上で 53 番ポートでの
|
|
待機をします。
|
|
.Ss 問い合わせアドレス
|
|
サーバが問い合わせに対する答を知らない場合、そのサーバは、他の
|
|
ネームサーバに問い合わせを行います。
|
|
.Ic query-source
|
|
は、こうした問い合わせに使用されるアドレスおよびポートを指定します。
|
|
.Ic address
|
|
が
|
|
.Li *
|
|
だったり、省略されている場合、ワイルドカード IP アドレス
|
|
(
|
|
.Dv INADDR_ANY
|
|
)
|
|
が使用されます。
|
|
.Va port
|
|
が
|
|
.Li *
|
|
だったり、省略されている場合、特権のいらないポートがランダムに
|
|
使用されます。デフォルトでは
|
|
.Dl query-source address * port *;
|
|
です。
|
|
.Pp
|
|
注 :
|
|
.Ic query-source
|
|
は、現在 UDP 問い合わせのみ適用されます。
|
|
TCP 問い合わせには、常にワイルドカード IP アドレスとランダムに選ばれた
|
|
特権のいらないポートが使用されます。
|
|
.Ss ゾーン転送
|
|
.Bl -tag -width 0n
|
|
.It Ic max-transfer-time-in
|
|
ここで指定された時間より長く動作している内部へのゾーン転送 (
|
|
.Nm named-xfer
|
|
プロセス)
|
|
を終了します。
|
|
デフォルトでは、120 分 (2 時間) です。
|
|
.It Ic transfer-format
|
|
サーバは 2 種類のゾーン転送方法をサポートしています。
|
|
.Li one-answer
|
|
転送されるリソースレコードそれぞれについて 1 つの DNS メッセージを使用します。
|
|
.Li many-answers
|
|
できるだけ多くのリソースレコードを 1 つのメッセージに押し込みます。
|
|
.Li many-answers
|
|
の方が効率的ではありますが、BIND 8.1 および、パッチの当たった BIND 4.9.5 でのみ
|
|
理解されるものです。デフォルトでは、
|
|
.Li one-answer
|
|
になります。
|
|
.Ic transfer-format
|
|
は、
|
|
.Ic server
|
|
ステートメントを使用してサーバ単位で上書きすることができます。
|
|
.It Ic transfers-in
|
|
同時に動作させることのできる内部へのゾーン転送の最大値です。
|
|
デフォルトは 10 です。
|
|
.Ic transfers-in
|
|
の数を増やすと、スレーブのゾーンの収束が早まりますが、ローカルシステムの負荷も
|
|
上がってしまう恐れがあります。
|
|
.It Ic transfers-out
|
|
このオプションは、将来、
|
|
同時に動作する外部へのゾーン転送数を制限するために使用する
|
|
予定です。現在、文法はチェックしていますが、それ以上のことは無視しています。
|
|
.It Ic transfers-per-ns
|
|
あるリモートのネームサーバから同時に実行できる内部へのゾーン転送 (
|
|
.Nm named-xfer
|
|
プロセス) の最大値です。デフォルトは 2 です。
|
|
.Ic transfers-per-ns
|
|
の数を増やすと、スレーブゾーンの収束は早まりますが、リモートのネームサーバの
|
|
負荷が上がってしまう恐れがあります。
|
|
.Ic transfers-per-ns
|
|
は、
|
|
.Ic server
|
|
ステートメントの
|
|
.Ic transfers
|
|
フレーズを使用してサーバ単位で上書きすることができます。
|
|
.It Ic transfer-source
|
|
.Nm transfer-source
|
|
は、サーバが内部に転送するゾーンをすべて取得するために使用される
|
|
TCP コネクションと
|
|
どのローカルアドレスとが結びつけられるかを決定します。
|
|
これが設定されていない場合、
|
|
システムが制御しているデフォルト値に設定されます。
|
|
この値は、通常、
|
|
リモート側の終端に「最も近い」インタフェースのアドレスになります。
|
|
このアドレスは、もし指定されているのなら、リモート側の終端の転送ゾーン用の
|
|
.Nm allow-transfer
|
|
オプションで登場していなくてはなりません。
|
|
このステートメントは、すべてのゾーンの
|
|
.Nm transfer-source
|
|
を設定しますが、設定ファイル中のゾーンブロック内に
|
|
.Nm transfer-source
|
|
ステートメントを含めることでゾーン単位で上書きすることができます。
|
|
.El
|
|
.Ss リソースの制限
|
|
多種のシステムリソースをサーバがどこまで使用してよいか制限可能です。
|
|
オペレーティングシステムによっては、
|
|
この制限をいくつかサポートしていないものもあります。
|
|
そうしたシステムでは、サポートされていない制限を使用すると警告が発生します。
|
|
また、オペレーティングシステムによっては、
|
|
リソース制限自体をサポートしていないものも
|
|
あります。そうしたシステムでは、
|
|
.D1 cannot set resource limits on this system
|
|
というメッセージがログに記録されます。
|
|
.Pp
|
|
リソース制限を指定する際には、スケールを変えた値を使用することができます。
|
|
例えば、1 ギガバイトの制限を指定したい場合に、
|
|
.Li 1G
|
|
を
|
|
.Li 1073741824
|
|
の代わりに使用することができます。
|
|
.Li unlimited
|
|
は、無制限にリソースを使用する、
|
|
つまり、利用可能な最大の量のリソースを要求します。
|
|
.Li default
|
|
は、サーバが開始したときに有効だった制限値を使用します。
|
|
詳細については、
|
|
.Sx 記述方法の定義
|
|
のセクションの
|
|
.Va size_spec
|
|
の項を参照してください。
|
|
.Bl -tag -width 0n
|
|
.It Ic coresize
|
|
コアダンプの最大サイズです。デフォルト値は
|
|
.Li default
|
|
です。
|
|
.It Ic datasize
|
|
サーバが使用できるデータメモリの最大領域です。デフォルト値は
|
|
.Li default
|
|
です。
|
|
.It Ic files
|
|
サーバが同時にオープンできるファイルの最大数です。デフォルト値は
|
|
.Li unlimited
|
|
です。オペレーティングシステムによっては、unlimited という値を設定できず、
|
|
カーネルがサポートできるオープンするファイルの最大値を
|
|
決定できないものがあることに
|
|
注意してください。こうしたシステムでは、
|
|
.Li unlimited
|
|
を選択すると、サーバが
|
|
.Fn getrlimit RLIMIT_NOFILE
|
|
から得られる
|
|
.Va rlim_max
|
|
の値よりも大きなファイル数を扱ってしまい、
|
|
.Fn sysconf _SC_OPEN_MAX
|
|
を返してしまうことになります。
|
|
実際のカーネルの制限値がこの値よりも大きい場合は、
|
|
.Ic limit files
|
|
を使用して、明示的に制限値を指定してください。
|
|
.It Ic max-ixfr-log-size
|
|
.Li max-ixfr-log-size
|
|
は、将来のサーバのリリースでは、インクリメンタルゾーン転送用に保持しておく
|
|
トランザクションログの大きさに制限を設けるために使用する予定です。
|
|
.It Ic stacksize
|
|
サーバが使用できるスタックメモリの最大量です。デフォルト値は
|
|
.Li default
|
|
です。
|
|
.El
|
|
.Ss 定期的なタスクの間隔
|
|
.Bl -tag -width 0n
|
|
.It Ic cleaning-interval
|
|
サーバは、
|
|
.Ic cleaning-interval
|
|
分ごとに期限の切れたリソースレコードをキャッシュから削除します。
|
|
デフォルトは 60 分です。これが 0 に設定されているときは、
|
|
定期的にキャッシュがクリーニングされることはありません。
|
|
.It Ic heartbeat-interval
|
|
サーバは、この間隔が過ぎればいつでも
|
|
.Ic dialup yes
|
|
の印のついたゾーンすべてに対してゾーン管理タスクを実行します。
|
|
デフォルトでは 60 分です。適切な値は 1 日 (1440 分) までです。
|
|
この値が 0 に設定されている場合、
|
|
これらのゾーンに対するゾーン管理は実行されません。
|
|
.It Ic interface-interval
|
|
サーバは、
|
|
.Ic interface-interval
|
|
分ごとにネットワークインタフェースリストをスキャンします。
|
|
デフォルトでは 60 分です。
|
|
この値が 0 に設定されている場合、
|
|
インタフェースのスキャンを行うのは、設定ファイルが
|
|
ロードされたときだけです。スキャンした後、待機タスク (listener) は、どの
|
|
新しいインタフェース上でも始動します (そのタスクが
|
|
.Ic listen-on
|
|
の設定がされていて許可されている場合です)。
|
|
取り除かれたインタフェース上で動作している待機タスクは、消去されます。
|
|
.It Ic statistics-interval
|
|
ネームサーバの統計が
|
|
.Ic statistics-interval
|
|
分ごとにログに記録されます。デフォルトは 60 です。
|
|
この値が 0 に設定されている場合、
|
|
何の統計も記録されません。
|
|
.El
|
|
.Ss トポロジ
|
|
.Pp
|
|
ネームサーバのリストから問い合わせ先のネームサーバをサーバが 1 つ選ぶとき、
|
|
他の点ではすべて対等である場合、このサーバは、
|
|
自分自身からトポロジ的に最も近いものを選びます。
|
|
.Ic topology
|
|
ステートメントは、アドレスマッチリストをとり、
|
|
特別な方法でそのリストを解釈します。
|
|
それぞれの一番上のリスト要素は距離が割り当てられています。
|
|
無効にされていない要素は、リスト中の位置に基づいて距離を取得します。ここで、
|
|
リストの先頭にマッチした地点が近ければ近いほど、サーバと要素との距離が
|
|
近いことになります。
|
|
無効にされているマッチには、サーバからの距離の最大が割り当てられます。
|
|
マッチするものがない場合は、そのアドレスは、無効にされていないリストの要素の
|
|
どれよりも遠い距離を取得します。例えば、
|
|
.Bd -literal
|
|
topology {
|
|
10/8;
|
|
!1.2.3/24;
|
|
{ 1.2/16; 3/8; };
|
|
};
|
|
.Ed
|
|
.Pp
|
|
の場合では、ネットワーク 10 上のサーバが最も好ましいものになります。
|
|
次が、ネットワーク
|
|
1.2.0.0 (ネットマスクが 255.255.255.0) 上のホスト
|
|
およびネットワーク 3 上のホストですが、
|
|
ネットワーク 1.2.3 (ネットマスクが 255.255.255.0) 上のホストは除外されます。
|
|
このネットワーク上のものは、どれよりも選ばれにくいものです。
|
|
.Pp
|
|
デフォルトのトポロジは
|
|
.Dl topology { localhost; localnets; };
|
|
です。
|
|
.Ss リソースレコードのソート
|
|
複数の RR (訳注: リソースレコード) が返ってくると、通常ネームサーバは、
|
|
.Ic ラウンドロビン
|
|
でそれらを返します。
|
|
すなわち、各要求の後に、最初の RR がリストの最後に置かれます。
|
|
RR の順番が決まっていないので、これで問題ありません。
|
|
.Pp
|
|
クライアントのリゾルバのコードが、これらの RR を適切に
|
|
構成しなおさなくてはなりません。すなわち、他のアドレスよりも、
|
|
ローカルネット上の任意のアドレスを優先して使用するということです。
|
|
しかしながら、すべてのリゾルバがこうすることができたり、
|
|
適切に設定されているわけではありません。
|
|
.Pp
|
|
クライアントがローカルサーバを使用しているとき、サーバ内で、クライアントの
|
|
アドレスに基づいたソートが実行できます。このソートのためには、
|
|
ただネームサーバを設定するだけでよく、すべてのクライアントを設定する
|
|
必要はありません。
|
|
.Pp
|
|
.Ic sortlist
|
|
ステートメントは、アドレスマッチリストをとり、
|
|
.Ic topology
|
|
ステートメントより更に増した特別な方法でリストを解釈します。
|
|
.Pp
|
|
ソートリスト中の各先頭のステートメントは、
|
|
それ自身、1 つまたは 2 つの要素を持った
|
|
明示的なアドレスマッチリストでなくてはなりません。各先頭のリストの最初の要素
|
|
(IP アドレス、IP のプレフィックス、ACL 名、
|
|
あるいはネストされたアドレスマッチリスト)
|
|
に対し、マッチが見つかるまで、問い合わせ元のアドレスをチェックします。
|
|
.Pp
|
|
ひとたび問い合わせ元のアドレスがマッチしたなら、
|
|
先頭のステートメントがただ 1 つの要素のみの場合、
|
|
問い合わせ元のアドレスとマッチした要素そのものが
|
|
応答のアドレスを選択するために使用され、それが応答の先頭に移動します。
|
|
ステートメントが 2 つの要素を持ったリストであった場合、2 番目の要素は、
|
|
topology ステートメントのアドレスマッチリストのように扱われます。
|
|
各先頭要素には、
|
|
距離が割り当てられており、最も短い距離を持った応答中のアドレスが、
|
|
その応答の先頭に移動されます。
|
|
.Pp
|
|
次の例では、ホストそれ自身のアドレスから受け取った問い合わせは、
|
|
ローカルに接続された
|
|
ネットワーク上のアドレスを優先するような応答を受け取ります。
|
|
次に優先されるのが、
|
|
192.168.1/24 ネットワーク上のアドレスで、その後に、192.168.2/24 あるいは
|
|
192.168.3/24 ネットワークがきます。
|
|
最後の 2 つのネットワーク間にはどちらが優先かは示されていません。
|
|
192.168.1/24 ネットワーク上のホストから受け取った問い合わせは、
|
|
そのネットワーク上の他のアドレスを 192.168.2/24 および 192.168.3/24
|
|
ネットワークよりも優先します。
|
|
192.168.4/24 あるいは 192.168.5/24 ネットワーク上の
|
|
ホストから受け取った問い合わせは、
|
|
直接接続されたネットワーク上のアドレスを優先する
|
|
だけです。
|
|
.Bd -literal
|
|
sortlist {
|
|
{ localhost; // もし ローカルホストなら
|
|
{ localnets; // 次のネット上で
|
|
192.168.1/24; // 最初にフィットしたものにする
|
|
{ 192,168.2/24; 192.168.3/24; }; }; };
|
|
{ 192.168.1/24; // もし クラス C 192.168.1 上なら
|
|
{ 192.168.1/24; // .1 あるいは、.2 か .3 を使用する
|
|
{ 192.168.2/24; 192.168.3/24; }; }; };
|
|
{ 192.168.2/24; // もし クラス C 192.168.2 上なら
|
|
{ 192.168.2/24; // .2 あるいは、.1 か .3 を使用する
|
|
{ 192.168.1/24; 192.168.3/24; }; }; };
|
|
{ 192.168.3/24; // もし クラス C 192.168.3 上なら
|
|
{ 192.168.3/24; // .3 あるいは、.1 か .2 を使用する
|
|
{ 192.168.1/24; 192.168.2/24; }; }; };
|
|
{ { 192.168.4/24; 192.168.5/24; }; // .4 か .5 なら
|
|
}; // そのネットを優先する
|
|
};
|
|
.Ed
|
|
.Pp
|
|
次の例は、ローカルホストおよび直接接続されたネットワーク上のホストに対する、
|
|
理にかなった振るまいを提供するものです。
|
|
これは、BIND 4.9.x でのアドレスのソートの振るまいと
|
|
似ています。ローカルホストからの問い合わせに対して送られた応答は、
|
|
直接接続された
|
|
ネットワーク上のホストを優先します。
|
|
他の直接接続されたネットワーク上のホストからの
|
|
問い合わせに対して送られた応答は、
|
|
同じネットワーク上のアドレスを優先するでしょう。
|
|
その他の問い合わせに対する応答についてはソートされません。
|
|
.Bd -literal
|
|
sortlist {
|
|
{ localhost; localnets; };
|
|
{ localnets; };
|
|
};
|
|
.Ed
|
|
.Ss RRset の順番付け
|
|
応答中に複数のレコードが返されている場合、
|
|
その応答中にレコードがどの順番で置かれるかを
|
|
設定するのが有益なことがあります。
|
|
例えば、あるゾーンに対するレコードは、ゾーンファイルで
|
|
定義された順番で常に返されるように設定されるかもしれません。
|
|
あるいは、
|
|
レコードが返されるときにランダムにシャッフルされるようにしたいということも
|
|
あるでしょう。
|
|
rrset-order ステートメントを使用すると、
|
|
複数レコードが含まれる応答中のレコードの順番を
|
|
設定することができます。順番が定義されていない場合、デフォルトでは、巡回順
|
|
(ラウンドロビン) になります
|
|
.Pp
|
|
.Ic order_spec
|
|
は次のように定義されています :
|
|
.Bd -literal
|
|
[ \fIclass class_name\fR ][ \fItype type_name\fR ][ \fIname\fR "FQDN" ] \fIorder\fR ordering
|
|
.Ed
|
|
.Pp
|
|
クラスが指定されていない場合、デフォルトは
|
|
.Ic ANY
|
|
です。
|
|
.Li Ictype
|
|
が指定されていない場合、デフォルトは
|
|
.Ic ANY
|
|
です。
|
|
名前が指定されていない場合、デフォルトは "*" です。
|
|
.Pp
|
|
.Ic ordering
|
|
の正当な値には、次のようなものがあります :
|
|
.Bl -tag -width indent
|
|
.It Ic fixed
|
|
レコードは、ゾーンファイルで定義された順番で返されます。
|
|
.It Ic random
|
|
レコードは、ある種のランダムな順番で返されます。
|
|
.It Ic cyclic
|
|
レコードは、ラウンドロビンに返されます。
|
|
.El
|
|
.Pp
|
|
例えば、
|
|
.Bd -literal
|
|
rrset-order {
|
|
class IN type A name "rc.vix.com" order random;
|
|
order cyclic;
|
|
};
|
|
.Ed
|
|
.Pp
|
|
では、サフィックスに "rc.vix.com" を持ち、
|
|
クラス IN でタイプ A のレコードに対する
|
|
応答は、常にランダムな順番で返されます。
|
|
その他のレコードはすべて巡回順に返されます。
|
|
.Pp
|
|
.Ic rrset-order
|
|
ステートメントが複数現れた場合、ステートメントは連結されません。
|
|
最後のものが適用されます。
|
|
.Pp
|
|
.Ic rrset-order
|
|
ステートメントが指定されていない場合、デフォルトは
|
|
.Bd -literal
|
|
rrset-order { class ANY type ANY name "*" order cyclic ; };
|
|
.Ed
|
|
.Pp
|
|
が使われます。
|
|
.Ss グルーの順序
|
|
ルートネームサーバ実行時には、
|
|
準備中の他のネームサーバが成功することを保証する必要がある場合があります。
|
|
準備の問い合わせに対する答えの中に、
|
|
ネームサーバのうち少なくとも 1 つに対するグルー (のり) の A レコードが
|
|
返されることが必要です。
|
|
これは、
|
|
.Ic preferred-glue A;
|
|
を設定することで実現可能であり、
|
|
追加セクション中の他のタイプの前に A レコードを追加します。
|
|
.Ss EDNS
|
|
ファイアウォールによっては、
|
|
ある大きさを越える EDNS/UDP メッセージを通しません。
|
|
その大きさとは、すなわち 512 や UDP 再組み立てバッファの大きさです。
|
|
このようなファイアウォールを越えて EDNS を動作させるためには、
|
|
問題を起こさないよう、十分小さな EDNS バッファの大きさを広告することが
|
|
必要です。
|
|
.Ic edns-udp-size
|
|
が、広告サイズの調整に使用可能です。
|
|
512 未満の値は 512 に増やされ、4096 を越える値は 4096 に縮められます。
|
|
.Ss チューニング
|
|
.Bl -tag -width 0n
|
|
.It Ic lame-ttl
|
|
不完全なサーバの指示をキャッシュしておく秒数を設定します。
|
|
0 の場合、キャッシュしません。
|
|
デフォルトは 600 (10 分) です。最大値は 1800 (30 分) です。
|
|
.It Ic max-ncache-ttl
|
|
ネットワークの負荷を軽減しパフォーマンスを上げるために、
|
|
サーバが否定応答を蓄えます。
|
|
.Ic max-ncache-ttl
|
|
は、サーバで、このような応答の最大保存時間を設定するために使います。
|
|
秒単位です。
|
|
.\" for these answers in the server is seconds. のところが文になっていない。
|
|
デフォルトの
|
|
.Ic max-ncache-ttl
|
|
は 10800 秒 (3 時間) です。
|
|
.Ic max-ncache-ttl
|
|
通常の (肯定) 応答に対しては、最大保存時間を超えてはいけません (7 日)。
|
|
もし、この値が 7 日以上に設定されていた場合、
|
|
黙って 7 日に切り詰めてしまうでしょう。
|
|
.It Ic min-roots
|
|
ルートサーバに対する要求を受け取るために必要なルートサーバの最小値です。
|
|
デフォルトは
|
|
2 です。
|
|
.El
|
|
.Sh zone ステートメント
|
|
.Ss 文法
|
|
.Bd -literal
|
|
zone \fIdomain_name\fR [ ( in | hs | hesiod | chaos ) ] {
|
|
type master;
|
|
file \fIpath_name\fR;
|
|
[ check-names ( warn | fail | ignore ); ]
|
|
[ allow-update { \fIaddress_match_list\fR }; ]
|
|
[ allow-query { \fIaddress_match_list\fR }; ]
|
|
[ allow-transfer { \fIaddress_match_list\fR }; ]
|
|
[ forward ( only | first ); ]
|
|
[ forwarders { [ \fIip_addr\fR ; [ \fIip_addr\fR ; ... ] ] }; ]
|
|
[ dialup \fIyes_or_no\fR; ]
|
|
[ notify ( \fIyes_or_no\fR | explicit ); ]
|
|
[ also-notify { \fIip_addr\fR; [ \fIip_addr\fR; ... ] };
|
|
[ pubkey \fInumber\fR \fInumber\fR \fInumber\fR \fIstring\fR; ]
|
|
};
|
|
.Pp
|
|
zone \fIdomain_name\fR [ ( in | hs | hesiod | chaos ) ] {
|
|
type ( slave | stub );
|
|
[ file \fIpath_name\fR; ]
|
|
masters [ port \fIip_port\fR ] { \fIip_addr\fR [ key \fIkey_id\fR ]; [ ... ] };
|
|
[ check-names ( warn | fail | ignore ); ]
|
|
[ allow-update { \fIaddress_match_list\fR }; ]
|
|
[ allow-query { \fIaddress_match_list\fR }; ]
|
|
[ allow-transfer { \fIaddress_match_list\fR }; ]
|
|
[ forward ( only | first ); ]
|
|
[ forwarders { [ \fIip_addr\fR ; [ \fIip_addr\fR ; ... ] ] }; ]
|
|
[ transfer-source \fIip_addr\fR; ]
|
|
[ max-transfer-time-in \fInumber\fR; ]
|
|
[ notify \fIyes_or_no\fR; ]
|
|
[ also-notify { \fIip_addr\fR; [ \fIip_addr\fR; ... ] };
|
|
[ pubkey \fInumber\fR \fInumber\fR \fInumber\fR \fIstring\fR; ]
|
|
};
|
|
.Pp
|
|
zone \fIdomain_name\fR [ ( in | hs | hesiod | chaos ) ] {
|
|
type forward;
|
|
[ forward ( only | first ); ]
|
|
[ forwarders { [ \fIip_addr\fR ; [ \fIip_addr\fR ; ... ] ] }; ]
|
|
[ check-names ( warn | fail | ignore ); ]
|
|
};
|
|
.Pp
|
|
zone \&".\&" [ ( in | hs | hesiod | chaos ) ] {
|
|
type hint;
|
|
file \fIpath_name\fR;
|
|
[ check-names ( warn | fail | ignore ); ]
|
|
};
|
|
.Ed
|
|
.Ss 定義と使用法
|
|
.Ic zone
|
|
ステートメントは、
|
|
特定の DNS ゾーンがサーバにどのように管理されるかを指定するために
|
|
使われます。ゾーンには 5 つの種類があります。
|
|
.Bl -tag -width 0n
|
|
.It Ic master
|
|
サーバは、
|
|
そのゾーン用データのマスタコピーを持っていて、ゾーンに対して信頼できる
|
|
応答を提供できます。
|
|
.It Ic slave
|
|
.Ic slave
|
|
ゾーンはマスタゾーンの複製です。
|
|
.Ic masters
|
|
リストは、ゾーンの複製を更新するためにスレーブサーバが通信を行う 1 つ以上の
|
|
IP アドレスを指定します。
|
|
.Ic port
|
|
が指定されている場合、このポートに対し、
|
|
ゾーンが現在使用されているものであることの確認と、
|
|
ゾーン転送が行われます。
|
|
.Ic file
|
|
が指定されている場合、
|
|
指定されたファイルへゾーンの複製が書き出されます。
|
|
.Ic file
|
|
節を使用することを強く勧めます。
|
|
なぜなら、大体においてサーバの起動を早めますし、
|
|
通信回線を無駄に使用することを防いでくれるからです。
|
|
.It Ic stub
|
|
.Ic stub
|
|
ゾーンは slave ゾーンのようなものですが、ゾーン全体を複製するのではなく、
|
|
マスタゾーンの NS レコードのみを複製するという点が違います。
|
|
.It Ic forward
|
|
.Ic forward
|
|
ゾーンは、自分に向けられた問い合わせを他のサーバに振り分けるために使用します。
|
|
このことは、
|
|
.Sx option ステートメント
|
|
のセクションで説明しています。これらのゾーンでのオプション仕様は、
|
|
.Ic options
|
|
ステートメントで宣言されたグローバルオプションを上書きします。
|
|
.Pp
|
|
.Ic forwarders
|
|
節が zone ステートメント中に存在しないか、もしくは、
|
|
.Ic forwarders
|
|
に対して空リストが与えられている場合は、
|
|
そのゾーンに対してフォワードは行われず、
|
|
.Ic options
|
|
ステートメント中の
|
|
.Ic forwarders
|
|
は、すべて効力を失います。そのため、使用されるサーバではなく、グローバルの
|
|
.Ic forward
|
|
オプションの挙動を変更するためだけにこの種類のゾーンを使用したいのであれば、
|
|
グローバルの forwarders 節も指定しなおす必要があります。
|
|
.It Ic hint
|
|
ルートネームサーバの初期集合は、
|
|
.Ic hint
|
|
ゾーンを使用して指定されます。サーバが起動する際に、ルートヒントを使用して
|
|
ルートネームサーバを見つけ、ルートネームサーバの最新リストを取得します。
|
|
.El
|
|
.Pp
|
|
注 : 以前の BIND リリースでは、マスタゾーンに対しては
|
|
.Ic primary
|
|
という用語を使用し、スレーブゾーンに対しては、
|
|
.Ic secondary
|
|
を、hint ゾーンに対しては
|
|
.Ic cache
|
|
という用語を使用していました。
|
|
.Ss クラス
|
|
ゾーン名には、オプションでクラスを続けることができます。
|
|
もし、クラスが指定されていない場合は、
|
|
.Ic in
|
|
クラス
|
|
(「インターネット」用) であると仮定されます。これは、大半の場合正しいです。
|
|
.Pp
|
|
.Ic hesiod
|
|
クラスは、MIT の Project Athena 由来の情報サービス用のクラスです。
|
|
このクラスは、ユーザ、グループ、プリンタなどといった、
|
|
さまざまなシステムデータベースに
|
|
関する情報を共有するために使用されます。さらなる情報は、
|
|
ftp://athena-dist.mit.edu/pub/ATHENA/usenix/athena_changes.PS
|
|
から入手できます。
|
|
キーワード
|
|
.Ic hs
|
|
は
|
|
.Ic hesiod
|
|
と同義語です。
|
|
.Pp
|
|
MIT が開発したもう 1 つのものが、1970 年代半ばに作られた LAN プロトコルである
|
|
CHAOSnet です。これは、LISP ステーションや AI コミュニティで使われている
|
|
他のハードウェアで、まだ時折見受けられます。CHAOSnet 用のゾーンデータは、
|
|
.Ic chaos
|
|
クラスを使用して指定できます。
|
|
.Ss オプション
|
|
.Bl -tag -width 0n
|
|
.It Ic check-names
|
|
.Sx options ステートメント
|
|
の
|
|
.Sx ネームチェック
|
|
に関するサブセクションを参照してください。
|
|
.It Ic allow-query
|
|
.Sx options ステートメント
|
|
の
|
|
.Sx アクセス制御
|
|
サブセクションの中の
|
|
.Ic allow-query
|
|
に関する説明を参照してください。
|
|
.It Ic allow-update
|
|
どのホストが動的な DNS の更新をサーバに提出するかを指定します。デフォルトは、
|
|
どのホストからも更新を許可しないというものです。
|
|
.It Ic allow-transfer
|
|
.Sx options ステートメント
|
|
の
|
|
.Sx アクセス制御
|
|
サブセクションの中の
|
|
.Ic allow-transfer
|
|
に関する説明を参照してください。
|
|
.It Ic transfer-source
|
|
.Ic transfer-source
|
|
どのローカルアドレスが、
|
|
このゾーンを取得するために使用される TCP 接続と結びつけられるかを
|
|
指定します。
|
|
これが設定されていない場合は、システムが制御する値がデフォルトになります。
|
|
この値は、通常は、リモート側の終端に「最も近い」インタフェースのアドレスです。
|
|
このアドレスは、
|
|
もし指定されているのであれば、このゾーンに対するリモート側の終端の
|
|
.Ic allow-transfer
|
|
オプション中に出てこなくてはなりません。
|
|
.It Ic max-transfer-time-in
|
|
.Sx options ステートメント
|
|
の
|
|
.Sx ゾーン転送
|
|
サブセクション中の
|
|
.Ic max-transfer-time-in
|
|
の説明を参照してください。
|
|
.It Ic dialup
|
|
.Sx options ステートメント
|
|
の
|
|
.Sx ブール値オプション
|
|
サブセクション中の
|
|
.Ic dialup
|
|
の説明を参照してください。
|
|
.It Ic notify
|
|
.Sx options ステートメント
|
|
の
|
|
.Sx ブール値オプション
|
|
サブセクション中の
|
|
.Sx notify
|
|
の説明を参照してください。
|
|
.It Ic also-notify
|
|
.Ic notify
|
|
がこのゾーンに対してアクティブである場合のみ
|
|
.Ic also-notify
|
|
は意味を持ちます。
|
|
このゾーンに対する DNS NOTIFY メッセージを受け取るマシン群は、
|
|
そのゾーン用にリストされた
|
|
すべてのネームサーバ (プライマリマスタを除く) と、
|
|
.Ic also-notify
|
|
で指定された IP アドレスからなっています。
|
|
.Ic also-notify
|
|
は
|
|
.Ic stub
|
|
ゾーンに対しては意味を持ちません。デフォルトでは、これは空のリストです。
|
|
.It Ic forward
|
|
.Ic forward
|
|
は、そのゾーンが
|
|
.Ic forwarders
|
|
リストを持っている場合のみ意味を持ちます。
|
|
.Ic only
|
|
値は、先に
|
|
.Ic forwarders
|
|
を試し、応答がなかった場合に検索を失敗させます。
|
|
それに対し、
|
|
.Ic first
|
|
は、通常の検索を許可します。
|
|
.It Ic forwarders
|
|
ゾーン中で
|
|
.Ic forwarders
|
|
オプションを使用すると、グローバルの forwarders リストが上書きされます。
|
|
.Ic forward
|
|
タイプのゾーン中でこれが指定されていなかった場合は、
|
|
このゾーンに対しては
|
|
.Em 何の
|
|
フォワードも行いません。グローバルのオプションは使われないということです。
|
|
.It Ic pubkey
|
|
DNSSEC のフラグ、プロトコル、アルゴリズムと、
|
|
base-64 でエンコードされた鍵を表す文字列を指定します。
|
|
.El
|
|
.Sh acl ステートメント
|
|
.Ss 文法
|
|
.Bd -literal
|
|
acl \fIname\fR {
|
|
\fIaddress_match_list\fR
|
|
};
|
|
.Ed
|
|
.Ss 定義と使用法
|
|
.Ic acl
|
|
ステートメントは、名前のついたアドレスマッチリストを生成します。
|
|
このステートメントは、プライマリで使用しているアドレスマッチリスト、つまり、
|
|
アクセス制御リスト (ACL) からその名前を取得します。
|
|
.Pp
|
|
アドレスマッチリスト名は、他のところで使用する前に
|
|
.Ic acl
|
|
を使用して定義しなくてはなりません。ファイルの前方への参照は許されていません。
|
|
.Pp
|
|
次のような組み込みの ACL があります :
|
|
.Bl -tag -width 0n
|
|
.It Ic any
|
|
すべてのホストを許可します。
|
|
.It Ic none
|
|
すべてのホストを拒否します。
|
|
.It Ic localhost
|
|
システム上のすべてのインタフェースの IP アドレスを許可します。
|
|
.It Ic localnets
|
|
システムがインタフェースを持ったネットワーク上のすべてのホストを許可します。
|
|
.El
|
|
.Sh key ステートメント
|
|
.Ss 文法
|
|
.Bd -literal
|
|
key \fIkey_id\fR {
|
|
algorithm \fIalgorithm_id\fR;
|
|
secret \fIsecret_string\fR;
|
|
};
|
|
.Ed
|
|
.Ss 定義と使用法
|
|
.Ic key
|
|
ステートメントは、鍵の ID を指定します。この ID は、
|
|
.Ic server
|
|
ステートメントで使用され、単純な IP アドレスでのマッチングよりも厳格な
|
|
特定のネームサーバと認証方法とを関連づけます。
|
|
鍵の ID は、
|
|
.Ic server
|
|
の定義やアドレスマッチリスト中で使用される前に
|
|
.Ic key
|
|
ステートメントを使用して作成されていなくてはなりません。
|
|
.Pp
|
|
.Va algorithm_id
|
|
は、セキュリティ / 認証アルゴリズムを指定する文字列です。
|
|
.Va secret_string
|
|
は、指定されたアルゴリズムが使用する秘密の鍵で、
|
|
base-64 でエンコードされた文字列として扱われます。
|
|
言わずとも当然のことですが、為念指摘しておくと、
|
|
.Pa named.conf
|
|
中に
|
|
.Va secret_string
|
|
を入れている場合、
|
|
named.conf をスーパユーザ以外の誰にも読み込み可能にしてはいけません。
|
|
.Sh trusted-keys ステートメント
|
|
.Ss 文法
|
|
.Bd -literal
|
|
trusted-keys {
|
|
[ \fIdomain_name\fR \fIflags\fR \fIprotocol\fR \fIalgorithm\fR \fIkey\fR; ]
|
|
};
|
|
.Ed
|
|
.Ss 定義と使用法
|
|
.Ic trusted-keys
|
|
ステートメントは、もともと、RFC 2065 で仕様が決められている DNSSEC スタイルの
|
|
セキュリティとともに使用されます。DNSSEC は、
|
|
3 つの異なったサービスを提供するものです :
|
|
それは、鍵の配布、データの発生元の認証、
|
|
そして、トランザクションおよび要求の認証です。DNSSEC についての完全な説明と
|
|
このドキュメントの範囲を超えた使い方を知りたい場合、
|
|
そして、読者がさらなる情報に
|
|
興味がある場合は、まず、RFC2065 を読むことから始めてください。そして、
|
|
http://www.ietf.org/ids.by.wg/dnssec.html から入手できるインターネット
|
|
ドラフトへと続いてください。
|
|
.Pp
|
|
信頼された鍵はそれぞれ、ドメイン名と関連づけられています。その属性は、
|
|
非負の整数値である、
|
|
.Va flags ,
|
|
.Va protocol ,
|
|
.Va algorithm
|
|
と、
|
|
.Va key
|
|
を表す base-64 でエンコードされた文字列です。
|
|
.Pp
|
|
信頼された鍵の番号はすべて指定可能です。
|
|
.Sh server ステートメント
|
|
.Ss 文法
|
|
.Bd -literal
|
|
server \fIip_addr\fR {
|
|
[ edns \fIyes_or_no\fR; ]
|
|
[ bogus \fIyes_or_no\fR; ]
|
|
[ support-ixfr \fIyes_or_no\fR; ]
|
|
[ transfers \fInumber\fR; ]
|
|
[ transfer-format ( one-answer | many-answers ); ]
|
|
[ keys { \fIkey_id\fR [ \fIkey_id\fR ... ] }; ]
|
|
};
|
|
.Ed
|
|
.Ss 定義と使用法
|
|
server ステートメントは、リモートのネームサーバに関連付けられる
|
|
特徴を定義します。
|
|
.Pp
|
|
サーバが EDNS をサポートしていない場合、
|
|
.Ic edns
|
|
.Ic no;
|
|
を指定することで named が EDNS 問い合わせしないようにできます。
|
|
.Ic edns
|
|
のデフォルト値は
|
|
.Ic yes
|
|
です。
|
|
.Pp
|
|
サーバが間違ったデータを送っていることに気がついた場合、そのサーバを
|
|
.Ic bogus
|
|
にすることで、そのサーバへの問い合わせを抑止することができます。
|
|
.Ic bogus
|
|
のデフォルト値は
|
|
.Li no
|
|
です。
|
|
.Pp
|
|
サーバが IXFR をサポートする場合、
|
|
.Ic support-ixfr
|
|
を
|
|
.Li yes
|
|
に設定することで、
|
|
IXFR スタイルのゾーン転送を試みるよう named に指示可能です。
|
|
.Ic support-ixfr
|
|
のデフォルト値は
|
|
.Li no
|
|
です。
|
|
.Pp
|
|
サーバは、2 つのゾーン転送方式をサポートしています。1 つ目は、
|
|
.Ic one-answer
|
|
であり、
|
|
これは、転送される各リソースレコードに 1 つの DNS メッセージを使用します。
|
|
.Ic many-answers
|
|
は、できるだけ多くのリソースレコードを 1 つのメッセージに押し込みます。
|
|
.Ic many-answers
|
|
の方が効率的ではありますが、BIND 8.1 および、
|
|
パッチの当たった BIND 4.9.5 でのみ
|
|
理解されるものです。
|
|
サーバに対してどちらの方法を使用するかは、
|
|
.Ic transfer-format
|
|
オプションを使用して指定することができます。
|
|
.Ic transfer-format
|
|
が指定されていない場合は、
|
|
.Ic options
|
|
ステートメントで指定された
|
|
.Ic transfer-format
|
|
が使用されます。
|
|
.Pp
|
|
.Ic transfers
|
|
は、将来のリリースでのサーバで、
|
|
指定されたサーバから同時に行われる内部へのゾーン転送数を
|
|
制限するために使用される予定です。
|
|
現在は、文法はチェックしますが、その他のことは
|
|
無視されます。
|
|
.Pp
|
|
.Ic keys
|
|
節は、
|
|
.Ic key
|
|
ステートメントで定義された
|
|
.Va key_id
|
|
を識別するために使用されます。これは、リモートサーバと通信する際の
|
|
トランザクションのセキュリティ用に使用されます。
|
|
.Ic key
|
|
ステートメントは、それを参照する
|
|
.Ic server
|
|
ステートメントよりも先に現れなくてはなりません。
|
|
.Pp
|
|
.Ic keys
|
|
ステートメントは、将来、サーバによって使用されることを期待されています。
|
|
現在は、文法はチェックされますが、その他のことは無視されます。
|
|
.Sh controls ステートメント
|
|
.Ss 文法
|
|
.Bd -literal
|
|
controls {
|
|
[ inet \fIip_addr\fR
|
|
port \fIip_port\fR
|
|
allow { \fIaddress_match_list\fR; }; ]
|
|
[ unix \fIpath_name\fR
|
|
perm \fInumber\fR
|
|
owner \fInumber\fR
|
|
group \fInumber\fR; ]
|
|
};
|
|
.Ed
|
|
.Pp
|
|
.Ss 定義と使用法
|
|
.Ic controls
|
|
ステートメントは、
|
|
システム管理者がローカルのネームサーバの操作に影響を与えるために
|
|
使用する制御チャネルを宣言します。制御チャネルは、
|
|
.Nm ndc
|
|
ユーティリティが、ネームサーバにコマンドを送り、
|
|
DNS 以外の結果を受け取るために
|
|
使用します。
|
|
.Pp
|
|
.Ic unix
|
|
制御チャネルは、ファイルシステムでの FIFO です。このチャネルへのアクセスは、
|
|
通常のファイルシステムのパーミッションによって制御されます。
|
|
この制御チャネルは、
|
|
指定されたファイルモードのビット (
|
|
.Xr chmod 1
|
|
を参照) とユーザおよびグループの所有者情報を使用し、
|
|
.Nm named
|
|
が作成します。
|
|
注意することは、
|
|
.Nm chmod
|
|
とは違い、
|
|
.Ic perm
|
|
に対して指定されるモードのビットには、通常先頭に
|
|
.Li 0
|
|
がついていることです。そのため、数字は 8 進数として解釈されます。
|
|
さらに注意することは、
|
|
.Ic owner
|
|
および
|
|
.Ic group
|
|
として指定されるユーザおよびグループの所有者情報は、数字で与えなくては
|
|
ならないということです。名前ではありません。
|
|
このパーミッションは、管理者のみに制限することを勧めます。
|
|
そうしないと、このシステム上のユーザなら誰でもローカルネームサーバを
|
|
操作できてしまいます。
|
|
.Pp
|
|
.Ic inet
|
|
制御チャネルは、インターネット接続のできる TCP/IP ソケットです。
|
|
これは、指定された
|
|
.Va ip_addr
|
|
上の指定された
|
|
.Va ip_port
|
|
にあります。
|
|
最近の
|
|
.Nm telnet
|
|
クライアントは、こうしたソケットと直接対話ができます。
|
|
このときの制御プロトコルは、ARPAnet 形式のテキストです。
|
|
127.0.0.1 だけを
|
|
.Va ip_addr
|
|
に使用することを勧めます。これは、ネームサーバを管理するために、
|
|
ローカルホスト上の特権を持たないユーザを皆信用している場合だけに限ります。
|
|
.Sh include ステートメント
|
|
.Ss 文法
|
|
.Bd -literal
|
|
include \fIpath_name\fR;
|
|
.Ed
|
|
.Ss 定義と使用法
|
|
.Ic include
|
|
ステートメントは、そのステートメントが現れた地点に、指定された
|
|
ファイルを挿入します。ただし、他のステートメント内で使用することは
|
|
できません。ですので、
|
|
.Dl acl internal_hosts { include "internal_hosts.acl"; };
|
|
というようには使用できません。
|
|
.Pp
|
|
.Ic include
|
|
を使用して、設定ファイルを簡単に管理できるかたまりに分けるように
|
|
してください。例えば、次のようにです :
|
|
.Bd -literal
|
|
include "/etc/security/keys.bind";
|
|
include "/etc/acls.bind";
|
|
.Ed
|
|
.Pp
|
|
この例は、任意の ACL または 認証鍵情報を取り込むために、
|
|
BIND 設定ファイルの先頭で使うことができるでしょう。
|
|
.Pp
|
|
C 言語でのプログラムでするように ``#include'' とタイプしないでください。
|
|
``#'' はコメントの開始として使用するものだからです。
|
|
.Sh 使用例
|
|
実際に使用する場面でも実用的で、最も単純な設定ファイルは、
|
|
ただ単にルートサーバファイルへのフルパスを持ったヒントゾーンを
|
|
定義したものです。
|
|
.Bd -literal
|
|
zone \&".\&" in {
|
|
type hint;
|
|
file \&"/var/named/root.cache\&";
|
|
};
|
|
.Ed
|
|
.Pp
|
|
次の例は、もっと実世界に即したものです。
|
|
.Bd -literal
|
|
/*
|
|
* 単純な BIND 8 の設定
|
|
*/
|
|
.Pp
|
|
logging {
|
|
category lame-servers { null; };
|
|
category cname { null; };
|
|
};
|
|
.Pp
|
|
options {
|
|
directory \&"/var/named\&";
|
|
};
|
|
.Pp
|
|
controls {
|
|
inet * port 52 allow { any; }; // これは良くない
|
|
unix \&"/var/run/ndc\&" perm 0600 owner 0 group 0; // デフォルト
|
|
};
|
|
.Pp
|
|
zone \&"isc.org\&" in {
|
|
type master;
|
|
file \&"master/isc.org\&";
|
|
};
|
|
.Pp
|
|
zone \&"vix.com\&" in {
|
|
type slave;
|
|
file \&"slave/vix.com\&";
|
|
masters { 10.0.0.53; };
|
|
};
|
|
.Pp
|
|
zone \&"0.0.127.in-addr.arpa\&" in {
|
|
type master;
|
|
file \&"master/127.0.0\&";
|
|
};
|
|
.Pp
|
|
zone \&".\&" in {
|
|
type hint;
|
|
file \&"root.cache\&";
|
|
};
|
|
.Ed
|
|
.Sh 関連ファイル
|
|
.Bl -tag -width 0n -compact
|
|
.It Pa /etc/namedb/named.conf
|
|
BIND 8
|
|
.Nm named
|
|
設定ファイル
|
|
.El
|
|
.Sh 関連項目
|
|
.Xr named 8 ,
|
|
.Xr ndc 8
|