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
/etc/bind
named.conf plus db.* zone files. Test with named-checkconf and named-checkzone before rndc reload. Version control this tree.
/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.