named.conf Constructs Reference
Complete field reference for all named.conf statement types supported by Hornet.
NamedConf
The top-level AST type.
| Field |
Type |
Description |
statements |
Vec<Statement> |
Ordered list of top-level statements |
Statement enum
| Variant |
Inner type |
Description |
Statement::Options(…) |
OptionsBlock |
Global server options |
Statement::Zone(…) |
ZoneStmt |
Zone declaration |
Statement::View(…) |
ViewStmt |
View block (split-horizon DNS) |
Statement::Acl(…) |
AclStmt |
Named address match list |
Statement::Logging(…) |
LoggingBlock |
Logging configuration |
Statement::Controls(…) |
ControlsBlock |
RNDC control channels |
Statement::Key(…) |
KeyStmt |
TSIG key |
Statement::Primaries(…) |
PrimariesStmt |
Named list of primary servers |
Statement::Server(…) |
ServerStmt |
Per-server options |
Statement::Include(…) |
String |
include "path"; |
Statement::Unknown { keyword, body } |
— |
Unrecognised block, preserved verbatim |
OptionsBlock
Global server configuration (options { … };).
| Field |
Type |
Description |
directory |
Option<String> |
Working directory for BIND9 |
dump_file |
Option<String> |
Path for rndc dumpdb output |
statistics_file |
Option<String> |
Statistics file path |
pid_file |
Option<String> |
PID file path |
recursion |
Option<bool> |
Enable recursive queries |
allow_query |
Option<AddressMatchList> |
Who may query this server |
allow_recursion |
Option<AddressMatchList> |
Who may use recursion |
allow_transfer |
Option<AddressMatchList> |
Who may receive zone transfers |
blackhole |
Option<AddressMatchList> |
Addresses to silently ignore |
forwarders |
Vec<IpAddr> |
Upstream forwarder addresses |
forward |
Option<ForwardPolicy> |
first or only |
listen_on |
Vec<AddressMatchElement> |
IPv4 listen addresses |
listen_on_v6 |
Vec<AddressMatchElement> |
IPv6 listen addresses |
dnssec_validation |
Option<DnssecValidation> |
yes, no, or auto |
zones |
Vec<ZoneStmt> |
Inline zone declarations |
ZoneStmt
A zone declaration (zone "name" { … };).
| Field |
Type |
Description |
name |
String |
Zone name (e.g. "example.com") |
class |
Option<DnsClass> |
DNS class (default IN) |
options |
ZoneOptions |
Zone-specific options |
ZoneOptions
| Field |
Type |
Description |
zone_type |
Option<ZoneType> |
Primary, Secondary, Stub, Forward, Hint, etc. |
file |
Option<String> |
Path to the zone file |
primaries |
Option<String> |
Named primaries list reference |
forwarders |
Vec<IpAddr> |
Forwarder addresses (for forward zones) |
allow_query |
Option<AddressMatchList> |
Per-zone query ACL |
allow_transfer |
Option<AddressMatchList> |
Per-zone transfer ACL |
also_notify |
Vec<IpAddr> |
Additional NOTIFY recipients |
ZoneType enum
| Variant |
Keyword(s) |
Primary |
primary, master |
Secondary |
secondary, slave |
Stub |
stub |
Forward |
forward |
Hint |
hint |
Redirect |
redirect |
Delegation |
delegation-only |
InView |
in-view |
ViewStmt
A view block (view "name" { … };).
| Field |
Type |
Description |
name |
String |
View name |
class |
Option<DnsClass> |
DNS class (default IN) |
options |
ViewOptions |
View-level options |
ViewOptions
| Field |
Type |
Description |
match_clients |
Option<AddressMatchList> |
Clients served by this view |
match_destinations |
Option<AddressMatchList> |
Destination addresses for this view |
recursion |
Option<bool> |
Override recursion for this view |
allow_query |
Option<AddressMatchList> |
View-level query ACL |
zones |
Vec<ZoneStmt> |
Zones inside this view |
AclStmt
A named address match list (acl "name" { … };).
| Field |
Type |
Description |
name |
String |
ACL name |
elements |
Vec<AddressMatchElement> |
List members |
AddressMatchElement enum
| Variant |
Description |
Any |
The built-in any |
None |
The built-in none |
Localhost |
The built-in localhost |
Localnets |
The built-in localnets |
IpAddr(IpAddr) |
A single IP address |
Cidr { addr, prefix_len } |
An IP/prefix CIDR block |
AclRef(String) |
Reference to a named ACL |
KeyRef(String) |
Reference to a named key |
Negated(Box<AddressMatchElement>) |
Logical NOT of an element |
KeyStmt
A TSIG key (key "name" { … };).
| Field |
Type |
Description |
name |
String |
Key name |
algorithm |
String |
HMAC algorithm (e.g. hmac-sha256) |
secret |
String |
Base64-encoded key material |
LoggingBlock
Logging configuration (logging { … };).
| Field |
Type |
Description |
channels |
Vec<LogChannel> |
Log channel definitions |
categories |
Vec<LogCategory> |
Category-to-channel bindings |
LogChannel
| Field |
Type |
Description |
name |
String |
Channel name |
destination |
LogDestination |
File { path, versions, size }, Syslog, Stderr, Null |
severity |
Option<String> |
Log severity filter |
print_time |
Option<bool> |
Include timestamps |
print_severity |
Option<bool> |
Include severity labels |
print_category |
Option<bool> |
Include category names |
PrimariesStmt
A named list of primary servers (primaries "name" { … };).
| Field |
Type |
Description |
name |
String |
List name |
entries |
Vec<PrimaryEntry> |
Server entries (address + optional key) |
ServerStmt
Per-server options (server <addr> { … };).
| Field |
Type |
Description |
address |
IpAddr |
Server IP address |
keys |
Vec<String> |
TSIG key names for this server |
transfers |
Option<u32> |
Concurrent transfer limit |
Next Steps