Skip to content
Snippets Groups Projects
user avatar
Marek Vavruša authored
efd78c41
Forked from Knot projects / Knot Resolver
8768 commits behind the upstream repository.

Knot DNS Resolver

Build Status Coverage Status

The Knot DNS Resolver is a minimalistic caching resolver implementation. The project provides both a resolver library and a small daemon. Modular architecture of the library keeps the core tiny and efficient, and provides a state-machine like API for extensions. There are two built-in modules: iterator and cache, and each module can be flipped on and off.

Try it out?

The Knot DNS Resolver is currently in an early development phase, you shouldn't put it in the production right away.

Docker image

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

$ docker run cznic/knot-resolver

See the build page registry.hub.docker.com/u/cznic/knot-resolver for more information and options.

Building from sources

The Knot DNS Resolver depends on the development version of the Knot DNS library. Several dependencies may not be in the packages yet, the script pulls and installs all dependencies in a chroot.

You can avoid rebuilding dependencies by specifying BUILD_IGNORE variable, see the Dockerfile for example. Usually you only really need to rebuild libknot.

$ export FAKEROOT="${HOME}/.local"
$ export PKG_CONFIG_PATH="${FAKEROOT}/lib/pkgconfig"
$ ./scripts/bootstrap-depends.sh ${FAKEROOT}
$ make
$ make check

Running

There is a separate resolver library in the lib directory, and a daemon in the daemon directory.

$ ./daemon/kresolved -h
$ ./daemon/kresolved -a "127.0.0.1#53"

More

See the documentation at knot-resolver.readthedocs.org.