Skip to content
Knot Resolver - resolve DNS names like it's 2019
Branch: master
Clone or download
tomaskrizek Merge branch 'ci-fixes' into 'master'
CI fixes

See merge request knot/knot-resolver!812
Latest commit c9ec19a Apr 26, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bench gitlabci: fix lint:tidy Mar 12, 2019
ci ci: update debian-buster docker image Apr 26, 2019
client client nitpick: it doesn't use libkres at all Mar 12, 2019
contrib contrib/ucw/mempool: KR_EXPORT the functions we use Mar 12, 2019
daemon http: upgrading to 4.0.0 docs Apr 18, 2019
distro distro/deb: daemon-reload after http installation Apr 18, 2019
doc http: upgrading to 4.0.0 docs Apr 18, 2019
etc etc/config: explicitly set kind to tls Apr 18, 2019
lib simplify approach to bind() Apr 18, 2019
modules meson: nitpick newline Apr 25, 2019
scripts scripts: update obs-testbuild.sh Apr 18, 2019
systemd doc/net: nitpicks and system-kresd.slice restart Apr 18, 2019
tests
.clang-tidy gitlabci: fix lint:tidy Mar 12, 2019
.dir-locals.el added surmised C indentation rules for emacs users Apr 14, 2016
.gitattributes gitattributes: specify word diff regex for C and C++ sources Mar 6, 2019
.gitignore gitignore: don't ignore *.tar.xz Mar 12, 2019
.gitlab-ci.yml ci: fix test:valgrind Apr 26, 2019
.gitmodules
.luacheckrc ci: fix luacheck Apr 4, 2019
.travis.yml migrate to Knot DNS 2.8 Mar 12, 2019
AUTHORS AUTHORS: update Mar 12, 2019
COPYING move URLs from http to https where supported Jul 16, 2016
CodingStyle update link to Linux kernel coding style Jan 26, 2017
Dockerfile docker: update ports, add doh Apr 18, 2019
NEWS
README.md meson: doc/build - update build and docker info Mar 12, 2019
meson.build meson: explicitly disable unity builds Apr 23, 2019
meson_options.txt meson: modules/dnstap - build as a separate component Mar 12, 2019

README.md

Knot Resolver

Build Status Coverage Status Documentation Status

Knot Resolver is a caching full resolver implementation written in C and LuaJIT, both a resolver library and a daemon. The core architecture is tiny and efficient, and provides a foundation and a state-machine like API for extensions. There are three modules built-in - iterator, validator, cache, and a few more are loaded by default. Most of the rich features are written in Lua(JIT) and C. Batteries are included, but optional.

The LuaJIT modules, support DNS privacy and DNSSEC, and persistent cache with low memory footprint make it a great personal DNS resolver or a research tool to tap into DNS data. TL;DR it's the OpenResty of DNS.

Strong filtering rules, and auto-configuration with etcd make it a great large-scale resolver solution.

The server adopts a different scaling strategy than the rest of the DNS recursors - no threading, shared-nothing architecture (except MVCC cache that may be shared) that allows you to pin instances on available CPU cores and grow by self-replication. You can start and stop additional nodes depending on the contention without downtime.

It also has strong support for DNS over TCP, notably TCP Fast-Open, query pipelining and deduplication, and response reordering.

Packages

The latest stable packages for various distributions are available in our upstream repository. Follow the installation instructions to add this repository to your system.

Knot Resolver is also available from the following distributions' repositories.

Building from sources

Knot Resolver mainly depends on Knot DNS libraries, LuaJIT and libuv. See the Building project documentation page for more information.

Docker image

This is simple and doesn't require any dependencies or system modifications, just run:

$ docker run -Pit cznic/knot-resolver

The images are meant as an easy way to try knot-resolver, and they're not designed for production use.

Running

The project builds a resolver library in the lib directory, and a daemon in the daemon directory. It requires no configuration or parameters to run a server on localhost.

$ kresd

See the documentation at knot-resolver.readthedocs.io for more options.

Contacting us

You can’t perform that action at this time.