DNS Zone File Generator
Generate DNS zone files for BIND, BIND9, PowerDNS, Knot DNS, A, AAAA, CNAME, MX, TXT, NS, and SOA records.
Quick Summary
What is this tool?
A DNS zone file is a plain text file that contains the mappings between domain names, IP addresses, and other network resources. It is the core configuration file used by authoritative nameservers (like BIND) to resolve queries for your domain on the internet.
The zone file contains resource records like the Start of Authority (SOA) which dictates caching and refresh rates, Name Server (NS) records for delegation, and various data records (A, CNAME, MX) to direct traffic.
How to Use This Tool
- Define the SOA: Enter your primary domain name and admin email (using a dot instead of @). The generator uses sensible defaults for serial and timers.
- Set Nameservers: Add your primary and secondary NS records (e.g.,
ns1.example.com.). - Add A/AAAA Records: Map hostnames (like
wwwor@for root) to IPv4 or IPv6 addresses. - Add Other Records: Include CNAMEs for aliases, MX records for email routing, and TXT records for SPF/DKIM authentication.
- Export: Copy the generated BIND format file to your DNS server (e.g.,
/etc/bind/db.example.com).
What This Tool Generates
- BIND zone files (forward zones)
- BIND9 zone files
- Reverse DNS zone files (PTR mapping)
- DNS records summary tables
named-checkzonevalidation commands
Example Output Explanation
A safe placeholder example of a BIND zone file for a basic website and email setup:
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
2026070901 ; Serial
3600 ; Refresh
1800 ; Retry
1209600 ; Expire
3600 ; Minimum TTL
)
@ IN NS ns1.example.com.
@ IN A 192.0.2.10
www IN CNAME example.com.Best Practices
- DNS zone file format: Ensure all fully qualified domain names (FQDNs) in the right-hand column end with a trailing dot (e.g., 'example.com.'). If you forget the dot, BIND will automatically append your domain name to the end, resulting in 'example.com.example.com'.
- Serial number generation: The industry standard for SOA serial numbers is YYYYMMDDNN (Year, Month, Day, Revision). The generator defaults to a timestamp-based serial.
- DNS zone file CNAME example: Never place a CNAME record at the root apex of your domain (e.g., '@ IN CNAME something'). This violates DNS RFCs and breaks MX (email) and NS records for the entire domain.
Common Mistakes
- Using an @ symbol in the SOA admin email address. The format requires a dot instead, so 'admin@example.com' becomes 'admin.example.com.'.
- Setting the TTL (Time to Live) too high before a migration. Always lower your TTL to 300 seconds a few days before moving servers, so DNS caches flush quickly.
- Forgetting to quote TXT records. Long SPF or DKIM strings must be enclosed in double quotes.
Security Notes
- Do not publish private internal hostnames (like database servers) in public zone files. Keep internal DNS in a separate, private zone.
- Use placeholder IP addresses like 192.0.2.10 when testing zone generators online.
- Always backup your existing zone file before applying a new one, as a syntax error can cause your domain to disappear from the internet.
Testing Instructions
- Validate your BIND zone file syntax before reloading the service using: 'named-checkzone example.com db.example.com'.
Frequently Asked Questions
What is a DNS Zone File Generator?
What is a BIND zone file?
What is an SOA record in a zone file?
How do I create a CNAME record in a zone file?
How do I create a reverse DNS zone file?
How do I validate a BIND zone file?
How We Keep Your Configs Safe & Valid
Built-in Error Checking
Every file is checked against official rules. We catch missing fields and bad syntax. YAML indentation errors are flagged right away. Kubernetes, Terraform, and Docker specs are all covered. API versions and labels are verified too. You get valid output every time you generate.
100% Private & Local
All tools run in your browser only. Your API keys never leave your machine. We do not use any tracking scripts. No data is sent to any server. Passwords and secrets stay on your device. Crypto operations use the Web Crypto API. Your privacy is fully protected at all times.
Secure Settings by Default
Configs use safe defaults out of the box. Containers run as non-root users. Root filesystems are set to read-only. Dangerous Linux capabilities are dropped. Network policies limit pod-to-pod traffic. TLS 1.3 is enabled for web servers. Security headers are added where needed.
Ready for CI/CD & Git
Output files are ready for your Git repo. Use them with ArgoCD, Flux, or GitHub Actions. Files use clear formatting and comments. Code review is easy for your team. Indentation and key order are consistent. Test in staging before going to production. Every file is clean and well-structured.
Infrastructure as Code
Store configs in Git alongside your code. Terraform modules include typed variables. Backend configs support remote state locking. Outputs work across multiple modules. Ansible playbooks use clear task steps. Chef and Puppet configs are also supported. Every file works with version control tools.
Monitoring & Tracing
Set up Prometheus with auto-discovery rules. Create Grafana dashboards with template variables. Add alerting rules with severity labels. Use OpenTelemetry for trace collection. Forward logs to Loki or Elasticsearch. Connect to Jaeger or Tempo for tracing. Monitor metrics, logs, and traces together.
Container & Docker Safety
Dockerfiles use multi-stage builds for small images. Base images are pinned to exact versions. Dev files are excluded from final images. Health checks are added for orchestrator use. Containers switch to non-root users. Docker Compose uses named volumes and networks. Resource limits are set in deploy configs.
Multiple Output Formats
Export as YAML, JSON, HCL, or TOML. Kubernetes uses YAML with proper separators. Terraform uses HCL with correct escaping. JSON output has consistent indentation. Copy to clipboard with one click. Preview output with syntax highlighting. Line numbers help you review quickly.