• Stars
    star
    355
  • Rank 119,764 (Top 3 %)
  • Language
    C
  • License
    Other
  • Created over 9 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Knot Resolver - resolve DNS names like it's 2024

Knot Resolver

Build Status Coverage Status Documentation Status Packaging 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

More Repositories

1

pz

Easily handle day to day CLI operation via Python instead of regular Bash programs. 🇺🇦 #supporting
Python
719
star
2

pyoidc

A complete OpenID Connect implementation in Python
Python
714
star
3

knot

A mirrored repository
C
196
star
4

turris-os

Mirror of https://gitlab.nic.cz/turris/openwrt
C
188
star
5

envelope

Insert a message and attachments and send e-mail / sign / encrypt contents by a single line.
Python
171
star
6

run-or-raise

GNOME3 extension
JavaScript
141
star
7

bird

BIRD Internet Routing Daemon
C
76
star
8

yangson

Python
51
star
9

python-rt

Python interface to Request Tracker API
Python
50
star
10

turris-os-packages

Mirror of https://gitlab.nic.cz/turris/turris-os-packages
Makefile
43
star
11

deckard

DNS test harness
Python
43
star
12

dns-fuzzing

Repository to store unique seeds for DNS server fuzzing
42
star
13

shotgun

DNS Shotgun: high-performance realistic DNS benchmarking tool. This is a mirrored repository.
C
39
star
14

django-fido

Django application for FIDO protocol U2F
Python
27
star
15

reforis

Mirror of https://gitlab.nic.cz/turris/reforis/reforis
JavaScript
19
star
16

convey

CSV processing and web related data types mutual conversion
Python
17
star
17

jetconf

Python
13
star
18

foris

Foris is a simplified web interface to router administration using netconf and nuci behind the scenes. Foris means gate in Latin.
Python
13
star
19

turris-misc

Mirror of https://gitlab.nic.cz/turris/misc
C
11
star
20

turris-updater

Mirror of https://gitlab.nic.cz/turris/updater/updater
C
11
star
21

kippo

now testing changes from cowrie
Python
10
star
22

ucollect

Network monitoring probe with plugins for anomaly detection
C
10
star
23

gadgets_demo

Demos related to the TURRIS:GADGETS project of Jablotron and CZ.NIC
Python
9
star
24

nuci

Netconf based interface to OpenWrt UCI (unified configuration interface).
Lua
8
star
25

fred-client

FRED subproject: A Python EPP client – a CLI application and an API library
Python
7
star
26

fred-server

FRED subproject: C++ CORBA servers (back end) for the core registry functionality and a CLI administration tool
C++
7
star
27

django-pain

Django Payments and Invoices
Python
6
star
28

dns-collector

DNC collector colletcs data from DNS server into CSV file.
C
6
star
29

u-boot-turris

Mirror of https://gitlab.nic.cz/turris/u-boot-turris
C
6
star
30

domoticz-turris-gadgets

Fork of Domoticz (https://domoticz.com/) with support for Turris Gadgets.
C
6
star
31

fred-docs

FRED subproject: Documentation
Makefile
6
star
32

libatsha204

Mirror of https://gitlab.nic.cz/turris/libatsha204
C
5
star
33

fred-rdap

FRED subproject: An RDAP server (front end) prototype implemented with Django
Python
5
star
34

setuptools-grpc

Setuptools module for building protobuf and grpc service python modules.
Python
5
star
35

socket_wrapper

Modified version of https://cwrap.org/socket_wrapper.html which allows the program to bind to arbitrary IP addresses.
C
4
star
36

turris-build

Mirror of https://gitlab.nic.cz/turris/turris-build/
Shell
4
star
37

python-ubus

Python 2/3 bindings for ubus (mirror of https://gitlab.labs.nic.cz/turris/python-ubus , please report bugs/MR there)
C
4
star
38

nikola

Mirror of https://gitlab.nic.cz/turris/sentinel/nikola
Python
3
star
39

mininterface

A minimal interface to Python application
Python
3
star
40

schedule-shift

Simple work scheduling for a small team
JavaScript
2
star
41

silicon-clustering

SIngle-LInkage CONnnectivity clustering
Python
2
star
42

django-eidas-specific-node

Python
2
star
43

fred-webwhois

FRED subproject: The web WHOIS server (front end) implemented with Django
Python
2
star
44

smrt

Small Modem for Router Turris
C
2
star
45

yang-dns

YANG data models for DNS data and services
XSLT
2
star
46

django-oidc-sub

Django application for login through OpenID Connect
Python
2
star
47

djangocms-git-md-page

DjangoCMS plugin for displaying a page with markdown in git repository.
Python
2
star
48

fred-cdnskey-scanner

FRED subproject: A CLI tool to scan a set of domains for CDNSKEY records
C++
2
star
49

buildsystem

Lightweight replacement for autotools used in several Turris related applications
Perl
2
star
50

mojeid-connect-js

JavaScript
2
star
51

setuptools_webpack

Plugin for setuptools to build and compile JS files using webpack.
Python
2
star
52

foris-tls-plugin

Foris plugin providing frontend for NUCI TLS plugin.
Python
1
star
53

turris-schnapps

Mirror of https://gitlab.nic.cz/turris/schnapps
Shell
1
star
54

dns-server-yang

YANG data model for DNS server (mirror from Gitlab)
XSLT
1
star
55

jukebox-jetconf

Python
1
star
56

firewall3

Local fork of git://nbd.name/firewall3.git by Jo-Philipp Wich <[email protected]> used in router Turris
C
1
star
57

fred-mod-eppd

FRED subproject: An Apache module for parsing EPP commands and transforming them into CORBA calls to a back-end server (and vice versa)
C
1
star
58

slidershow

media player, organizer & presenter
JavaScript
1
star
59

zone-data-yang

XSLT
1
star
60

zone-monitor

Check for suspicious newly registered domains
Python
1
star
61

fw-rules

Firewall rules for Turris
Shell
1
star
62

fred-libfred

FRED basic entities operations library
C++
1
star
63

c-dns

Mirror repository of https://gitlab.nic.cz/knot/c-dns.
C++
1
star
64

fred-db

FRED subproject: A collection of SQL scripts to set up the database in PostgreSQL
PLpgSQL
1
star
65

boot-format

Development copy of a tool for preparation of bootable SD images. Cloned from http://git.freescale.com/git/cgit.cgi/ppc/sdk/boot-format.git/
C
1
star
66

respdiff

DNS responses gathering and differences analysis toolchain. This is a mirrored repository.
Python
1
star
67

fred-webadmin

FRED subproject: The Daphne web administration server (front end) for registry customer support
JavaScript
1
star