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 のみが有効。