nsd.conf(5) nsd 3.2.5 nsd.conf(5) 名前 nas.conf - NSD設定ファイル 概要 nsd.conf 解説 nsd.confはnsd(8)を設定するために使われる。ファイルフォーマットは属性と値である。いくつか の属性はその中に属性を持っている。表記法は「属性: 値」である。 コメントは「#」で始まり、行の最後までコメントとなる。ホワイトスペースから始まるような空の行 は無視される。 nsd.confはnsdサーバのオプション、ゾーンファイル、プライマリ、セカンダリを指定する。 例 nsd.confファイルの短い例は以下の様になる。 # example.comのnsd.confファイル # これはコメント server: database: "/var/db/nsd/nsd.db" username: nsd logfile: "/var/log/nsd.log" pidfile: "/var/run/nsd.pid" difffile: "/var/db/nsd/ixfr.db" xfrdfile: "/var/db/nsd/xfrd.state" zone: name: example.com # 値では引用符はオプションである zonefile: /etc/nsd/example.com.zone ファイルフォーマット キーワードの間はホワイトスペースがなければならない(must)。属性キーワードはコロン(:)で終わ る。属性の後にはそれが持っている属性か、値が続く。 属性のトップレベルはserver:、zone:、key:のみである。これらの後にはこれらが持つ属性か、 新しいserver:、zone:、key:が始まる。zone:属性の後にはゾーンオプションが続く。server: 属性の後にはNSDサーバのグローバルオプションが続く。key:属性は認証用の鍵を定義するために使 われる。 ファイルはinclude:ディレクティブを使って挿入することが出来る。これはどこにでも現れてよく 、引数として1つのファイル名をとる。あたかも挿入されたファイルのテキストが、設定ファイルのそ の場所にコピーされたかのように処理は進む。(NSDコマンドラインで上書きされていなければ)グロ ーバルオプションはserver:から参照される。1つのserver:があるだけかもしれない。 ip-address: NSDはip-addressにリストされたアドレスから待ち受ける。複数のアドレスを指定すため に、複数回使うことができる。指定しなければNSDは全てのIPアドレスから待ち受ける。コ マンドラインオプションは-a。 debug-mode: NSDでデバッグモードをオンにし、デーモンプロセスをフォークしない。デフォルトはno。 コマンドラインオプションは-d。 ip4-only: yesにすると、NSDはIPv4接続のみを待ち受ける。コマンドラインオプションは-4。 ip6-only: yesにすると、NSDはIPv6接続のみを待ち受ける。コマンドラインオプションは-6。 database: デフォルトは「/var/db/nsd/nsd.db」が使われる。指定されたファイルはコンパイルさ れたゾーン情報を保存するために使われる。コマンドラインオプションは-f。 identity: CH TXT ID.SERVERの問い合わせに対して返す識別子を指定する。デフォルトはgethostname(3 )が返す名前である。コマンドラインオプションは-i。 nsid: NSID、EDNSが有効のパケットが来た時、指定されたnsidを応答のEDNSセクションに追加 する。コマンドラインオプションは-I。 logfile: ログファイルにログを吐く。デフォルトは標準エラーとsyslogにログを吐く。コマンドラ インオプションは-l。 server-count: 複数のNSDサーバを起動する。デフォルトは1。コマンドラインオプションは-N。 tcp-count: 同時に受け付けるTCP接続の最大数。デフォルトは10。このオプションは1000以下である べき(should)。コマンドラインオプションは-n。 tcp-query-count: 1つのTCPコネクションで許容するクエリの最大数。デフォルトは0で、上限が無いことを意 味する。 tcp-timeout: デフォルトのTCPタイムアウトを上書きする。これはTCPによるゾーン転送にも影響する。 ipv4-edns-size: IPv4用のEDNSのバッファサイズを指定する。 ipv6-edns-size: IPv6用のEDNSのバッファサイズを指定する。 pidfile: プラットフォームが指定するデフォルトの代わりにpidファイルを使う。通常は「/var/ru n/nsd.pid」。コマンドラインオプションは-P。 port: 指定されたポートでクエリに答える。デフォルトは53。コマンドラインオプションは-p。 statistics: 指定しなければ、統計はダンプされない。統計はnumber秒毎に生成される。コマンドライ ンオプションは-s。 chroot: NSDは起動時に指定されたディレクトリにchrootする。コマンドラインオプションは-t。 username: ソケットが待ち受け状態になったら、ユーザ特権を放棄し、usernameに引き継ぐ。usern ameはidかid.gidが利用できる。コマンドラインオプションは-u。 zonesdir: ゾーンファイルにアクセスする前に指定されたディレクトリにワーキングディレクトリを変 更する。zonec(8)のコマンドラインオプションは-d。nsd(8)はこのディレクトリに関連 したファイル(pidファイル、databaseファイル、ログファイル)にもアクセスする。値と して""(空の文字列)を設定すると、ワーキングディレクトリの変更を無効にする。 difffile: NSDが再帰的に差分ゾーン転送(IXFR)を行う時、このファイルにデータを保存する。この ファイルはデータベースファイルと最新のゾーンヴァージョンとの差を含んでいる。デフォ ルトは「/var/db/nsd/ixfr.db」。 xfrdfile: SOAのタイムアウトとNSDのゾーン転送デーモンはこのファイルにそれのステートを保存す る。ステートは再起動後に復唱される。ステートファイルは削除しても問題ないが、ゾーン のタイムスタンプも削除される。詳しくはNSDのゾーン満了時の動作に関するセクションを 参照。デフォルトは「/var/db/nsd/xfrd.state」。 xrfd-reload-timeout: もし、この値を-1に設定したら、xfrdはゾーン転送の後にリロードをかけない。もし、ゾ ーン転送後にxfrdがリロードをかけたら、次のリロードを行う前にnumber秒待つ。この値 を設定することはnumber秒に一度リロードするようリロードを調整する。デフォルトは10 秒。 verbosity: この値は(デバッグ無しの)ロギングの饒舌さレベルを指定する。デフォルトは0。1は入って くる通知とゾーン転送に関するより多くの情報を知らせる。2は軽い警告をリストする。 hide-version: NSDがCHAOSクラスの問い合わせにヴァージョンを応答しないようにする。 ゾーンオプション 全てのゾーンのために、オプションは1つのzone:で指定される必要がある。アクセスコントロールリ スト要素は複数のサーバを追加するために、複数与えることができる。 name: ゾーンの名前。これはゾーンのapexのドメイン名である。「.」で終わってもよい。例えば 、「example.com」、「sub.example.net.」。この属性はゾーン毎に指定しなければ 「ならない(must)。 zonefile: ゾーン情報を含むファイルである。このファイルはzonec(8)に利用される。この属性はゾ ーン毎に指定しなければならない(must)。 allow-notify: アクセスコントロールリスト。一覧にあるアドレス(プライマリ)はこのアドレス(セカンダ リ)にNotify(通知)の送信を許可する(Notify(通知)を受け付けるアドレスを指定する) 。一覧に無いかBLOCKEDに指定されたアドレスは破棄される。もし、NOKEYが指定された ら、TSIG認証を要求しない。 ip-specはIPアドレス(IPv4かIPv6)のみ、1.2.3.4/24のサブネット、1.2.3.4&255 .255.255.0、1.2.3.4-1.2.3.25の様な範囲が利用できる。ポート番号は@numberの 様に接尾辞として追加することができ、例えば、1.2.3.4@5300や1.2.3.4/24@5300の 様に書く。ip-specの中で使う/、&、@、-の前後にスペースを入れてはいけない。 request-xfr: [AXFR|UDP] アクセスコントロールリスト。一覧にあるアドレス(マスター)は更新時にAXFR/IXFRを要 求される。指定された鍵はAXFR/IXFR時に利用される。 AXFRオプションが指定されたら、サーバはIXFRによるゾーン転送を行わず、AXFRによる ゾーン転送を行う。これは、プライマリ、セカンダリ共にNSDの時に有効となる。もし、AX FRオプションが省略されたら、IXFRとAXFRの両方が利用される。 UDPオプションが指定されたら、セカンダリはIXFRにUDPを用いる。認証通知とゾーン転送 にUDPを用いる際、TSIGを配置しなければならない(should)。さもないと、カミンスキー 攻撃のような攻撃に弱くなる。UDPオプションが省略されたら、IXFRはTCPを用いて行われ る。 allow-axfr-fallback: このオプションはrequest-xfrに付随して書かれなければならない(should)。プライマ リがIXFRに対応していなければ、NSD(セカンダリ)はAXFRへのフォールバックを許可(不 許可)する。デフォルトはyes。 notify: アクセスコントロールリスト。一覧にあるアドレス(セカンダリ)はゾーンの更新を通知され る。指定された鍵はNotify(通知)い署名するために使われる。セカンダリのみの設定なら 、NSDは(自分自身の通知を受けるか、しばらくするとリフレッシュすることで)ゾーンの更 新に気付くことができる。 notify-retry: このオプションはnotifyに付随して書かれなければならない(should)。Notify(通知) を送る時、リトライの回数が設定される。 provide-xfr: アクセスコントロールリスト。自サーバから一覧にある(セカンダリ)アドレスへのゾーン転 送(AXFR)を許可する。ゾーンデータが(セカンダリ)アドレスに提供される。指定された鍵 がAXFRに利用される。一覧に無いか、BLOCKEDおアドレスには提供されず、リクエストは 破棄される。 ip-specはIPアドレス(IPv4かIPv6)のみ、1.2.3.4/24のサブネット、1.2.3.4&255 .255.255.0、1.2.3.4-1.2.3.25の様な範囲が利用できる。ポート番号は@numberの 様に接尾辞として追加することができ、例えば、1.2.3.4@5300や1.2.3.4/24@5300の 様に書く。ip-specの中で使う/、&、@、-の前後にスペースを入れてはいけない。 outgoing-interface: アクセスコントロールリスト。一覧にあるアドレスは、セカンダリの場合、ゾーン転送(AXF R)や差分転送(IXFR)に利用され、プライマリの場合、notifyに利用される。 ip-specはIPアドレス(IPv4かIPv6)のみ、1.2.3.4/24のサブネット、1.2.3.4&255 .255.255.0、1.2.3.4-1.2.3.25の様な範囲が利用できる。ポート番号は@numberの 様に接尾辞として追加することができ、例えば、1.2.3.4@5300や1.2.3.4/24@5300の 様に書く。ip-specの中で使う/、&、@、-の前後にスペースを入れてはいけない。 鍵宣言 key:はアクセスコントロールリストで利用するための鍵を定義する。以下の属性が利用できる。 name: 鍵の名前。アクセスコントロールリストでこの鍵が利用される。 algorithm: この鍵の認証アルゴリズム secret: base64エンコード共有秘密鍵。これはsecret:(とbase64 blob)を異なるファイルに置くことを可能にし、include:も同様に異なるファイルに置く ことを可能にする。この場合、異なるセキュリティポリシーを持つ、鍵と他の設定ファイル を分割することができる。 BIND9ハッカーのためのNSD設定 BIND9は独自の設定ファイルフォーマット、named.conf(5)を持ったネームサーバである 。BIND9はゾーンにMasterやSlaveを書き込む。 Slaveゾーン スレーブゾーンのために、マスターサーバは一覧化される。マスターサーバはゾーンデータを問い合わ せを受け、更新通知を待ち受けられる。NSDの場合、これら2つのプロパティはマスターアドレスを列 挙することによって、allow-notifyとrequest-xfrに別々に設定される必要がある。 BIND9の場合、追加の通知のソース(例えば、オペレータ)となるallow-notifyの提供のみが必要 で、NSDはマスターとオペレータの両方がallow-notifyを持つ必要がある。BIND9は追加の転送ソ ースを許可し、NSDではrequest-xfrとして列挙する。 以下はBIND9のSlaveゾーンの例である。 # example.orgの設定ファイル options { dnssec-enable yes; }; key tsig.example.org. { algorithm hmac-md5; secret "aaaaaabbbbbbccccccdddddd"; }; server 162.0.4.49 { keys { tsig.example.org. ; }; }; zone "example.org" { type slave; file "secondary/example.org.signed"; masters { 162.0.4.49; }; }; NSDでは、署名されたゾーンのためにDNSSECは自動的に有効化される。optionsのdnssec-enabl eは不要である。NSDでは、鍵はアクセスコントロールリストのIPアドレスと関連付けられるため、s erver{}は不要である。以下はNSDの設定ファイルの例である。 # example.orgの設定ファイル key: name: tsig.example.org. algorithm: hmac-md5 secret: "aaaaaabbbbbbccccccdddddd" zone: name: "example.org" zonefile: "secondary/example.org.signed" # the master is allowed to notify and will provide zone data. allow-notify: 162.0.4.49 NOKEY request-xfr: 162.0.4.49 tsig.example.org. このスレーブサーバに対して、通知の送信も許可されているアドレスの追加のallow-notify行を指 定することができる。 Masterゾーン BIND9のマスターゾーンの場合、スレーブサーバが一覧化される。これらのスレーブサーバは更新通 知を送信され、ゾーンデータの転送要求を許可する。NSDの場合、これら2つのプロパティは別々に設 定される必要がある。 以下はBIND9のマスターゾーンの例である。 zone "example.nl" { type master; file "example.nl"; }; NSDの場合は以下の様になる。 zone: name: "example.nl" zonefile: "example.nl" # 任意のアドレスからxfrを許可する provide-xfr: 0.0.0.0/0 NOKEY provide-xfr: ::0/0 NOKEY # to list a slave server you would in general give # provide-xfr: 1.2.3.4 tsig-key.name. # notify: 1.2.3.4 NOKEY その他 NSDはコンテンツ機能のみのDNSサーバである。これはゾーンのプライマリかセカンダリとなることを 意味し、DNSデータをDNSリゾルバやキャッシュに提供する。BIND9はコンテンツサーバとして機能す ることができ、設定オプション ファイル /var/db/nsd/nsd/db デフォルトのNSDデータベース /etc/nsd/nsd.conf デフォルトのNSD設定ファイル 以下も参照 nsd(8), nsdc(8), nsd-checkconf(8), nsd-notify(8), nsd-patch(8), nsd-xfer(8), zonec(8) 著者 NSDはNLnet LabsとRIPE NCCの合同チームによって書かれた。更なる詳細はCREDITSファイルを見て下さい。 バグ nsd.confは未発達なパーサによって解析され、エラーメッセージはポイントされない。