dns-tools

v2026.09.24

DNS resolution and propagation debugging. Use when looking up A/AAAA/MX/TXT records, verifying DNS changes across resolvers, or querying via DoT/DoH.

GitHub
Install command
npx skhub add laurigates/dns-tools
Markdown
SKILL.md

DNS Tools

When to Use This Skill

ScenarioUse this skillAlternative
Look up DNS records (A, MX, TXT, etc.)Yes
Check DNS propagation across resolversYes
Query via encrypted DNS (DoT/DoH)Yes
Verify email auth records (SPF/DKIM/DMARC)Yes
Reverse DNS lookup for an IPYes
Troubleshoot connectivity or packet lossnetwork-diagnostics (trippy, gping)
Find hosts or open ports on a networknetwork-discovery (RustScan, nmap)
Discover devices on local L2 segmentlayer2-discovery (ARP/LLDP)
Load test an HTTP endpointhttp-load-testing (oha)
Monitor real-time bandwidth per processnetwork-monitoring (bandwhich)
Inspect or configure the host's own IPs, links, or routesinterface-state (ip)

Core Expertise

dog is a modern, Rust-based DNS client that serves as a user-friendly alternative to dig. Key advantages:

  • Readable output: Colorized, human-friendly formatting by default
  • Modern protocols: Native support for DNS-over-TLS (DoT) and DNS-over-HTTPS (DoH)
  • JSON output: Machine-parseable output for scripting and automation
  • Fast: Compiled Rust binary with minimal dependencies
  • Cross-platform: Works on Linux, macOS, and Windows

Installation

# macOS
brew install dog

# Cargo (any platform)
cargo install dog

# Arch Linux
pacman -S dog

Essential Commands

Basic Queries

# Query A record (default)
dog example.com

# Query specific record type
dog example.com MX
dog example.com AAAA
dog example.com TXT

# Query multiple record types
dog example.com A AAAA MX

# Query multiple domains
dog example.com example.org

Specifying DNS Server

# Use specific resolver
dog @8.8.8.8 example.com
dog @1.1.1.1 example.com MX

# Use system resolver explicitly
dog @/etc/resolv.conf example.com

Output Formats

# JSON output for parsing
dog --json example.com

# Short output (answers only)
dog --short example.com

# Quiet mode (minimal output)
dog -q example.com

DNS-over-TLS and DNS-over-HTTPS

Modern encrypted DNS protocols prevent eavesdropping and tampering.

DNS-over-TLS (DoT)

# Query via DoT (port 853)
dog --tls @dns.google example.com
dog --tls @1.1.1.1 example.com

# Explicit TLS server specification
dog --tls @dns.quad9.net example.com

DNS-over-HTTPS (DoH)

# Query via DoH
dog --https @https://dns.google/dns-query example.com
dog --https @https://cloudflare-dns.com/dns-query example.com

# Quad9 DoH
dog --https @https://dns.quad9.net/dns-query example.com

Protocol Comparison

ProtocolFlagPortUse Case
UDP(default)53Standard queries
TCP--tcp53Large responses, reliability
DoT--tls853Encrypted, TLS-based
DoH--https443Encrypted, HTTPS-based

Advanced Features

Query Options

# Force TCP instead of UDP
dog --tcp example.com

# Set query timeout (seconds)
dog --timeout 5 example.com

# Disable recursion (query authoritative only)
dog --no-recurse example.com

# Query specific class
dog --class CH version.bind TXT  # Chaos class for version info

Reverse DNS

# PTR lookup for IP address
dog -x 8.8.8.8
dog --reverse 1.1.1.1

DNSSEC Queries

# Request DNSSEC records
dog --dnssec example.com

# Query DNSKEY records directly
dog example.com DNSKEY
dog example.com DS

Common Patterns

Troubleshooting DNS

# Check propagation across multiple resolvers
dog @8.8.8.8 example.com A
dog @1.1.1.1 example.com A
dog @9.9.9.9 example.com A

# Verify MX records for email
dog example.com MX --json | jq '.answers[].data'

# Check SPF/DKIM/DMARC for email auth
dog example.com TXT | grep -E 'spf|dkim|dmarc'
dog _dmarc.example.com TXT
dog selector._domainkey.example.com TXT

Automation and Scripting

# Extract IP addresses from JSON
dog --json example.com A | jq -r '.answers[].data'

# Check if domain resolves
dog --short example.com && echo "Resolves" || echo "No resolution"

# Batch queries
for domain in example.com example.org; do
  dog --json "$domain" A
done

Alternative Tools

dig (Traditional)

Still valuable for DNSSEC validation and advanced debugging:

# DNSSEC validation
dig +dnssec example.com

# Trace delegation path
dig +trace example.com

# Query with specific options
dig +noall +answer example.com MX

drill (LDNS Project)

DNSSEC-focused tool from NLnet Labs:

# DNSSEC chase
drill -S example.com

# Trace from root
drill -T example.com

Agentic Optimizations

ContextCommand
Parse resultsdog --json example.com
Quick checkdog --short example.com
Minimal outputdog -q example.com A
Extract IPsdog --json example.com A | jq -r '.answers[].data'
Batch queriesLoop with --json for structured output
CI/CD checksdog --json --timeout 5 for fast, parseable results

Quick Reference

Record Types

TypeDescriptionExample
AIPv4 addressdog example.com A
AAAAIPv6 addressdog example.com AAAA
MXMail exchangerdog example.com MX
NSName serverdog example.com NS
TXTText recorddog example.com TXT
CNAMECanonical namedog www.example.com CNAME
SOAStart of authoritydog example.com SOA
PTRPointer (reverse)dog -x 8.8.8.8
SRVService recorddog _sip._tcp.example.com SRV
CAACertificate authoritydog example.com CAA

Common Flags

FlagShortDescription
--json-JJSON output
--short-sAnswers only
--tcp-TUse TCP
--tlsDNS-over-TLS
--https-HDNS-over-HTTPS
--reverse-xReverse lookup
--timeoutQuery timeout
--dnssec-DRequest DNSSEC
--class-CQuery class
--no-recurseDisable recursion

Error Handling

ErrorCauseSolution
NXDOMAINDomain does not existVerify domain spelling
SERVFAILServer failureTry different resolver
REFUSEDQuery refusedServer policy, try public resolver
TimeoutNo responseCheck network, increase --timeout
Connection refusedDoT/DoH server unreachableVerify server address and port
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

networking-plugin/skills/dns-tools

Default branch

main

Latest commit

1668324

Tree SHA

b2d4cc3