DNS服务器bind配置文件语法详解

2012-5-27 17:10:15 来源:网络转载 浏览:1299
bind配置文件有很多函数和参数,通过对bind配置文件语法的讲解,让我们来了解bind配置文件语法的正确配置。

acl:定义IP地址表的名字,用于访问控制等

语法:

acl
 acl-name
 {

    address_match_list
;

}

controls:宣告一个用于rndc工具控制通道

语法:

controls

 {

   [ inet ( ip_addr | * ) [ port ip_port ] allow {  address_match_list 

 }

                keys { key_list

 }; ]

   [ inet ...; ]

   [ unix path

 perm number

 owner number

 group number

 keys { key_list

 }; ]

   [ unix ...; ]

};

 

include:包含一个文件

语法:

include
 filename

;

key:定义key信息用于验证和TSIG验证

语法:

key key_id

 {

    algorithm string

;

    secret string

;

};

logging:定义bing服务的日志, channel -> categroy.

语法:

logging

 {

   [ channel

 channel_name

 {

     ( file

 path name



         [ versions

 ( number

 | unlimited

 ) ]

         [ size

 size spec

 ]

       | syslog

 syslog_facility



       | stderr



       | null

 );

     [ severity

 (critical
 | error
 | warning
 | notice
 |

                 info
 | debug
 [ level

 ] | dynamic
 ); ]

     [ print-category

 yes
 or no
; ]

     [ print-severity

 yes
 or no
; ]

     [ print-time

 yes
 or no
; ]

   }; ]

   [ category

 category_name

 {

     channel_name

 ; [ channel_name

 ; ... ]

   }; ]

   ...

};



category


 参数:

    default: 默认分类,没有分类的日志都使用这个分类的配置.

    general: 没有分类的日志都记录在此分类中.

    database: 服务器内部使用存储zone和缓存数据.

    security: 允许/拒绝的请求.

    config: 配置文件分析和处理.

    resolver: DNS解析,被dns缓存服务器进行递归查询.

    xfer-in: 接收区域传输.

    xfer-out: 发送区域传输.

    notify: NOTIFY协议.

    client: 客户端请求进程.

    unmatched: 未匹配的查询?

    network: 网络操作.

    update: 动态更新.

    update-security: 允许/拒绝更新请求.

    queries: 客户端队列日志.

    dispatch: 数据包传送日志.

    dnssec: DNSSEC和TSIG协议处理.

    lame-servers: 远端的配置错误的服务器发送的请求.

    delegation-only: NXDOMAIN的结果将被强制定义到delegation-only区域

lwres:定义named为一个轻量级的解析进程

语法:


lwres

 {

    [ listen-on { ip_addr

 [port ip_port


] ; [ ip_addr

 [port ip_port


] ; ... 
] }; 
]

    [ view view_name

; 
]

    [ search { domain_name

 ; [ domain_name

 ; ... 
] }; 
]

    [ ndots number

; 
]

};

masters:定义主域服务器列表

语法:


masters

 name

 [port ip_port


] { ( masters_list

 | ip_addr

 [port ip_port


] [key key


] ) ; [...
] };

options:设定全局配置选项和默认值

语法:


options {

    [ version version_string

; 
]

    [ hostname hostname_string

; 
]

    [ server-id server_id_string

; 
]

    [ directory path_name

; 
]

    [ key-directory path_name

; 
]

    [ named-xfer path_name

; 
]

    [ tkey-domain domainname

; 
]

    [ tkey-dhkey key_name

 key_tag

; 
]

    [ cache-file path_name

; 
]

    [ dump-file path_name

; 
]

    [ memstatistics-file path_name

; 
]

    [ pid-file path_name

; 
]

    [ statistics-file path_name

; 
]

    [ zone-statistics yes_or_no

; 
]

    [ auth-nxdomain yes_or_no

; 
]

    [ deallocate-on-exit yes_or_no

; 
]

    [ dialup dialup_option

; 
]

    [ fake-iquery yes_or_no

; 
]

    [ fetch-glue yes_or_no

; 
]

    [ flush-zones-on-shutdown yes_or_no

; 
]

    [ has-old-clients yes_or_no

; 
]

    [ host-statistics yes_or_no

; 
]

    [ host-statistics-max number

; 
]

    [ minimal-responses yes_or_no

; 
]

    [ multiple-cnames yes_or_no

; 
]

    [ notify yes_or_no

 | explicit

 | master-only

; 
]

    [ recursion yes_or_no

; 
]

    [ rfc2308-type1 yes_or_no

; 
]

    [ use-id-pool yes_or_no

; 
]

    [ maintain-ixfr-base yes_or_no

; 
]

    [ dnssec-enable yes_or_no

; 
]

    [ dnssec-validation yes_or_no

; 
]

    [ dnssec-lookaside domain

 trust-anchor domain

; 
]

    [ dnssec-must-be-secure domain yes_or_no

; 
]

    [ dnssec-accept-expired yes_or_no

; 
]

    [ forward ( only

 | first

 ); 
]

    [ forwarders { [ ip_addr

 [port ip_port


] ; ... 
] }; 
]

    [ dual-stack-servers [port ip_port


] {

        ( domain_name

 [port ip_port


] |

          ip_addr

 [port ip_port


] ) ;

        ... }; 
]

    [ check-names ( master

 | slave

 | response

 )

        ( warn

 | fail

 | ignore

 ); 
]

    [ check-mx ( warn

 | fail

 | ignore

 ); 
]

    [ check-wildcard yes_or_no

; 
]

    [ check-integrity yes_or_no

; 
]

    [ check-mx-cname ( warn

 | fail

 | ignore

 ); 
]

    [ check-srv-cname ( warn

 | fail

 | ignore

 ); 
]

    [ check-sibling yes_or_no

; 
]

    [ allow-notify { address_match_list

 }; 
]

    [ allow-query { address_match_list

 }; 
]

    [ allow-query-cache { address_match_list

 }; 
]

    [ allow-transfer { address_match_list

 }; 
]

    [ allow-recursion { address_match_list

 }; 
]

    [ allow-update { address_match_list

 }; 
]

    [ allow-update-forwarding { address_match_list

 }; 
]

    [ update-check-ksk yes_or_no

; 
]

    [ allow-v6-synthesis { address_match_list

 }; 
]

    [ blackhole { address_match_list

 }; 
]

    [ avoid-v4-udp-ports { port_list

 }; 
]

    [ avoid-v6-udp-ports { port_list

 }; 
]

    [ listen-on [ port ip_port

 
] { address_match_list

 }; 
]

    [ listen-on-v6 [ port ip_port

 
] { address_match_list

 }; 
]

    [ query-source ( ( ip4_addr

 | *

 )

        [ port ( ip_port

 | *

 ) 
] |

        [ address ( ip4_addr

 | *

 ) 
]

        [ port ( ip_port

 | *

 ) 
] ) ; 
]

    [ query-source-v6 ( ( ip6_addr

 | *

 )

        [ port ( ip_port

 | *

 ) 
] |

        [ address ( ip6_addr

 | *

 ) 
]

        [ port ( ip_port

 | *

 ) 
] ) ; 
]

    [ max-transfer-time-in number

; 
]

    [ max-transfer-time-out number

; 
]

    [ max-transfer-idle-in number

; 
]

    [ max-transfer-idle-out number

; 
]

    [ tcp-clients number

; 
]

    [ recursive-clients number

; 
]

    [ serial-query-rate number

; 
]

    [ serial-queries number

; 
]

    [ tcp-listen-queue number

; 
]

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

; 
]

    [ transfers-in  number

; 
]

    [ transfers-out number

; 
]

    [ transfers-per-ns number

; 
]

    [ transfer-source (ip4_addr

 | *
) [port ip_port


] ; 
]

    [ transfer-source-v6 (ip6_addr

 | *
) [port ip_port


] ; 
]

    [ alt-transfer-source (ip4_addr

 | *
) [port ip_port


] ; 
]

    [ alt-transfer-source-v6 (ip6_addr

 | *
) [port ip_port


] ; 
]

    [ use-alt-transfer-source yes_or_no

; 
]

    [ notify-source (ip4_addr

 | *
) [port ip_port


] ; 
]

    [ notify-source-v6 (ip6_addr

 | *
) [port ip_port


] ; 
]

    [ also-notify { ip_addr

 [port ip_port


] ; [ ip_addr

 [port ip_port


] ; ... 
] }; 
]

    [ max-ixfr-log-size number

; 
]

    [ max-journal-size size_spec

; 
]

    [ coresize size_spec

 ; 
]

    [ datasize size_spec

 ; 
]

    [ files size_spec

 ; 
]

    [ stacksize size_spec

 ; 
]

    [ cleaning-interval number

; 
]

    [ heartbeat-interval number

; 
]

    [ interface-interval number

; 
]

    [ statistics-interval number

; 
]

    [ topology { address_match_list

 }
];

    [ sortlist { address_match_list

 }
];

    [ rrset-order { order_spec

 ; [ order_spec

 ; ... 
] 
] };

    [ lame-ttl number

; 
]

    [ max-ncache-ttl number

; 
]

    [ max-cache-ttl number

; 
]

    [ sig-validity-interval number

 ; 
]

    [ min-roots number

; 
]

    [ use-ixfr yes_or_no

 ; 
]

    [ provide-ixfr yes_or_no

; 
]

    [ request-ixfr yes_or_no

; 
]

    [ treat-cr-as-space yes_or_no

 ; 
]

    [ min-refresh-time number

 ; 
]

    [ max-refresh-time number

 ; 
]

    [ min-retry-time number

 ; 
]

    [ max-retry-time number

 ; 
]

    [ port ip_port

; 
]

    [ additional-from-auth yes_or_no

 ; 
]

    [ additional-from-cache yes_or_no

 ; 
]

    [ random-device path_name

 ; 
]

    [ max-cache-size size_spec

 ; 
]

    [ match-mapped-addresses yes_or_no

; 
]

    [ preferred-glue ( A

 | AAAA

 | NONE

 ); 
]

    [ edns-udp-size number

; 
]

    [ max-udp-size number

; 
]

    [ root-delegation-only [ exclude { namelist

 } 
] ; 
]

    [ querylog yes_or_no

 ; 
]

    [ disable-algorithms domain

 { algorithm

; [ algorithm

; 
] }; 
]

    [ acache-enable yes_or_no

 ; 
]

    [ acache-cleaning-interval number

; 
]

    [ max-acache-size size_spec

 ; 
]

    [ clients-per-query number

 ; 
]

    [ max-clients-per-query number

 ; 
]

    [ masterfile-format (text
|raw
) ; 
]

    [ empty-server name

 ; 
]

    [ empty-contact name

 ; 
]

    [ empty-zones-enable yes_or_no

 ; 
]

    [ disable-empty-zone zone_name

 ; 
]

    [ zero-no-soa-ttl yes_or_no

 ; 
]

    [ zero-no-soa-ttl-cache yes_or_no

 ; 
]

};



参数(Options):


directory: 服务器的工作目录.

key-directory: 保存密钥的目录.

named-xfer: 已经废弃,bind 8中定义named-xfer命令的路径.

tkey-domain: ...

tkey-dhkey: dhkey用于服务器生成dh模式的客户端共享的tkey,服务器必须加载公钥和私钥从工作目录的文件中.

cache-file: 仅为测试,没用.

dump-file: 当执行rndc dumpdb时服务器dump文件的路径.

memstatistics-file: 默认为named.memestats,当退出的服务的时候将服务器的统计信息写到文件中.

pid-file: 服务器记录进程ID的文件路径.

statictics-file: 执行rndc stats将服务器的统计信息写入文件,默认为named.stats

port: 服务器用于DNS协议的UDP/TCP端口号,默认为53.

random-device: entropy(平均信息量?)主要用于DNSSEC操作,像tkey传输,签署域的动态更新,默认为/dev/random,这个选项主要用于当服务器启动的时候初始化配置,reload将忽略这个选项.

preferred-glue: 优先胶? 优先相应的type list

root-delegation-only: 在根区域打开delegation-only的强制解析,并对exclude列表中的根域排除强制解析.

disable-algorithms: 对域禁用特定的DNSSEC算法,可以用多个,

dnssec-lookaside: 当设置dnssec-lookaside,它为验证器提供另外一个能在网络区域的顶层验证DNSKEY的方法.

dnssec-must-be-secure: 


指定验证等级,如果选yes,named只接收安全的回应,如果选no,一般的dnssec验证将允许接收不安全的回应.



Boolean 参数:


auth-nxdomain: 如果选yes,AA字节一直设置为NXDOMAIN的回复,即使服务器不是真正可信赖的.默认为no,这是个从bind8后的改变,如果使用老的DNS软件,需要设置为yes.

deallocate-on-exit: 用于bind8在退出的时候进行内存泄露检测,bind9忽略此项,始终做检查.

dialup: 默认为no,是通过拨号网络的方式进行域传输,通常在每个heartbeat-interval执行,通常会抑制一些网络维护流量,一般的notify设置不受影响.

dialup modenormal refreshheart-beat refreshheart-beat notify
no (default)yesnono
yes noyesyes
notify yesnoyes
refresh noyesno
passive nonono
notify-passive nonoyes
fake-iquery: BIND8中模仿已经淘汰的IQUERY查询,BIND9中从不进行IQUERY模拟. fetch-glue: 选项已经废弃. flush-zone-on-shutdown: 当服务收到退出的信号,清除或者不清除未进行的域的写操作.默认为no has-old-client: 这个选项在BIND8中执行有错误,BIND9忽略. host-statistics: BIND8中保持name服务器相互作用的信息,BIND9无用. maintain-ixfr-base: 已经废弃. minimal-responses: 如果启用,产生响应的服务器只增加记录到权限和附加数据片中.此项能改善服务器性能. multiple-cname: 这个选项在BIND8中允许域名有多个违反标准的CNAME记录,从BIND9.2开始严格执行CNAME规则在主域文件和动态更新中. notify: 默认为yes,当服务器的一个域授权发生改变,将发送DNS NOTIFY信息给域NS记录的服务器列表,和一些列在also-notify选项中的服务器.如果选master-only,信息只发给主域,如果是explicit,通知只发给also-notify的列表,no不发通知. recuision: 如果为yes,一个DNS的递归查询请求,服务器将必须做所有的尝试去应答查询,如果关闭递归并且服务器不知道答案,它将回复一个参考应答.默认为yes. rfc2308-type1: BIND9已经不支持. use-id-pool: 已经废弃. zone-statistics: 如果为yes,服务器将收集所有区域的统计数据,除非从域的配置中关闭.)这些信息将进入rndc stats,会被dump到statistics-file. use-ixfr: 已经废弃. provide-ixfr: 用于主域服务器,设置为yes将进行增量传输,no将不进行增量传输,全局默认为yes. request-ixfr: 用于从域服务器,设置为yes将向主域服务器发送增量传输的请求,no将不进行增量传输,全局默认为yes, treat-cs-as-space: 用于BIND8使服务器对待/r字符像对待空格或者tab,使DOS,NT下的区域文件容易加载到UNIX系统中.BIND9忽略此项. additional-from-auth,additional-from-cache: 这个选项控制权威服务器回答查询的时候的附加数据,或者当跟随CNAME和DNAME链. match-mapped-address: ipv4映射到ipv6的地址 ixfr-from-differences: 当启用,主服务器加载一个新版本的区域或者从服务器接收到一个新版本的使用非增量传输,将进行比较新的版本和先前的版本,两个版本不同的部分记录到区域的日志,改变的将传送给从服务器作为域的增量传输. multi-master: 通常被用于一个区域有多个地址不同的主服务器,如果启用,将不记录主服务器序号小于当前序号的服务.默认为no. dnssec-enable: 是否支持DNSSEC开关,默认为yes dnssec-validation: 是否进行DNSSEC确认开关,默认为no dnssec-accept-expired: 接受验证DNSSEC签名过期的信号,默认为no querylog: 确定querylog在服务启动时候启动,如果querylog没有指定,将使用日志分类中的queries定义的参数. check-names: 用于约束主区域文件中的字符集和从网络收到的DNS应答. check-mx: 检测MX记录指向的IP地址,默认为warn,其他的参数为,fail和ignore. check-wildcard: 默认yes,检测如果为非域末端的通配符则发警告. check-integrity: 检测主区域的完整性.默认为yes,这个检测MX和SRV记录指向的地址是否存在. check-mx-cname: 如果设置check-integrity,那么fail,warn,ignore MX记录指向CNAME的检测,默认为warn. check-srv-cname: 如果设置check-integrity,那么fail,warn,ignore SRV记录指向CNAME的检测,默认为warn. check-sibling: 当执行完完整性检测,进行 兄弟? 胶? 检测,默认为yes zero-no-soa-ttl: 当返回拒绝响应的SOA查询,在授权节中设置SOA记录的TTL值为0,默认为yes. zero-no-soa-ttl-cache: 缓存一个拒绝响应的SOA记录的TTL设置为0,默认为no update-check-ksk: 默认yes.当刷新RRSIGs跟随一个UPDATE请求到一个安全的区域,检测DNSSEC RR上的KSK标记来用于刷新RRSIG,此项被忽略如果非DNSSEC RRs有或者没有KSK,默认是yes 转发(Forward): forward: 这个选项仅在转发列表不为空的情况下有作用.如果为first,将先转发再本地查询,如果为only,将只进行转发查询. forwarders: 指定转发的IP地址表,默认地址表为空. Dual-stack Servers: dual-stack-servers: 指定机器的主机名或者地址进行ipv4或者ipv6传输,如果使用主机名,服务器必须能解析名字只用于传输,如果服务器是对称的,那么daul-stack-servers没有效果,除非用于传输被在命令行中关闭. 权限控制(Access Control): allow-notify: 指定哪个服务器可以通知这个服务器,从域,当主域发生变化时.当allow-notify用于在zone中指定,将覆盖全局的选项.对从域服务器没有用.默认只有主域可以发送通知信息. allow-query: 指定哪个服务器可以进行普通DNS查询,如果在zone中指定,将覆盖全局参数,默认允许来自全部主机的查询. allow-query-cache: 指定哪个主机可以被允许从缓存中得到答案. allow-recursion: 指定哪个主机可以通过服务器进行递归查询. allow-update: 指定哪个主机可以对主域进行动态更新操作. allow-update-forwarding: 指定哪个主机可以对从域发送动态更新,并由从域转发到主域,默认为{ none; }. allow-v6-synthesis: 此参数目的是为了从AAAA到A6的地址平滑转变,从"nibble labels"到二进制标签. allow-transfer: 指定那些主机可以从服务器上接收区域传输,未指定将允许传说到所有的主机. black-hole: 指定地址列表内的地址不接受解析从或者使用一个解析查询,这些地址发出的查询不会被相应,默认为none. 接口(Interface): listen-on port 1234 { 5.6.7.8; }; 指定在地址5.6.7.8上面的1234端口提供服务,默认为53. listen-on-v6: 在ipv6地址上监听. 查询地址(Query Address): query-sources address * port *; query-sources-v6 address * port *; 如果服务器不知道答案,将查询其他的name服务器, query-source指定地址和端口用户这些查询. 区域传输(Zone Transfer): also-notify: 定义一个向在全局的地址列表的服务器发送通知信息当刷新或者加载区域的时候. max-transfer-time-in: 当区域传入运行的时间大于设定的分钟将被中断,默认为120 minutes,最大值为28天,40320 minutes. max-transfer-idle-in: 当区域传入运行处于传输等待的状态,大于设定的时间将被中断,默认为60 minutes,最大值为28天. max-transfer-time-out: 当区域传出运行的时间大于设定的时间,将被中断,默认为120 minutes,最大为28天. max-transfer-idle-out: 当区域传出运行处于传输等待的状态,大于设定时间将被中断,默认为60 minutes,最大为28天. serial-query-rate: 从服务器定期去主服务器查询区域的serial数字是否发生改变.默认为20秒. serial-queries: BIND9忽略此参数,使用serial-query-rate代替. transfer-format: 区域的传输可以使用两种不同的格式,one-answers和many-answers,one-answers传输每个记录使用一个DNS信息,many-answers近可能把资源记录打成一个包,默认为many-answers transfer-in: 设定当前同时传入的区域的最大数目,默认为10个.区域的请求超过限制将被拒绝. transfer-out: 设定当前同时传出的区域的最大数目,默认为10个,区域的传出请求超过限制将被决绝. transfer-per-ns: 设定同时进行传输的区域从给定的name服务,默认为2. transfer-source: 指定通过哪个IPV4的源地址进行域的传送. transfer-source-v6: 指定通过哪个IPV6的源地址进行域的传送. alt-transfer-source: 指定,如果transfer-source发生故障,通过哪个IPV4的源地址进行域的传松. alt-transfer-source-v6: 同上. use-alt-transfer-source: 指定是否通过alt-transfer-source进行域的传松,默认为yes,兼容BIND8. notify-source: 指定哪个本地地址,以及本地端口被用来作为发送通知信息的源.此项受限于allow-notify. notify-source-v6: 同notify-source. Bad UDP Port Lists: 使用avoid-v4-udp-ports和avoid-v6-udp-ports来指定列表中的IPV4和ipv6端口不能被用于系统指定的源端口. Operating System Resource Limits: coresize: 用于core dump的限制. datasize: 可以使用的最大的数据内存. files: 最大打开文件数,默认unlimited. stacksize: 最大使用的内存栈. Server Resource Limits: max-ixfr-log-size: BIND8兼容,相当于BIND9的max-journal-size. max-journal-size: 设定每个日志文件的最大大小.默认unlimited host-statistics-max: BIND9无效. recursive-clients: 设定最大并发进行递归查询的数量,默认为1000. tcp-clients: 服务器接受的最大并发tcp连接数,默认为100. max-cache-size: 服务器缓存最大使用的内存,字节.默认为unlimited,意味着记录只有在TTL过期后才被清除出缓存. tcp-listen-queue: 监听最深队列,默认和最小值为3. Periodic Task Intervals: cleaning-interval: 服务器清理过期的资源记录在每个设定的时间间隔.默认为60分钟,最大设定为28天,如果设定为0将不进行清理. heartbeat-interval: 当被标记为dialup的区域过了设定的时间间隔,将进行区域维护任务,默认为60分钟,合理的设置是1天,最大设置为28天,如果设置为0,将不进行区域维护任务. interface-interval: 服务器将在设定的时间间隔扫描网络接口,默认为60分钟,最大为28天,设定为0只有在配置文件重新加载的时候才进行扫描. statistics-interval: 服务器的统计信息将在设定的期间内被记录,默认为60分钟,最大28天,设置为0将不记录. Topology: topology { localhost; localnets; }; BIND9无效. Sortlist: sortlist { { localhost; localnets; }; { localnets; }; }; RRset Ordering: rrset-order { class IN type A name "host.example.com" order random; order cyclic; };
节(Tuning):

lame-ttl: 设定缓存一个lame服务器的时间,0关闭,默认600秒,最大为1800秒.

max-ncache-ttl: 为了减少网络流量和提升性能,服务器记录不正确的回答得时间,默认为10800秒,不能超过7天.

max-cache-ttl: 设定服务器存储普通应答的最大缓存时间,默认为7天.

min-roots: BIND9无效.

sig-validity-interval: 设定DNSSEC自动生成动态更新的过期时间.默认为30天,最长10年.

min-refresh-time,max-refresh-time,min-retry-time,max-retry-time: 这些选项控制服务器的运转,当刷新一个区域或者重试失败的传输.

edns-udp-size: 这个参数设定发出的EDNS UDP包的大小,有效地值是512-4096之间,默认为4096bytes.

max-udp-size: 设定最大的EDNS信息的大小,有效地值是512-4096之间,默认为4096bytes.

masterfile-format: 指定区域文件的格式,默认为text.

clients-per-query,max-clients-per-query: 设定初始和最大数量服务器接受的客户端并发的递归查询,



服务器内建信息:

version: 版本

hostname: 主机名

server-id: 服务器ID



内建空域:

empty-server: 指定哪个服务器名将出现在返回的空域中的SOA记录,如果没指定,将使用区域的名字.

empty-contact: 指定哪个联系信息将出现在返回的空域的SOA记录中.如果没指定,将使用".".

empty-zones-enable: 打开或者关闭空的区域,默认为开启.

disable-empty-zone: 关闭单独的空地区域,默认关闭,此参数可指定多次.



额外的Cache参数:

acache-enable: 是否打开额外的cache参数.

acache-cleaning-interval: 服务器将删除过期的缓存进入,基于LRU based algorithm,每个设定的间隔时间,默认为60分钟,设置成0则不清除.

max-acache-size: 设定acache使用的最大的内存大小.

servers:对特定的服务器设置参数

语法:

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

 | *

 ) 
]; 
]

};

trusted_keys:设置可信任的DNSSEC key

语法:

trusted-keys {

    string

 number

 number

 number

 string

 ;

    [ string

 number

 number

 number

 string

 ; [...
]
]

};

view:定义一个视图

view view_name



      [class


] {

      match-clients { address_match_list

 };

      match-destinations { address_match_list

 };

      match-recursive-only yes_or_no

 ;

      [ view_option

; ...
]

      [ zone_statement

; ...
]

};

zone:定义一个区域

zone zone_name

 [class


] {

    type master;

    [ allow-query { address_match_list

 }; 
]

    [ allow-transfer { address_match_list

 }; 
]

    [ allow-update { address_match_list

 }; 
]

    [ update-policy { update_policy_rule

 [...
] }; 
]

    [ also-notify { ip_addr

 [port ip_port


] ; [ ip_addr

 [port ip_port


] ; ... 
] }; 
]

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

    [ check-mx (warn
|fail
|ignore
) ; 
]

    [ check-wildcard yes_or_no

; 
]

    [ check-integrity yes_or_no

 ; 
]

    [ dialup dialup_option

 ; 
]

    [ file string

 ; 
]

    [ masterfile-format (text
|raw
) ; 
]

    [ journal string

 ; 
]

    [ forward (only
|first
) ; 
]

    [ forwarders { [ ip_addr

 [port ip_port


] ; ... 
] }; 
]

    [ ixfr-base string

 ; 
]

    [ ixfr-tmp-file string

 ; 
]

    [ maintain-ixfr-base yes_or_no

 ; 
]

    [ max-ixfr-log-size number

 ; 
]

    [ max-transfer-idle-out number

 ; 
]

    [ max-transfer-time-out number

 ; 
]

    [ notify yes_or_no

 | explicit

 | master-only

 ; 
]

    [ pubkey number

 number

 number

 string

 ; 
]

    [ notify-source (ip4_addr

 | *
) [port ip_port


] ; 
]

    [ notify-source-v6 (ip6_addr

 | *
) [port ip_port


] ; 
]

    [ zone-statistics yes_or_no

 ; 
]

    [ sig-validity-interval number

 ; 
]

    [ database string

 ; 
]

    [ min-refresh-time number

 ; 
]

    [ max-refresh-time number

 ; 
]

    [ min-retry-time number

 ; 
]

    [ max-retry-time number

 ; 
]

    [ key-directory path_name

; 
]

    [ zero-no-soa-ttl yes_or_no

 ; 
]

};



zone zone_name

 [class


] {

    type slave;

    [ allow-notify { address_match_list

 }; 
]

    [ allow-query { address_match_list

 }; 
]

    [ allow-transfer { address_match_list

 }; 
]

    [ allow-update-forwarding { address_match_list

 }; 
]

    [ update-check-ksk yes_or_no

; 
]

    [ also-notify { ip_addr

 [port ip_port


] ; [ ip_addr

 [port ip_port


] ; ... 
] }; 
]

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

    [ dialup dialup_option

 ; 
]

    [ file string

 ; 
]

    [ masterfile-format (text
|raw
) ; 
]

    [ journal string

 ; 
]

    [ forward (only
|first
) ; 
]

    [ forwarders { [ ip_addr

 [port ip_port


] ; ... 
] }; 
]

    [ ixfr-base string

 ; 
]

    [ ixfr-tmp-file string

 ; 
]

    [ maintain-ixfr-base yes_or_no

 ; 
]

    [ masters [port ip_port


] { ( masters_list

 | ip_addr

 [port ip_port


] [key key


] ) ; [...
] }; 
]

    [ max-ixfr-log-size number

 ; 
]

    [ max-transfer-idle-in number

 ; 
]

    [ max-transfer-idle-out number

 ; 
]

    [ max-transfer-time-in number

 ; 
]

    [ max-transfer-time-out number

 ; 
]

    [ notify yes_or_no

 | explicit

 | master-only

 ; 
]

    [ pubkey number

 number

 number

 string

 ; 
]

    [ transfer-source (ip4_addr

 | *
) [port ip_port


] ; 
]

    [ transfer-source-v6 (ip6_addr

 | *
) [port ip_port


] ; 
]

    [ alt-transfer-source (ip4_addr

 | *
) [port ip_port


] ; 
]

    [ alt-transfer-source-v6 (ip6_addr

 | *
) [port ip_port


] ; 
]

    [ use-alt-transfer-source yes_or_no

; 
]

    [ notify-source (ip4_addr

 | *
) [port ip_port


] ; 
]

    [ notify-source-v6 (ip6_addr

 | *
) [port ip_port


] ; 
]

    [ zone-statistics yes_or_no

 ; 
]

    [ database string

 ; 
]

    [ min-refresh-time number

 ; 
]

    [ max-refresh-time number

 ; 
]

    [ min-retry-time number

 ; 
]

    [ max-retry-time number

 ; 
]

    [ multi-master yes_or_no

 ; 
]

    [ zero-no-soa-ttl yes_or_no

 ; 
]

};



zone zone_name

 [class


] {

    type hint;

    file string

 ;

    [ delegation-only yes_or_no

 ; 
]

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

};



zone zone_name

 [class


] {

    type stub;

    [ allow-query { address_match_list

 }; 
]

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

    [ dialup dialup_option

 ; 
]

    [ delegation-only yes_or_no

 ; 
]

    [ file string

 ; 
]

    [ masterfile-format (text
|raw
) ; 
]

    [ forward (only
|first
) ; 
]

    [ forwarders { [ ip_addr

 [port ip_port


] ; ... 
] }; 
]

    [ masters [port ip_port


] { ( masters_list

 | ip_addr

 [port ip_port


] [key key


] ) ; [...
] }; 
]

    [ max-transfer-idle-in number

 ; 
]

    [ max-transfer-time-in number

 ; 
]

    [ pubkey number

 number

 number

 string

 ; 
]

    [ transfer-source (ip4_addr

 | *
) [port ip_port


] ; 
]

    [ transfer-source-v6 (ip6_addr

 | *
) [port ip_port


] ; 
]

    [ alt-transfer-source (ip4_addr

 | *
) [port ip_port


] ; 
]

    [ alt-transfer-source-v6 (ip6_addr

 | *
) [port ip_port


] ; 
]

    [ use-alt-transfer-source yes_or_no

; 
]

    [ zone-statistics yes_or_no

 ; 
]

    [ database string

 ; 
]

    [ min-refresh-time number

 ; 
]

    [ max-refresh-time number

 ; 
]

    [ min-retry-time number

 ; 
]

    [ max-retry-time number

 ; 
]

    [ multi-master yes_or_no

 ; 
]

};



zone zone_name

 [class


] {

    type forward;

    [ forward (only
|first
) ; 
]

    [ forwarders { [ ip_addr

 [port ip_port


] ; ... 
] }; 
]

    [ delegation-only yes_or_no

 ; 
]

};



zone zone_name

 [class


] {

    type delegation-only;

};



区域Type:

master: 主域服务

slave: 从域服务

stub: 只复制主域的NS记录,属于BIND特有功能.

hint: 设定初始化设置根域服务器所用的参数.

forward: 域转发设置

delegation-only: 设定返回为NXDOMAIN?
(0)
(0)