📋 Table of Contents
🚀 Quick Start - 5-Minute Setup
Get your domain hosted on DNS Science in just a few minutes:
1 Install DNS Science CLI
pip install dnsscience-cli
2 Login to Your Account
dnsscience dns-hosting login <your-api-key>
Get your API key from: https://www.dnsscience.io/account
3 Enroll Your Domain
dnsscience dns-hosting enroll example.com
This creates a Route53 hosted zone and sets up ns1-4.dnsscience.io as nameservers. Billing starts at $5/month.
4 Update Your Registrar
Point your domain to our nameservers at your domain registrar:
- ns1.dnsscience.io
- ns2.dnsscience.io
- ns3.dnsscience.io
- ns4.dnsscience.io
5 Done!
Your DNS is now professionally hosted. Changes typically propagate within 1-24 hours.
🖥️ Our Nameservers
DNS Science uses vanity nameservers backed by AWS Route53's global infrastructure:
- ns1.dnsscience.io - 198.51.100.1
- ns2.dnsscience.io - 198.51.100.2
- ns3.dnsscience.io - 198.51.100.3
- ns4.dnsscience.io - 198.51.100.4
These nameservers provide global redundancy and 99.9% uptime SLA.
💰 Pricing
- Unlimited DNS queries
- Unlimited records
- DNSSEC support included
- Zone file import/export
- CLI and web management
- 99.9% uptime SLA
- 24/7 support
- No hidden fees
✨ Features
🔒 DNSSEC Support
One-click DNSSEC enablement with automatic key rotation and DS record generation.
📁 Zone File Management
Import/export BIND zone files, JSON conversion, and bulk operations support.
⚡ Fast Propagation
Changes propagate globally within minutes via AWS Route53's anycast network.
🖥️ CLI & Web Portal
Manage DNS via powerful CLI or user-friendly web interface.
📊 Analytics
Query statistics, geographic distribution, and performance metrics.
🌍 Global Network
Backed by AWS Route53 with edge locations worldwide.
⌨️ CLI Commands
Authentication
# Login with API key
dnsscience dns-hosting login <api-key>
# Verify login
dnsscience dns-hosting list
List Hosted Domains
# List all hosted domains
dnsscience dns-hosting list
# List only active domains
dnsscience dns-hosting list --status active
# Output as JSON
dnsscience dns-hosting list --json
Example Output:
DNS Hosted Domains
==================
Domain Status Records DNSSEC Zone ID
------------------ -------- --------- -------- ------------------------
example.com active 12 enabled Z1234567890ABC
test.org active 8 disabled Z9876543210XYZ
Enroll New Domain
# Enroll with default records
dnsscience dns-hosting enroll example.com
# Enroll without creating default records
dnsscience dns-hosting enroll example.com --no-create-defaults
Unenroll Domain
# Unenroll domain (requires confirmation)
dnsscience dns-hosting unenroll example.com
# Force unenroll without confirmation
dnsscience dns-hosting unenroll example.com --force
Manage DNS Records
List Records
# List all records for a domain
dnsscience dns-hosting records list example.com
# List specific record type
dnsscience dns-hosting records list example.com --type A
# Output as JSON
dnsscience dns-hosting records list example.com --json
Add Record
# Add A record
dnsscience dns-hosting records add example.com --name www --type A --value 203.0.113.1 --ttl 300
# Add MX record
dnsscience dns-hosting records add example.com --name @ --type MX --value "10 mail.example.com" --ttl 300
# Add TXT record
dnsscience dns-hosting records add example.com --name @ --type TXT --value "v=spf1 mx -all" --ttl 300
# Add CNAME record
dnsscience dns-hosting records add example.com --name blog --type CNAME --value example.com --ttl 300
Delete Record
# Delete record by ID
dnsscience dns-hosting records delete example.com <record-id>
# List records to find ID
dnsscience dns-hosting records list example.com
DNSSEC Management
Enable DNSSEC
# Enable DNSSEC with default algorithm (ECDSAP256SHA256)
dnsscience dns-hosting dnssec-enable example.com
# Specify algorithm
dnsscience dns-hosting dnssec-enable example.com --algorithm RSASHA256
Supported Algorithms:
ECDSAP256SHA256(recommended, default)ECDSAP384SHA384RSASHA256RSASHA512
Check DNSSEC Status
# Check DNSSEC status
dnsscience dns-hosting dnssec-status example.com
# Output as JSON
dnsscience dns-hosting dnssec-status example.com --json
📄 Zone File Management
Upload BIND Zone File
# Upload zone file
dnsscience dns-hosting upload-zone example.com /path/to/zonefile.db
BIND Zone File Example:
$ORIGIN example.com.
$TTL 300
@ IN SOA ns1.dnsscience.io. admin.example.com. (
2024111801 ; Serial
3600 ; Refresh
1800 ; Retry
1209600 ; Expire
300 ) ; Minimum TTL
; Nameservers
@ IN NS ns1.dnsscience.io.
@ IN NS ns2.dnsscience.io.
@ IN NS ns3.dnsscience.io.
@ IN NS ns4.dnsscience.io.
; A Records
@ IN A 203.0.113.1
www IN A 203.0.113.1
mail IN A 203.0.113.2
; MX Records
@ IN MX 10 mail.example.com.
; TXT Records
@ IN TXT "v=spf1 mx -all"
; CNAME Records
blog IN CNAME example.com.
Download Zone File
# Download as BIND format
dnsscience dns-hosting download-zone example.com --format bind
# Download as JSON
dnsscience dns-hosting download-zone example.com --format json
# Save to file
dnsscience dns-hosting download-zone example.com --format bind --output example.zone
Zone File Conversion
BIND to JSON
# Convert BIND zone file to DNS Science JSON
dnsscience dns-hosting bind2json /path/to/zonefile.db /path/to/output.json
# Specify domain if not in zone file
dnsscience dns-hosting bind2json /path/to/zonefile.db /path/to/output.json --domain example.com
JSON to BIND
# Convert JSON to BIND zone file
dnsscience dns-hosting json2bind /path/to/input.json /path/to/output.zone
🌐 Web Portal Management
Access the web management portal at: https://www.dnsscience.io/management
📊 Domain Dashboard
View all hosted domains, billing status, and quick actions.
✏️ DNS Record Editor
Visual record editor with real-time validation and bulk operations.
📁 Zone File Import/Export
Upload BIND zone files with preview and validation before import.
🔒 DNSSEC Management
One-click DNSSEC enable, view DS records, and validation checks.
📈 Query Analytics
Query statistics, geographic distribution, and performance metrics.
⚙️ Advanced Settings
TTL management, record validation, and zone transfer settings.
📚 Examples
Complete Setup Example
# 1. Install CLI
pip install dnsscience-cli
# 2. Login
dnsscience dns-hosting login dns_live_abc123...
# 3. Enroll domain
dnsscience dns-hosting enroll example.com
# 4. Add records
dnsscience dns-hosting records add example.com --name www --type A --value 203.0.113.1 --ttl 300
dnsscience dns-hosting records add example.com --name @ --type MX --value "10 mail.example.com" --ttl 300
# 5. Enable DNSSEC
dnsscience dns-hosting dnssec-enable example.com
# 6. Get DS records
dnsscience dns-hosting dnssec-status example.com
# 7. Update nameservers at registrar to:
# ns1.dnsscience.io
# ns2.dnsscience.io
# ns3.dnsscience.io
# ns4.dnsscience.io
# 8. Verify
dig @ns1.dnsscience.io example.com
Upload Zone File Example
# 1. Enroll domain without defaults
dnsscience dns-hosting enroll example.com --no-create-defaults
# 2. Upload your existing zone file
dnsscience dns-hosting upload-zone example.com /path/to/example.zone
# 3. Verify records were imported
dnsscience dns-hosting records list example.com
# 4. Update nameservers at registrar
# Point to ns1-4.dnsscience.io
Bulk Zone Import Example
#!/bin/bash
# Import multiple zones
for zonefile in /path/to/zones/*.zone; do
domain=$(basename "$zonefile" .zone)
echo "Importing $domain..."
dnsscience dns-hosting enroll "$domain" --no-create-defaults
dnsscience dns-hosting upload-zone "$domain" "$zonefile"
done
🔧 Troubleshooting
Domain Not Resolving
- Check nameservers are set correctly:
Should show ns1-4.dnsscience.io
dig NS example.com - Verify zone is active:
dnsscience dns-hosting list - Check DNS propagation:
dig @ns1.dnsscience.io example.com
DNSSEC Validation Failing
- Verify DS records at registrar match:
dnsscience dns-hosting dnssec-status example.com dig DS example.com - Check DNSSEC chain:
dig +dnssec example.com - Validate with external tool:
delv @8.8.8.8 example.com
Zone File Import Errors
- Validate syntax:
named-checkzone example.com zonefile.db - Check for common issues:
- Missing trailing dots on FQDNs
- Invalid TTL values
- Unsupported record types
- Use verbose mode:
dnsscience dns-hosting upload-zone example.com zonefile.db --verbose
📞 Support
📖 Documentation
⌨️ CLI Help
dnsscience dns-hosting --help