☀️ 🌙

🌐 Authoritative DNS Hosting

Professional DNS hosting on ns1-4.dnsscience.io

🚀 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

$5
per domain / month
  • 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
No additional charges for query volume, record count, zone transfers, DNSSEC signing, or API access.

✨ 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
What happens: Creates Route53 hosted zone, assigns ns1-4.dnsscience.io as nameservers, creates default A/MX/TXT records, and begins $5/month billing.

Unenroll Domain

# Unenroll domain (requires confirmation)
dnsscience dns-hosting unenroll example.com

# Force unenroll without confirmation
dnsscience dns-hosting unenroll example.com --force
Warning: This deletes the Route53 hosted zone, removes all DNS records, and cannot be undone!

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)
  • ECDSAP384SHA384
  • RSASHA256
  • RSASHA512

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

  1. Check nameservers are set correctly:
    dig NS example.com
    Should show ns1-4.dnsscience.io
  2. Verify zone is active:
    dnsscience dns-hosting list
  3. Check DNS propagation:
    dig @ns1.dnsscience.io example.com

DNSSEC Validation Failing

  1. Verify DS records at registrar match:
    dnsscience dns-hosting dnssec-status example.com
    dig DS example.com
  2. Check DNSSEC chain:
    dig +dnssec example.com
  3. Validate with external tool:
    delv @8.8.8.8 example.com

Zone File Import Errors

  1. Validate syntax:
    named-checkzone example.com zonefile.db
  2. Check for common issues:
    • Missing trailing dots on FQDNs
    • Invalid TTL values
    • Unsupported record types
  3. Use verbose mode:
    dnsscience dns-hosting upload-zone example.com zonefile.db --verbose

📞 Support

📖 Documentation

DNS Hosting Docs

⌨️ CLI Help

dnsscience dns-hosting --help

🔌 API Reference

API Docs

✉️ Email Support

support@dnsscience.io

📊 Status Page

status.dnsscience.io

🌐 Web Portal

Management Portal

Need help? Our support team is available 24/7 to assist with DNS hosting questions, zone migrations, and technical issues.