Linux

Where Does BIND 9 Store Zones and Config?

BIND 9 keeps zone files and config in /etc/bind (named.conf plus db.* zone files), with dynamic updates and cache dumps under /var/cache/bind.

Last updated

BIND splits config from running state across two trees. Static configuration lives in /etc/bind: named.conf, options, and zone files named db.*. Anything the server writes at runtime, like journals and cache dumps, lands in /var/cache/bind instead.

That split matters for backups and troubleshooting. Copying /etc/bind captures intent while missing live dynamic data. The rndc tool bridges both worlds for reloads, freezes, and cache dumps without hand editing files mid flight.

Where BIND 9 stores this, by platform

Linux
/etc/bind

named.conf plus db.* zone files. Test with named-checkconf and named-checkzone before rndc reload. Version control this tree.

Linux
/var/cache/bind

Journals, cache dumps, and runtime state. Include in backups alongside /etc/bind for dynamic zones. Wipe carefully since it regenerates.

Frequently asked questions

How do I test BIND config changes?

Run named-checkconf for syntax and named-checkzone for each edited zone before reloading. Both tools ship with BIND and catch the typos that break loads. Reload with rndc reload only after both pass.

Where are dynamic DNS updates stored?

Look in /var/cache/bind for the journal (.jnl) files beside their zones. Dynamic updates accumulate there between freezes. Back up zones together with journals, or freeze first with rndc freeze.

Notice an outdated path? Let us know.