Skip to content

DNS Records

DNS records define how your domain resolves to IP addresses, mail servers, and other services.

DNS records allow you to:

  • Point domains to IP addresses (A/AAAA records)
  • Create aliases (CNAME records)
  • Configure email servers (MX records)
  • Add verification and security (TXT records)
  • Set up subdomains

Add a DNS record to a zone:

Terminal window
brdz dns:records:create <name> <type> <content> --zone <zone>

Requirements:

  • Zone must exist and be verified
  • Record type must be valid
  • Content must match the record type
Terminal window
# A record (IPv4)
brdz dns:records:create example.com A 192.0.2.1 --zone example.com
# AAAA record (IPv6)
brdz dns:records:create example.com AAAA 2001:db8::1 --zone example.com
# CNAME record (alias)
brdz dns:records:create www.example.com CNAME example.com --zone example.com
# MX record (mail server)
brdz dns:records:create example.com MX mail.example.com --zone example.com --prio 10
# TXT record (verification, SPF, DKIM)
brdz dns:records:create example.com TXT "v=spf1 include:_spf.example.com ~all" --zone example.com

View all records in a zone:

Terminal window
brdz dns:records:list --zone <zone>

Output example:

ID Name Type Content Priority TTL
1 example.com A 192.0.2.1 - 300
2 www.example.com CNAME example.com - 300
3 example.com MX mail.example.com 10 300
4 example.com TXT "v=spf1..." - 300

Get detailed information about a specific record:

Terminal window
brdz dns:records:get <record-id>

Output includes:

  • Record ID
  • Name (hostname)
  • Type
  • Content (value)
  • Priority (for MX records)
  • TTL (time-to-live)
  • Creation timestamp

Remove a DNS record:

Terminal window
brdz dns:records:delete <record-id>

Warning: Deletion is immediate and cannot be undone.

Import DNS records from an existing domain:

Terminal window
brdz dns:records:clone example.com

This command:

  1. Queries current DNS records for the domain
  2. Imports compatible record types
  3. Creates records in your zone
  4. Skips incompatible or system records

Useful for migrating domains to brdz DNS management.

Point a domain to an IPv4 address:

Terminal window
brdz dns:records:create example.com A 192.0.2.1 --zone example.com

Use cases:

  • Point root domain to server
  • Configure subdomains
  • Load balancing with multiple A records

Point a domain to an IPv6 address:

Terminal window
brdz dns:records:create example.com AAAA 2001:db8::1 --zone example.com

Use cases:

  • IPv6 connectivity
  • Modern infrastructure
  • Dual-stack configurations

Create an alias from one domain to another:

Terminal window
brdz dns:records:create www.example.com CNAME example.com --zone example.com

Rules:

  • Cannot be used on root domain (example.com)
  • Only for subdomains (www.example.com)
  • Cannot coexist with other record types on same name

Use cases:

  • Point www to root domain
  • Create service aliases
  • Simplify configuration changes

Configure mail servers:

Terminal window
brdz dns:records:create example.com MX mail.example.com --zone example.com --prio 10

Priority:

  • Lower numbers = higher priority
  • Common values: 10, 20, 30
  • Multiple MX records provide failover

Use cases:

  • Email delivery
  • Backup mail servers
  • Email provider configuration

Store arbitrary text data:

Terminal window
brdz dns:records:create example.com TXT "v=spf1 include:_spf.example.com ~all" --zone example.com

Use cases:

  • SPF (email authentication)
  • DKIM (email signing)
  • Domain verification
  • DMARC policies
  • Site ownership verification
Terminal window
# Root domain
brdz dns:records:create example.com A 192.0.2.1 --zone example.com
# WWW subdomain
brdz dns:records:create www.example.com CNAME example.com --zone example.com
Terminal window
# Primary mail server
brdz dns:records:create example.com MX mail.example.com --zone example.com --prio 10
# Backup mail server
brdz dns:records:create example.com MX mail2.example.com --zone example.com --prio 20
# SPF record
brdz dns:records:create example.com TXT "v=spf1 mx ~all" --zone example.com
# DMARC policy
brdz dns:records:create _dmarc.example.com TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com" --zone example.com
Terminal window
# Root domain to CDN
brdz dns:records:create example.com CNAME cdn.example.com --zone example.com
# API subdomain to server
brdz dns:records:create api.example.com A 192.0.2.2 --zone example.com
# Wildcard subdomain for multi-tenant
brdz dns:records:create "*.app.example.com" A 192.0.2.3 --zone example.com
Terminal window
# Production
brdz dns:records:create example.com A 192.0.2.1 --zone example.com
# Staging
brdz dns:records:create staging.example.com A 192.0.2.2 --zone example.com
# Development
brdz dns:records:create dev.example.com A 192.0.2.3 --zone example.com

TTL controls how long DNS records are cached:

  • Lower TTL = faster changes, more DNS queries
  • Higher TTL = slower changes, fewer DNS queries
  • Default: 300 seconds (5 minutes)

When to use low TTL:

  • Before planned DNS changes
  • During migrations
  • Testing configurations

When to use high TTL:

  • Stable, unchanging records
  • Reduce DNS query load
  • Improve performance
  1. Start with low TTL - Use low TTL during setup, increase once stable
  2. Always add both A and CNAME - Configure root and www
  3. Use multiple MX records - Add backup mail servers
  4. Document your records - Keep notes about record purposes
  5. Test before changing - Verify new IPs work before updating DNS
  6. Avoid CNAME on root - Use A/AAAA records for root domains
  7. Verify SPF/DKIM - Test email authentication after configuration

If a record isn’t resolving:

  1. Check record exists: brdz dns:records:list --zone <zone>
  2. Verify zone is active: brdz dns:zones:get <zone>
  3. Wait for TTL expiration
  4. Test directly: dig @ns1.brdz-dns.com example.com
  5. Check for typos in record name or content

If you can’t create a CNAME:

  • Check for existing A/AAAA records on same name
  • Remove conflicting records first
  • Don’t use CNAME on root domain

If mail routing is incorrect:

  • Check priority values (lower = higher priority)
  • Verify multiple MX records have different priorities
  • Test with: dig example.com MX

dns:records:create <name> <type> <content> --zone <zone>

Section titled “dns:records:create <name> <type> <content> --zone <zone>”

Create a new DNS record.

Arguments:

  • name - Record name/hostname (required)
  • type - Record type (A, AAAA, CNAME, MX, TXT) (required)
  • content - Record value (required)

Flags:

  • --zone - Zone name (required)
  • --prio - Priority for MX records (default: 10)
  • --ttl - Time to live in seconds (default: 300)

Examples:

Terminal window
brdz dns:records:create example.com A 192.0.2.1 --zone example.com
brdz dns:records:create example.com MX mail.example.com --zone example.com --prio 10

List all DNS records in a zone.

Flags:

  • --zone - Zone name (required)

Example:

Terminal window
brdz dns:records:list --zone example.com

Get detailed information about a DNS record.

Arguments:

  • record-id - Record identifier (required)

Example:

Terminal window
brdz dns:records:get rec123

Delete a DNS record.

Arguments:

  • record-id - Record identifier (required)

Example:

Terminal window
brdz dns:records:delete rec123

Clone DNS records from an existing domain.

Arguments:

  • domain - Domain to clone records from (required)

Example:

Terminal window
brdz dns:records:clone example.com