Features

Discover the comprehensive feature set that makes EtchDNS a powerful solution for DNS caching and security.

Performance

Modular Code Architecture

Optimized, maintainable codebase with modular design patterns, clear separation of concerns, and efficient error handling for improved stability and performance.

Efficient Caching

Uses the SIEVE algorithm for optimal memory usage, providing faster responses and reducing upstream load.

Query Aggregation

Eliminates duplicate in-flight queries to reduce upstream load and improve response times.

Smart Load Balancing

Multiple strategies (fastest/p2/random) to distribute queries across upstream servers for optimal performance.

EDNS-Client-Subnet

Improves CDN and geolocation-based DNS responses by including client location information in queries.

Protocol Support

UDP/TCP (standard DNS) and basic DoH (DNS-over-HTTP) support for flexible deployment options.

Security

Domain Filtering

Whitelist and blacklist support with allowed/NX zones to control which domains can be queried.

Rate Limiting

Fine-grained control for each protocol (UDP/TCP/DoH) to prevent abuse and DoS attacks.

Transaction ID Masking

Protection against cache poisoning attacks by masking DNS transaction IDs.

Privilege Dropping

Run with minimal system access after initialization for improved security.

Thorough Request Validation

Comprehensive DNS packet validation to prevent malformed or malicious requests.

IP Address Validation

Basic filtering of client IP addresses to silently drop connections from suspicious sources, prevent spoofing, and validate connection integrity.

Reliability

Automatic Failover

Immediate detection of server outages for seamless query routing to available servers.

Serve Stale

Continue serving expired cache entries during upstream failures to maintain service availability.

Health Monitoring

Regular probing of upstream servers to ensure availability and optimal performance.

Latency Guarantees

Ensures consistent response times even during upstream slowdowns or partial outages.

Monitoring

Prometheus Metrics

Comprehensive observability with Prometheus endpoint for detailed performance monitoring.

Remote Control API

HTTP interface for status monitoring and cache management, allowing remote administration.

Detailed Logging

Configurable query logging with customizable details for troubleshooting and analysis.

Extensibility (WebAssembly)

Multi-language Plugin Support

Create custom plugins in any language that compiles to WebAssembly (C/C++, Zig, AssemblyScript, etc.)

Custom Filter Rules

Implement advanced filtering logic beyond static blocklists for more sophisticated control.

Dynamic Response Modification

Modify DNS responses based on custom business logic to implement complex policies.

Stateful Processing

Maintain state across DNS queries for complex policy enforcement and behavioral analysis.