系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)

named.conf 选项

以下列表比较了 BIND 8 和 BIND 9 的 named.conf 选项。还提供了更改的简短说明。“更改”列中的 OK 表示选项在 BIND 9 版本的 named 中工作方式不变。

选项 { 

更改 

[ version version_string; ] 

OK 

[ directory path_name; ] 

OK 

[ named-xfer path_name; ] 

过时 [由于体系结构差别而过时。]

[ dump-file path_name; ] 

OK 

[ memstatistics-file path_name; ] 

未实现 

[ pid-file path_name; ] 

OK 

[ statistics-file path_name; ] 

OK 

[ auth-nxdomain yes_or_no; ] 

OK [BIND 8 中缺省设置为 yes,而 BIND 9 中缺省设置为 no。]

[ dialup yes_or_no; 

OK 

[ fake-iquery yes_or_no; ] 

过时 

[ fetch-glue yes_or_no; ] 

过时 

[ has-old-clients yes_or_no; ] 

过时 

[ host-statistics yes_or_no; ] 

未实现 

[ host-statistics-max number; ] 

未实现 

[ multiple-cnames yes_or_no; ] 

过时 

[ notify yes_or_no | explicit; ] 

OK 

[ recursion yes_or_no; ] 

OK 

[ rfc2308-type1 yes_or_no; ] 

未实现 

[ use-id-pool yes_or_no; ] 

过时 

[ treat-cr-as-space yes_or_no; ] 

过时 

[ also-notify yes_or_no; ] 

语法已更改 [选择 yes 时,需要一个 IP 地址。]

[ forward ( only | first ); ] 

OK [如果不指定转发器,此选项将不工作;在此情况下,会产生 no matching 'forwarders' statement 错误。]

[ forwarders { [ in_addr ; \ 

[ in_addr ; ... ] ] }; ] 

 

OK [请参见 [ forward ] 子句。]

[ check-names ( master | slave | \ 

response ) ( warn | fail | ignore); ] 

未实现 

[ allow-query { address_match_list }; ] 

OK 

[ allow-recursion { address_match_list }; ] 

OK 

[ allow-transfer { address_match_list }; ] 

OK 

[ blackhole { address_match_list }; ] 

OK 

[ listen-on [ port ip_port ] \ 

{ address_match_list }; ] 

 

OK 

[ query-source [ address ( ip_addr | * ) ] \ 

OK 

[ port ( ip_port | * ) ] ; ] 

[ lame-ttl number; ] 

 

OK 

[ max-transfer-time-in number; ] 

OK 

[ max-ncache-ttl number; ] 

OK 

[ min-roots number; ] 

未实现 

[ transfer-format ( one-answer | \ 

many-answers ); ] 

 

OK [BIND 8 中缺省设置为 one-answer,而 BIND 9 中缺省设置为 many-answers。]

[ transfers-in number; ] 

OK 

[ transfers-out number; ] 

OK 

[ transfers-per-ns number; ] 

OK 

[ transfer-source ip_addr; ] 

OK 

[ maintain-ixfr-base yes_or_no; ] 

过时 

[ max-ixfr-log-size number; ] 

过时 [不需要此选项,因为 BIND 9 会自动剪裁其日志文件的大小。]

[ coresize size_spec ; ] 

OK 

[ datasize size_spec ; ] 

OK 

[ files size_spec ; ] 

OK 

[ stacksize size_spec ; ] 

OK 

[ cleaning-interval number; ] 

OK 

[ heartbeat-interval number; ] 

OK 

[ interface-interval number; ] 

OK 

[ statistics-interval number; ] 

未实现 

[ topology { address_match_list }; ] 

未实现 

[ sortlist { address_match_list }; ] 

OK 

[ rrset-order { order_spec ; \ 

[ order_spec ; ... ] }; ] 

 

未实现 

}; 

 

BIND 9 中的语句

本节介绍 BIND 8 语句与 BIND 9 语句之间的所有差别。

Controls 语句

unixndc 的缺省设置,并且编译了所有参数。inetrndc 唯一的选项,并且未编译任何内容。


  Syntax

     controls {

       [ inet ip_addr

         port ip_port

         allow { address_match_list; }; ]	OK

       [ unix path_name

         perm number

         owner number

         group number; ]			Not Implemented

     };

日志语法发生了显著更改。有关 named.conf 选项的列表,请参见named.conf 选项

Zone 语句

BIND 8 named.conf 手册页中用于区域语句的语法大部分在 BIND 9 中都受支持,以下语法除外:


  [ pubkey number number number string; ]	Obsolete

  [ check-names ( warn | fail | ignore ); ]	Not Implemented

ACL 语句

该语句在 BIND 9 中的工作方式未更改。


  Syntax

     acl name {

       address_match_list

     };

Key 语句

该语句在 BIND 9 中的工作方式未更改。


  Syntax

     key key_id {

       algorithm algorithm_id;

       secret secret_string;

     };

Trusted-Keys 语句

工作方式未更改,但使用此语句的代码在 BIND 9.2.4 中已被禁用。


  Syntax

     trusted-keys {

       [ domain_name flags protocol algorithm key; ]

     };

Server 语句

support-ixfr 已过时,但以下所有选项在 BIND 9 中的工作方式未更改。请注意,transfer-format 的缺省设置已更改。


  Syntax

     server ip_addr {

       [ bogus yes_or_no; ]

       [ transfers number; ]

       [ transfer-format ( one-answer | many-answers ); ]

       [ keys { key_id [ key_id ... ] }; ]

       [ edns yes_or_no; ]

     };

Include 语句

该语句在 BIND 9 中的工作方式未更改。


  Syntax

     include path_name;

named.conf 选项摘要

BIND 9.2.4 不包括详细的 named.conf 手册页。下面是 BIND 9.2.4 支持的 named.conf 选项的摘要。


options  {

        blackhole { <address_match_element>; ... };

        coresize <size>;

        datasize <size>;

        deallocate-on-exit <boolean>; // obsolete

        directory <quoted_string>;

        dump-file <quoted_string>;

        fake-iquery <boolean>; // obsolete

        files <size>;

        has-old-clients <boolean>; // obsolete

        heartbeat-interval <integer>;

        host-statistics <boolean>; // not implemented

        host-statistics-max <integer>; // not implemented

        interface-interval <integer>;

        listen-on [ port <integer> ] { <address_match_element>; ... };

        listen-on-v6 [ port <integer> ] { <address_match_element>; ... };

        match-mapped-addresses <boolean>;

        memstatistics-file <quoted_string>; // not implemented

        multiple-cnames <boolean>; // obsolete

        named-xfer <quoted_string>; // obsolete

        pid-file <quoted_string>;

        port <integer>;

        random-device <quoted_string>;

        recursive-clients <integer>;

        rrset-order { [ class <string> ] [ type <string> ] [ name

            <quoted_string> ] <string> <string>; ... }; // not implemented

        serial-queries <integer>; // obsolete

        serial-query-rate <integer>;

        stacksize <size>;

        statistics-file <quoted_string>;

        statistics-interval <integer>; // not yet implemented

        tcp-clients <integer>;

        tkey-dhkey <quoted_string> <integer>;

        tkey-gssapi-credential <quoted_string>;

        tkey-domain <quoted_string>;

        transfers-per-ns <integer>;

        transfers-in <integer>;

        transfers-out <integer>;

        treat-cr-as-space <boolean>; // obsolete

        use-id-pool <boolean>; // obsolete

        use-ixfr <boolean>;

        version <quoted_string>;

        allow-recursion { <address_match_element>; ... };

        allow-v6-synthesis { <address_match_element>; ... };

        sortlist { <address_match_element>; ... };

        topology { <address_match_element>; ... }; // not implemented

        auth-nxdomain <boolean>; // default changed

        minimal-responses <boolean>;

        recursion <boolean>;

        provide-ixfr <boolean>;

        request-ixfr <boolean>;

        fetch-glue <boolean>; // obsolete

        rfc2308-type1 <boolean>; // not yet implemented

        additional-from-auth <boolean>;

        additional-from-cache <boolean>;

        query-source <querysource4>;

        query-source-v6 <querysource6>;

        cleaning-interval <integer>;

        min-roots <integer>; // not implemented

        lame-ttl <integer>;

        max-ncache-ttl <integer>;

        max-cache-ttl <integer>;

        transfer-format ( many-answers | one-answer );

        max-cache-size <size_no_default>;

        check-names <string> <string>; // not implemented

        cache-file <quoted_string>;

        allow-query { <address_match_element>; ... };

        allow-transfer { <address_match_element>; ... };

        allow-update-forwarding { <address_match_element>; ... };

        allow-notify { <address_match_element>; ... };

        notify <notifytype>;

        notify-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];

        notify-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];

        also-notify [ port <integer> ] { ( <ipv4_address> | <ipv6_address>

            ) [ port <integer> ]; ... };

        dialup <dialuptype>;

        forward ( first | only );

        forwarders [ port <integer> ] { ( <ipv4_address> | <ipv6_address> )

            [ port <integer> ]; ... };

        maintain-ixfr-base <boolean>; // obsolete

        max-ixfr-log-size <size>; // obsolete

        transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];

        transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];

        max-transfer-time-in <integer>;

        max-transfer-time-out <integer>;

        max-transfer-idle-in <integer>;

        max-transfer-idle-out <integer>;

        max-retry-time <integer>;

        min-retry-time <integer>;

        max-refresh-time <integer>;

        min-refresh-time <integer>;

        sig-validity-interval <integer>;

        zone-statistics <boolean>;

};



controls {

        inet ( <ipv4_address> | <ipv6_address> | * ) [ port ( <integer> | *

            ) ] allow { <address_match_element>; ... } [ keys { <string>; ... } ];

        unix <unsupported>; // not implemented

};



acl <string> { <address_match_element>; ... };



logging {

        channel <string> {

                file <logfile>;

                syslog <optional_facility>;

                null;

                stderr;

                severity <logseverity>;

                print-time <boolean>;

                print-severity <boolean>;

                print-category <boolean>;

        };

        category <string> { <string>; ... };

};



view <string> <optional_class> {

        match-clients { <address_match_element>; ... };

        match-destinations { <address_match_element>; ... };

        match-recursive-only <boolean>;

        key <string> {

                algorithm <string>;

                secret <string>;

        };

        zone <string> <optional_class> {

                type ( master | slave | stub | hint | forward );

                allow-update { <address_match_element>; ... };

                file <quoted_string>;

                ixfr-base <quoted_string>; // obsolete

                ixfr-tmp-file <quoted_string>; // obsolete

                masters [ port <integer> ] { ( <ipv4_address> |

                    <ipv6_address> ) [ port <integer> ] [ key <string> ]; ... };

                pubkey <integer> <integer> <integer> <quoted_string>; //

                    obsolete

                update-policy { ( grant | deny ) <string> ( name |

                    subdomain | wildcard | self ) <string> <rrtypelist>; ... };

                database <string>;

                check-names <string>; // not implemented

                allow-query { <address_match_element>; ... };

                allow-transfer { <address_match_element>; ... };

                allow-update-forwarding { <address_match_element>; ... };

                allow-notify { <address_match_element>; ... };

                notify <notifytype>;

                notify-source ( <ipv4_address> | * ) [ port ( <integer> | *

                    ) ];

                notify-source-v6 ( <ipv6_address> | * ) [ port ( <integer>

                    | * ) ];

                also-notify [ port <integer> ] { ( <ipv4_address> |

                    <ipv6_address> ) [ port <integer> ]; ... };

                dialup <dialuptype>;

                forward ( first | only );

                forwarders [ port <integer> ] { ( <ipv4_address> |

                    <ipv6_address> ) [ port <integer> ]; ... };

                maintain-ixfr-base <boolean>; // obsolete

                max-ixfr-log-size <size>; // obsolete

                transfer-source ( <ipv4_address> | * ) [ port ( <integer> |

                    * ) ];

                transfer-source-v6 ( <ipv6_address> | * ) [ port (

                    <integer> | * ) ];

                max-transfer-time-in <integer>;

                max-transfer-time-out <integer>;

                max-transfer-idle-in <integer>;

                max-transfer-idle-out <integer>;

                max-retry-time <integer>;

                min-retry-time <integer>;

                max-refresh-time <integer>;

                min-refresh-time <integer>;

                sig-validity-interval <integer>;

                zone-statistics <boolean>;

        };

        server {

                bogus <boolean>;

                provide-ixfr <boolean>;

                request-ixfr <boolean>;

                support-ixfr <boolean>; // obsolete

                transfers <integer>;

                transfer-format ( many-answers | one-answer );

                keys <server_key>;

                edns <boolean>;

        };

        trusted-keys { <string> <integer> <integer> <integer>

            <quoted_string>; ... };

        allow-recursion { <address_match_element>; ... };

        allow-v6-synthesis { <address_match_element>; ... };

        sortlist { <address_match_element>; ... };

        topology { <address_match_element>; ... }; // not implemented

        auth-nxdomain <boolean>; // default changed

        minimal-responses <boolean>;

        recursion <boolean>;

        provide-ixfr <boolean>;

        request-ixfr <boolean>;

        fetch-glue <boolean>; // obsolete

        rfc2308-type1 <boolean>; // not yet implemented

        additional-from-auth <boolean>;

        additional-from-cache <boolean>;

        query-source <querysource4>;

        query-source-v6 <querysource6>;

        cleaning-interval <integer>;

        min-roots <integer>; // not implemented

        lame-ttl <integer>;

        max-ncache-ttl <integer>;

        max-cache-ttl <integer>;

        transfer-format ( many-answers | one-answer );

        max-cache-size <size_no_default>;

        check-names <string> <string>; // not implemented

        cache-file <quoted_string>;

        allow-query { <address_match_element>; ... };

        allow-transfer { <address_match_element>; ... };

        allow-update-forwarding { <address_match_element>; ... };

        allow-notify { <address_match_element>; ... };

        notify <notifytype>;

        notify-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];

        notify-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];

        also-notify [ port <integer> ] { ( <ipv4_address> | <ipv6_address>

            ) [ port <integer> ]; ... };

        dialup <dialuptype>;

        forward ( first | only );

        forwarders [ port <integer> ] { ( <ipv4_address> | <ipv6_address> )

            [ port <integer> ]; ... };

        maintain-ixfr-base <boolean>; // obsolete

        max-ixfr-log-size <size>; // obsolete

        transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];

        transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];

        max-transfer-time-in <integer>;

        max-transfer-time-out <integer>;

        max-transfer-idle-in <integer>;

        max-transfer-idle-out <integer>;

        max-retry-time <integer>;

        min-retry-time <integer>;

        max-refresh-time <integer>;

        min-refresh-time <integer>;

        sig-validity-interval <integer>;

        zone-statistics <boolean>;

};



lwres {

        listen-on [ port <integer> ] { ( <ipv4_address> | <ipv6_address> )

            [ port <integer> ]; ... };

        view <string> <optional_class>;

        search { <string>; ... };

        ndots <integer>;

};



key <string> {

        algorithm <string>;

        secret <string>;

};



zone <string> <optional_class> {

        type ( master | slave | stub | hint | forward );

        allow-update { <address_match_element>; ... };

        file <quoted_string>;

        ixfr-base <quoted_string>; // obsolete

        ixfr-tmp-file <quoted_string>; // obsolete

        masters [ port <integer> ] { ( <ipv4_address> | <ipv6_address> ) [

            port <integer> ] [ key <string> ]; ... };

        pubkey <integer> <integer> <integer> <quoted_string>; // obsolete

        update-policy { ( grant | deny ) <string> ( name | subdomain |

            wildcard | self ) <string> <rrtypelist>; ... };

        database <string>;

        check-names <string>; // not implemented

        allow-query { <address_match_element>; ... };

        allow-transfer { <address_match_element>; ... };

        allow-update-forwarding { <address_match_element>; ... };

        allow-notify { <address_match_element>; ... };

        notify <notifytype>;

        notify-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];

        notify-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];

        also-notify [ port <integer> ] { ( <ipv4_address> | <ipv6_address>

            ) [ port <integer> ]; ... };

        dialup <dialuptype>;

        forward ( first | only );

        forwarders [ port <integer> ] { ( <ipv4_address> | <ipv6_address> )

            [ port <integer> ]; ... };

        maintain-ixfr-base <boolean>; // obsolete

        max-ixfr-log-size <size>; // obsolete

        transfer-source ( <ipv4_address> | * ) [ port ( <integer> | * ) ];

        transfer-source-v6 ( <ipv6_address> | * ) [ port ( <integer> | * ) ];

        max-transfer-time-in <integer>;

        max-transfer-time-out <integer>;

        max-transfer-idle-in <integer>;

        max-transfer-idle-out <integer>;

        max-retry-time <integer>;

        min-retry-time <integer>;

        max-refresh-time <integer>;

        min-refresh-time <integer>;

        sig-validity-interval <integer>;

        zone-statistics <boolean>;

};



server {

        bogus <boolean>;

        provide-ixfr <boolean>;

        request-ixfr <boolean>;

        support-ixfr <boolean>; // obsolete

        transfers <integer>;

        transfer-format ( many-answers | one-answer );

        keys <server_key>;

        edns <boolean>;

};



trusted-keys { <string> <integer> <integer> <integer> <quoted_string>; ... };