acl name { address_match_list; };
controls { [ inet ( ip_addr | * ) port ip_port allow address_match_list keys key_list; ] [ inet ... ; ] };
include path_name;
key key_id { algorithm algorithm_id; secret secret_string; };
logging { [ channel channel_name { ( file path_name [ versions ( number | unlimited ) ] [ size size_spec ] | syslog ( kern | user | mail | daemon | auth | syslog | lpr | news | uucp | cron | authpriv | ftp | local0 | local1 | local2 | local3 | local4 | local5 | local6 | local7 ) | 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; ... ] }; ] ... };
options { [ additional-from-auth yes_or_no; ] [ additional-from-cache yes_or_no; ] [ allow-notify { address_match_list }; ] [ allow-query { address_match_list }; ] [ allow-recursion { address_match_list }; ] [ allow-transfer { address_match_list }; ] [ also-notify { ip_addr [ port ip_port ] ; [ ip_addr [ port ip_port ] ; ... ] }; ] [ auth-nxdomain yes_or_no; ] [ blackhole { address_match_list }; ] [ cleaning-interval number; ] [ coresize size_spec; ] [ datasize size_spec; ] [ dialup yes_or_no; ] [ directory path_name; ] [ dump-file path_name; ] [ files size_spec; ] [ forward ( only | first ); ] [ forwarders { [ ip_addr ; [ ip_addr ; ... ] ] }; ] [ heartbeat-interval number; ] [ interface-interval number; ] [ lame-ttl number; ] [ listen-on [ port ip_port ] { address_match_list }; ] [ listen-on-v6 [ port ip_port ] { address_match_list }; ] [ max-cache-ttl number; ] [ max-ncache-ttl number; ] [ max-refresh-time number; ] [ max-retry-time number; ] [ max-transfer-idle-in number; ] [ max-transfer-idle-out number; ] [ max-transfer-time-in number; ] [ max-transfer-time-out number; ] [ min-refresh-time number; ] [ min-retry-time number; ] [ notify yes_or_no | explicit; ] [ notify-source ( ip_addr | * ) [ port ip_port ]; ] [ notify-source-v6 ( ip6_addr | * ) [ port ip_port ]; ] [ pid-file path_name; ] [ port ip_port; ] [ query-source [ address ( ip_addr | * ) ] [ port ( ip_port | * ) ]; ] [ query-source-v6 [ address ( ip6_addr | * ) ] [ port ( ip_port | * ) ]; ] [ recursion yes_or_no; ] [ recursive-clients number; ] [ sig-validity-interval number; ] [ sortlist { address_match_list }; ] [ stacksize size_spec; ] [ statistics-file path_name; ] [ tcp-clients number; ] [ tkey-dhkey key_name key_tag; ] [ tkey-domain domain_name; ] [ transfer-format ( one-answer | many-answers ); ] [ transfer-source ( ip_addr | * ) [ port ip_port ]; ] [ transfer-source-v6 ( ip6_addr | * ) [ port ip_port ]; ] [ transfers-in number; ] [ transfers-out number; ] [ transfers-per-ns number; ] [ version version_string; ] [ zone-statistics yes_or_no; ] };
server ip_addr { [ bogus yes_or_no; ] [ keys { key_id [ key_id ... ] }; ] [ provide-ixfr yes_or_no; ] [ request-ixfr yes_or_no; ] [ transfers number; ] [ transfer-format ( one-answer | many-answers ); ] };
trusted-keys { domain-name flags protocol_id algorithm_id public_key_string; [ domain-name flags protocol_id algorithm_id public_key_string; [ ... ] ] };
view "view_name" [ ( in | hs | hesiod | chaos ) ] { match-clients { address_match_list }; [ allow-notify { address_match_list }; ] [ allow-query { address_match_list }; ] [ allow-recursion { address_match_list }; ] [ allow-transfer { address_match_list }; ] [ also-notify { ip_addr; [ ip_addr; ... ] }; ] [ auth-nxdomain yes_or_no; ] [ cleaning-interval number; ] [ forward ( only | first ); ] [ forwarders { [ ip_addr; [ ip_addr; ... ] ] }; ] [ key ... ] [ lame-ttl number; ] [ min-refresh-time number; ] [ min-retry-time number; ] [ max-cache-ttl number; ] [ max-ncache-ttl number; ] [ max-transfer-idle-out number; ] [ max-transfer-time-out number; ] [ max-refresh-time number; ] [ max-retry-time number; ] [ notify yes_or_no | explicit; ] [ provide-ixfr yes_or_no; ] [ query-source [ address ( ip_addr | * ) ] [ port ( ip_port | * ) ]; ] [ query-source-v6 [ address ( ip6_addr | * ) ] [ port ( ip_port | * ) ]; ] [ recursion yes_or_no; ] [ request-ixfr yes_or_no; ] [ server ... ] [ sig-validity-interval number; ] [ sortlist { address_match_list }; ] [ transfer-format ( one-answer | many-answers ); ] [ transfer-source ( ip_addr | * ) [ port ip_port ]; ] [ transfer-source-v6 ( ip6_addr | * ) [ port ip_port ]; ] [ trusted-keys ... ] [ zone ... ] };
zone "domain_name" [ ( in | hs | hesiod | chaos ) ] { type master; file path_name; [ allow-notify { address_match_list }; ] [ allow-query { address_match_list }; ] [ allow-transfer { address_match_list }; ] [ allow-update { address_match_list }; ] [ allow-update-forwarding { address_match_list }; ] [ also-notify { ip_addr [ port ip_port ]; [ ip_addr [ port ip_port ]; ... ] [ database string; [ string; ... ] ] [ dialup yes_or_no | notify; ] [ forward ( only | first ); ] [ forwarders { [ ip_addr; [ ip_addr; ... ] ] }; ] [ max-refresh-time number; ] [ max-retry-time number; ] [ max-transfer-idle-out number; ] [ max-transfer-time-out number; ] [ min-refresh-time number; ] [ min-retry-time number; ] [ notify yes_or_no | explicit; ] [ sig-validity-interval number; ] [ update-policy { update_policy_rule; [ ... ] }; ] }; zone "domain_name" [ ( in | hs | hesiod | chaos ) ] { type slave; masters [ port ip_port ] { ip_addr [ port ip_port ] [ key key_id ]; [ ip_addr [ port ip_port ] [ key key_id ]; ... ] }; [ allow-query { address_match_list }; ] [ allow-transfer { address_match_list }; ] [ allow-update { address_match_list }; ] [ allow-update-forwarding { address_match_list }; ] [ also-notify { ip_addr [ port ip_port ]; [ ip_addr [ port ip_port ]; ... ] }; [ dialup yes_or_no | notify | notify-passive | refresh | passive; ] [ file path_name; ] [ forward ( only | first ); ] [ forwarders { [ ip_addr; [ ip_addr; ... ] ] }; ] [ max-refresh-time number ; ] [ max-retry-time number ; ] [ max-transfer-idle-in number; ] [ max-transfer-idle-out number; ] [ max-transfer-time-in number; ] [ max-transfer-time-out number; ] [ min-refresh-time number ; ] [ min-retry-time number ; ] [ notify yes_or_no | explicit; ] [ transfer-source ( ip_addr | * ) [ port ip_port ]; ] [ transfer-source-v6 ( ip6_addr | * ) [ port ip_port ]; ] }; zone "domain_name" [ ( in | hs | hesiod | chaos ) ] { type stub; masters [ port ip_port ] { ip_addr [ [port ip_port ] [ key key_id ]; [ ip_addr [ port ip_port ] [ key key_id ]; ... ] }; [ allow-query { address_match_list }; ] [ allow-transfer { address_match_list }; ] [ allow-update { address_match_list }; ] [ allow-update-forwarding { address_match_list }; ] [ dialup yes_or_no | passive | refresh; ] [ file path_name; ] [ forward ( only | first ); ] [ forwarders { [ ip_addr ; [ ip_addr ; ... ] ] }; ] [ max-refresh-time number ; ] [ max-retry-time number ; ] [ max-transfer-idle-in number; ] [ max-transfer-idle-out number; ] [ max-transfer-time-in number; ] [ max-transfer-time-out number; ] [ min-refresh-time number ; ] [ min-retry-time number ; ] [ transfer-source ( ip_addr | * ) [ port ip_port ]; ] [ transfer-source-v6 ( ip6_addr | * ) [ port ip_port ]; ] }; zone "domain_name" [ ( in | hs | hesiod | chaos ) ] { type forward; [ forward ( only | first ); ] [ forwarders { [ ip_addr ; [ ip_addr ; ... ] ] }; ] }; zone "." [ ( in | hs | hesiod | chaos ) ] { type hint; file path_name; };