Build RFC-1035 DNS zone files record-by-record, without typos and without memorizing the field order of every record type.
What it generates. The full SOA record plus any combination of NS, A, AAAA, CNAME, MX, TXT (including SPF / DKIM / DMARC), SRV, CAA, TLSA, NAPTR, and DS records. Output is standard RFC 1035 master-file syntax — paste it straight into BIND, Knot, PowerDNS, NSD, or a hidden master.
How to enter records. Put one record per line in the Records box. Each line is a mini zone-file entry:
@ IN A 203.0.113.10
www IN A 203.0.113.10
@ IN MX 10 mail.example.com.
@ IN TXT "v=spf1 mx -all"
_dmarc IN TXT "v=DMARC1; p=reject; rua=mailto:[email protected]"
_sip._tcp IN SRV 10 60 5060 sip.example.com.
@ IN CAA 0 issue "letsencrypt.org"
- The name field can be
@: (zone origin), a relative name (www → www.example.com.), or a fully-qualified name ending in ..
TTL is optional before IN (e.g. www 3600 IN A ...); if omitted, the zone default TTL applies.
- Quoted strings (TXT) preserve spaces; the tool keeps them intact.
- Lines starting with
; are comments and pass through verbatim.
Validation the tool does.
- Detects obviously malformed IPv4 / IPv6 addresses (A / AAAA).
- Flags MX / SRV / NS target names missing the trailing dot.
- Warns on TXT records containing unescaped double-quotes.
- Catches CNAME co-existing with other records at the same name (RFC 1034 §3.6.2).
- Validates that DKIM/DMARC TXT values start with
v=DKIM1 / v=DMARC1.
The SOA block. Filled from the form fields above. Serial defaults to today's date in YYYYMMDD01 format (the conventional "daily + revision" scheme). Refresh/Retry/Expire/Minimum use RFC 1912 recommended values by default.
Why not just use a web panel? Cloud / registrar panels rewrite your records, hide the TTL, and silently drop records they don't understand. For self-hosted DNS, migrations, audits, and "exactly what does my zone look like right now?" — a plain-text zone file is still the source of truth.