server

serverについて

server ip_addr[/prefixlen] {
    [ bogus yes_or_no ; ]
    [ provide-ixfr yes_or_no ; ]
    [ request-ixfr yes_or_no ; ]
    [ edns yes_or_no ; ]
    [ edns-udp-size number ; ]
    [ max-udp-size number ; ]
    [ transfers number ; ]
    [ transfer-format ( one-answer | many-answers ) ; ]]
    [ keys { string ; [ string ; [...]] } ; ]
    [ transfer-source (ip4_addr | *) [port ip_port] ; ]
    [ transfer-source-v6 (ip6_addr | *) [port ip_port] ; ]
    [ notify-source (ip4_addr | *) [port ip_port] ; ]
    [ notify-source-v6 (ip6_addr | *) [port ip_port] ; ]
    [ query-source [ address ( ip_addr | * ) ]
    [ port ( ip_port | * ) ]; ]
    [ query-source-v6 [ address ( ip_addr | * ) ]
    [ port ( ip_port | * ) ]; ]
    [ use-queryport-pool yes_or_no; ]
    [ queryport-pool-ports number; ]
    [ queryport-pool-updateinterval number; ]
};

 

server設定では外部のネームサーバの設定を行う。(ネームサーバのレンジ指定も可能)named.conf中の順番ではなく最もたくさん指定されたサーバのみが適用される。

serverはnamed.confの先頭、またはviewの中で設定される。named.confの先頭のserver設定がデフォルト設定として扱われ、viewの中にserverを設定するとトップに記載した設定は無視される。serverの応答に不備があると追加クエリを送らないように偽物としてマークされる。

 

provide-ixfr

provide-ixfr設定は、あるzoneのマスターとして動作しているローカルサーバが更新されたzoneの差分のみを転送するようになる。yesが設定されると、zoneの差分が転送される。

noが設定されると差分送信でなく全zone情報が転送される。provide-ixfrが設定されていないとviewかグローバルの設定値がデフォルトとして利用される。

 

request-ixfr

request-ixfr設定は、あるzoneのスレーブとして設定されたローカルサーバが更新されたzoneの差分のみを転送するようにzoneマスターにリクエストする。設定がなければviewかグローバルの設定値がデフォルトとして利用される。

IXFRリクエストをサポートしていないサーバに対するIXFRリクエストは自動的にAXFRリクエストとして解釈される。そのため、どのサーバがIXFRをサポートしているかをnamed.confに記載する必要はない。グローバルでyes設定にしていれば常に機能するようになっている。provide-ixfr と request-ixfr の目的はマスターやスレーブがIXFRをサポートしている場合でも、自サーバでIXFRを許可するかどうかをコントロールすることができるようにするため。例えば、仮にIXFRを使った場合に上手く動作しない場合、IXFRをOFFにするような対応ができる。

 

edns

E-DNS(edns)設定はリモートサーバとの通信にE-DNSを使うかどうかを設定する。デフォルトではedns設定はyesになっている。

 

edns-udp-size

edns-udp-sizeリモートサーバへクエリ送信時にE-DNS通信時のUDPサイズを通知する。有効な数値としては 512~4096 bytes。(この範囲外のものは自動で修正される)このオプションはサーバ単位で異なるUDPサイズを指定したいときに有効。例えば大きなパケットを通さない設定のファイヤウォールなどがある場合にはこの設定で小さい値を設定すればいい。

 

max-udp-size

max-udp-size設定はE-DNS中のメッセージの最大値を指定する。有効な数値としては 512~4096 bytes。(この範囲外のものは自動で修正される)ファイヤウォールのパケットサイズ制限が明確にわかっているときには便利。

 

transfer-format

DNSサーバは2種類のゾーン転送方式をサポートしている。1個目は one-answer。1個のメッセージ中に1個のリソースレコードが含まれる。2個目は many-answer。可能な範囲で複数のリソースレコードが1メッセージに含まれる。many-answerの方が効率が良いが、Bind9、Bind8、パッチを当てたBind4.9.5でしか利用できない。transer-formatの設定でどちらを使うかを設定する。

 

transfers

transfers設定はゾーン転送をいくつまで並列で行うかを設定する。transfersが設定されていない場合には transfers-per-ns設定に従う。

 

keys

keys設定はサーバ間通信のセキュリティのためのTSIG設定のkeyを指定する。リモートサーバにリクエストを送る時に、このkeysで設定したキーで署名される。keys設定では複数のキーを記載することができるが、1個のサーバに対して1個のキーしか現在はサポートされていない。

 

transfer-source, transfer-source-v6

transfer-source(-v6)設定は、zone転送時のソースIPアドレスを設定する。リモートサーバがIPv4の場合には transfer-source のみが有効。同じように、リモートサーバがIPv6の場合には transfer-source-v6 のみが有効。

notify-source, notify-source-v6

notify-source(-v6)設定はnotify送信時のソースIPアドレスを設定する。リモートサーバがIPv4の場合には notify-source のみが有効。同じように、リモートサーバがIPv6の場合には notify-source-v6 のみが有効。

query-source, query-source-v6

query-source(-v6)設定はquery送信時のソースIPアドレスを設定する。リモートサーバがIPv4の場合には query-source のみが有効。同じように、リモートサーバがIPv6の場合には query-source-v6 のみが有効。