Knot Resolver
A modern recursive resolver with a Lua scripting engine — supporting DoH, DoT, DNSSEC validation, and policy scripting for ISPs and privacy-focused DNS services.
Scriptable Recursive Resolver
Knot Resolver (kresd) is a recursive resolver developed by CZ.NIC — distinct from Knot DNS (the authoritative server). It is built around a modular architecture with Lua scripting, allowing operators to implement custom resolution policies, blocking rules, logging, and protocol handling without recompiling.
Knot Resolver supports DNS-over-HTTPS, DNS-over-TLS, and DNS-over-QUIC (experimental) for both inbound client connections and upstream forwarders. It performs full DNSSEC validation and supports aggressive NSEC caching for faster negative responses. CZ.NIC operates a public DNS service (1.12.12.12, Cloudflare for Families-style) using Knot Resolver.
- Lua module system — custom blocking, rewriting, and policy logic
- DNS-over-HTTPS (DoH), DNS-over-TLS (DoT) inbound and outbound
- DNS-over-QUIC (DoQ) experimental support
- Full DNSSEC validation with aggressive NSEC caching
- RPZ (Response Policy Zones) support via Lua module
- Prometheus metrics endpoint for monitoring
- Multi-process scaling: run multiple kresd instances sharing a cache
- You need DoH or DoT for client-facing resolver connections
- You want Lua scripting for custom resolution policies
- You are building an ISP or public resolver service
- You need aggressive NSEC caching for fast NXDOMAIN responses