Log Files
NSD logs to the system log by default, or to a custom location if configured.Log Configuration
0- Errors and warnings only (default)1- Operational information2- Debug information3- Very verbose debug output
Viewing Logs
Common Log Messages
Reload Failures
Reload process <pid> failed with status <s>, continuing with old database
Reload process <pid> failed with status <s>, continuing with old database
Meaning: The reload process failed, and NSD continues using the previous zone data.Common causes:Solution:
- Syntax errors in zone files
- Missing zone files
- File permission issues
- Corrupted database
- Fix syntax errors reported by
nsd-checkzone - Ensure zone files exist and are readable by the NSD user
- Verify database file isn’t corrupted
- Try reloading again:
nsd-control reload
Database Corruption
snipping off trailing partial part of <ixfr.db>
snipping off trailing partial part of <ixfr.db>
Meaning: The IXFR database file contains incomplete data, and NSD is removing the corrupted portion.Impact: Zone transfer history may be lost, but NSD continues operating normally.Action required: Usually none - NSD automatically repairs the corruption. If this message appears frequently, investigate:
- Disk space issues
- Filesystem errors
- Abrupt shutdowns (power loss, kill -9)
Memory Management
memory recyclebin holds <num> bytes
memory recyclebin holds <num> bytes
Meaning: NSD reports the size of its memory recycle bin after each reload.Background: NSD allocates and deallocates memory for IXFR updates. Deallocated memory is kept in a recycle bin for reuse.When to act: If the number grows very large (hundreds of megabytes):Normal behavior: Small to moderate values are expected during regular operation.
Zone Transfer Limits
xfrd: max number of tcp connections (32) reached
xfrd: max number of tcp connections (32) reached
Meaning: More than 32 zones need simultaneous zone transfers.Details:
- NSD allows up to 32 concurrent TCP connections for zone transfers
- This is a compile-time constant in
xfrd-tcp.h - NSD reuses connections to the same primary (up to 64k zones per connection)
- You have more than 32 different primary servers
- Or more than 2 million zones needing simultaneous updates (32 × 64k)
- Stagger zone updates across different times
- Consolidate primaries to reduce connection count
- Contact NLnet Labs about making this a configurable option
- Consider modifying the source and recompiling (advanced)
NSEC3 Errors
error: <zone> NSEC3PARAM entry <num> has unknown hash algo <number>
error: <zone> NSEC3PARAM entry <num> has unknown hash algo <number>
Meaning: The zone uses NSEC3 with a hash algorithm not supported by this NSD version.Impact:
- NSD cannot serve the NSEC3 chain with the unknown algorithm
- If no supported NSEC/NSEC3 chains exist, DNSSEC authenticated denials will fail
- Upgrade NSD to a version supporting the hash algorithm
- Re-sign the zone with a supported algorithm (typically SHA-1)
- Check primary configuration if this is a secondary zone
Startup Issues
Port Already in Use
Symptom:- Another NSD instance is running
- systemd-resolved is using port 53
- BIND or another DNS server is running
- Stale PID file after crash
Disable systemd-resolved
Disable systemd-resolved
Remove stale PID file
Remove stale PID file
Permission Denied
Symptom:Grant capabilities (Linux)
Grant capabilities (Linux)
Start as root with privilege dropping
Start as root with privilege dropping
Zone Transfer Problems
Transfers Not Working
Diagnosis checklist:TSIG verification failure
TSIG verification failure
Error: Zone transfer fails with TSIG error.Diagnosis:Common issues:
- Key names don’t match exactly (case-sensitive)
- Different algorithms configured on primary vs secondary
- Secret is different or improperly encoded
- Clock skew between servers (TSIG uses timestamps)
Connection refused or timeout
Connection refused or timeout
Diagnosis:Solutions:
- Open TCP port 53 in firewall
- Verify primary server is running
- Check network ACLs and security groups
- Ensure no NAT issues between servers
Configuration Errors
Validation Tools
- Missing quotes around values with spaces
- Incorrect indentation
- Typos in option names
- Invalid IP addresses or CIDR notation
- Mismatched TSIG key names
Performance Issues
High CPU Usage
Diagnosis:Increase server-count
Increase server-count
Enable query rate limiting
Enable query rate limiting
Memory Issues
Check memory usage:Debugging Techniques
Query Testing
Using nsd-control
Packet Capture
Capture DNS traffic for deep analysis:Logging Tools
NSD doesn’t log queries by default, but you can use external tools:DNSTAP support
DNSTAP support
If compiled with DNSTAP:Analyze DNSTAP output with
dnstap-read.tcpdump for query logging
tcpdump for query logging
dnsstat for statistics
dnsstat for statistics
Use CAIDA’s dnsstat tool:
Getting Help
Information to Collect
Before reporting issues:Support Resources
- Mailing list: [email protected]
- GitHub issues: https://github.com/NLnetLabs/nsd/issues
- Documentation: https://nsd.docs.nlnetlabs.nl/
- NLnet Labs: https://www.nlnetlabs.nl/