Knot Resolver¶
Knot Resolver is a minimalistic implementation of a caching validating DNS resolver. Modular architecture keeps the core tiny and efficient, and it provides a state-machine like API for extensions.
Quick Start
Configuration
- Configuration Overview
- Networking and protocols
- Performance and resiliency
- Policy, access control, data manipulation
- Logging, monitoring, diagnostics
log_level()
log_target()
log_groups()
- DNSSEC validation failure logging
- Statistics collector
- Scripting worker
- Name Server Identifier (NSID)
- Debugging a single request
- Watchdog
- Dnstap (traffic collection)
- Sentinel for Detecting Trusted Root Keys
- Signaling Trust Anchor Knowledge in DNSSEC
- System time skew detector
- Detect discontinuous jumps in the system time
- Debugging options
- Logging API
LOG_GRP_SYSTEM_TAG
LOG_GRP_CACHE_TAG
LOG_GRP_IO_TAG
LOG_GRP_NETWORK_TAG
LOG_GRP_TA_TAG
LOG_GRP_TASENTINEL_TAG
LOG_GRP_TASIGNALING_TAG
LOG_GRP_TAUPDATE_TAG
LOG_GRP_TLS_TAG
LOG_GRP_GNUTLS_TAG
LOG_GRP_TLSCLIENT_TAG
LOG_GRP_XDP_TAG
LOG_GRP_DOH_TAG
LOG_GRP_DNSSEC_TAG
LOG_GRP_HINT_TAG
LOG_GRP_PLAN_TAG
LOG_GRP_ITERATOR_TAG
LOG_GRP_VALIDATOR_TAG
LOG_GRP_RESOLVER_TAG
LOG_GRP_SELECTION_TAG
LOG_GRP_ZCUT_TAG
LOG_GRP_COOKIES_TAG
LOG_GRP_STATISTICS_TAG
LOG_GRP_REBIND_TAG
LOG_GRP_WORKER_TAG
LOG_GRP_POLICY_TAG
LOG_GRP_DAF_TAG
LOG_GRP_DETECTTIMEJUMP_TAG
LOG_GRP_DETECTTIMESKEW_TAG
LOG_GRP_GRAPHITE_TAG
LOG_GRP_PREFILL_TAG
LOG_GRP_PRIMING_TAG
LOG_GRP_SRVSTALE_TAG
LOG_GRP_WATCHDOG_TAG
LOG_GRP_NSID_TAG
LOG_GRP_DNSTAP_TAG
LOG_GRP_TESTS_TAG
LOG_GRP_DOTAUTH_TAG
LOG_GRP_HTTP_TAG
LOG_GRP_CONTROL_TAG
LOG_GRP_MODULE_TAG
LOG_GRP_DEVEL_TAG
LOG_GRP_RENUMBER_TAG
LOG_GRP_EDE_TAG
LOG_GRP_REQDBG_TAG
kr_log_debug
kr_log_info
kr_log_notice
LOG_DEFAULT_LEVEL
kr_log_warning
kr_log_error
kr_log_crit
kr_log_deprecate
kr_log
LOG_UNKNOWN_LEVEL
LOG_GNUTLS_LEVEL
KR_LOG_LEVEL_IS
kr_log_req
kr_log_q
kr_log_is_debug
kr_log_is_debug_qry
KR_LOG_SJM_STR
SD_JOURNAL_METADATA
kr_log_level_t
kr_log_target_t
kr_log_group
kr_log_target_set()
kr_log_group_is_set()
kr_log_group_add()
kr_log_group_reset()
kr_log_grp2name()
kr_log_name2grp()
kr_log_level_set()
kr_log_level2name()
kr_log_name2level()
kr_log_req1()
kr_log_q1()
kr_log_is_debug_fun()
kr_log_fmt()
kr_log_target
kr_log_level
- DNSSEC, data verification
- Experimental features
- Usage without systemd
Operation
Developers
- Building from sources
- Custom HTTP services
- Knot Resolver library
- Modules API reference
- Worker API reference
worker_init()
worker_deinit()
worker_submit()
worker_end_tcp()
worker_resolve_mk_pkt_dname()
worker_resolve_mk_pkt()
worker_resolve_start()
worker_resolve_exec()
worker_task_request()
worker_task_step()
worker_task_numrefs()
worker_task_finalize()
worker_task_complete()
worker_task_ref()
worker_task_unref()
worker_task_timeout_inc()
worker_add_tcp_connected()
worker_del_tcp_connected()
worker_del_tcp_waiting()
worker_find_tcp_waiting()
worker_find_tcp_connected()
worker_task_get_pktbuf()
worker_task_get_request()
worker_task_get_transport()
worker_request_get_source_session()
worker_task_pkt_get_msgid()
worker_task_pkt_set_msgid()
worker_task_creation_time()
worker_task_subreq_finalize()
worker_task_finished()
qr_task_on_send()
the_worker
worker_stats