]>
git.ipfire.org Git - thirdparty/knot-resolver.git/log
Lukáš Ondráček [Wed, 15 May 2024 15:10:37 +0000 (17:10 +0200)]
rrl WIP: add temporary measurements of CPU time measurement code
Lukáš Ondráček [Tue, 14 May 2024 11:53:16 +0000 (13:53 +0200)]
rrl WIP: increase precision of cpu work estimate using RDTSC
Vladimír Čunát [Tue, 7 May 2024 10:34:15 +0000 (12:34 +0200)]
daemon/rrl WIP: estimate CPU work done on behalf of clients
Lukáš Ondráček [Mon, 6 May 2024 15:32:45 +0000 (17:32 +0200)]
rrl: truncating answers when close to limit, dropping over limit
Vladimír Čunát [Sat, 20 Apr 2024 08:01:46 +0000 (10:01 +0200)]
rrl nit: factor out using_avx()
Vladimír Čunát [Sat, 20 Apr 2024 07:55:32 +0000 (09:55 +0200)]
fixup! rrl: improve error messages
Vladimír Čunát [Sat, 20 Apr 2024 07:16:29 +0000 (09:16 +0200)]
fixup! rrl: modify KRU api to return maximum final load value
- reordering saves 8 bytes per struct (on typical 64-bit platforms)
- don't assume that *max_load_out is initialized reasonably
(the doc-comment doesn't suggest that it's needed)
Lukáš Ondráček [Wed, 10 Apr 2024 16:17:26 +0000 (18:17 +0200)]
rrl: modify KRU api to return maximum final load value
Lukáš Ondráček [Wed, 10 Apr 2024 14:13:09 +0000 (16:13 +0200)]
rrl: improve error messages
Lukáš Ondráček [Wed, 10 Apr 2024 11:09:52 +0000 (13:09 +0200)]
Merge branch 'rrl-wip' of gitlab.nic.cz:knot/knot-resolver into rrl-wip
Lukáš Ondráček [Wed, 10 Apr 2024 11:08:10 +0000 (13:08 +0200)]
rrl: disable parallel tests under valgrind in CI
Vladimír Čunát [Wed, 10 Apr 2024 09:06:59 +0000 (11:06 +0200)]
fixup! rrl: configurable limits in yaml, deinit
I see no reason for these removed parts.
Lukáš Ondráček [Mon, 8 Apr 2024 13:47:15 +0000 (15:47 +0200)]
fixup! rrl: porting unit tests from Knot DNS
Lukáš Ondráček [Mon, 8 Apr 2024 13:42:17 +0000 (15:42 +0200)]
fixup! rrl: porting unit tests from Knot DNS
Vladimír Čunát [Mon, 8 Apr 2024 08:52:01 +0000 (10:52 +0200)]
lib/dnssec nit: improve #include path
No idea why it started causing issues now and for me, with:
lib/dnssec/nsec.c:19:10: fatal error: resolve.h: No such file or director
Lukáš Ondráček [Wed, 3 Apr 2024 18:53:52 +0000 (20:53 +0200)]
rrl: porting unit tests from Knot DNS
Lukáš Ondráček [Tue, 2 Apr 2024 15:47:27 +0000 (17:47 +0200)]
fixup! rrl: allow changing configuration on reload
Lukáš Ondráček [Tue, 2 Apr 2024 15:27:24 +0000 (17:27 +0200)]
fixup! fixup! rrl: configurable limits in yaml, deinit
Lukáš Ondráček [Tue, 2 Apr 2024 15:14:06 +0000 (17:14 +0200)]
fixup! rrl: configurable limits in yaml, deinit
Lukáš Ondráček [Tue, 2 Apr 2024 14:17:05 +0000 (16:17 +0200)]
rrl: allow changing configuration on reload
Lukáš Ondráček [Wed, 27 Mar 2024 10:45:30 +0000 (11:45 +0100)]
rrl: configurable limits in yaml, deinit
Lukáš Ondráček [Tue, 26 Mar 2024 15:25:52 +0000 (16:25 +0100)]
rrl: check and log chosen impl. (generic vs AVX2)
Lukáš Ondráček [Tue, 26 Mar 2024 15:10:40 +0000 (16:10 +0100)]
rrl: incorporate KRU changes from Knot DNS
Lukáš Ondráček [Tue, 26 Mar 2024 11:38:18 +0000 (12:38 +0100)]
rrl: sharing memory between processes, basic limiting
Vladimír Čunát [Tue, 19 Mar 2024 11:15:14 +0000 (12:15 +0100)]
PoC: rate-limit everything for now :-)
Vladimír Čunát [Mon, 18 Mar 2024 18:26:13 +0000 (19:26 +0100)]
WIP: CI nits
Vladimír Čunát [Mon, 18 Mar 2024 17:54:34 +0000 (18:54 +0100)]
TMP: replace symlinks by contents
from knot-dns commit
033e81f81f5cc41e650eae056c4c2b5f0a61a7f8
Vladimír Čunát [Tue, 27 Feb 2024 09:09:22 +0000 (10:09 +0100)]
TMP: compile the KRU into daemon
Meant for TMP easier development - you need to symlink daemon/rrl/knot
to knot-dns source, as the KRU source files will be taken from there.
Vladimír Čunát [Tue, 27 Feb 2024 09:06:29 +0000 (10:06 +0100)]
WIP: add contrib/openbsd/siphash.*
The same as knot-dns, except for dropping memzero() after hashing.
Oto Šťáva [Mon, 18 Mar 2024 09:56:44 +0000 (10:56 +0100)]
Merge branch 'doc-move-pages' into '6.0'
remove `doc-dev` directory, merge into `doc/dev`
See merge request knot/knot-resolver!1515
Oto Šťáva [Mon, 18 Mar 2024 09:38:48 +0000 (10:38 +0100)]
remove `doc-dev` directory, merge into `doc/dev`
Oto Šťáva [Fri, 15 Mar 2024 15:11:58 +0000 (16:11 +0100)]
Merge branch 'doc-separation' into '6.0'
Separate user and developer documentation
See merge request knot/knot-resolver!1514
Oto Šťáva [Fri, 15 Mar 2024 14:57:38 +0000 (15:57 +0100)]
doc: better headings
Oto Šťáva [Fri, 15 Mar 2024 13:55:44 +0000 (14:55 +0100)]
NEWS update
Oto Šťáva [Fri, 15 Mar 2024 13:24:29 +0000 (14:24 +0100)]
doc: various fixes
Fix cross-references, heading levels, etc.
Aleš Mrázek [Fri, 19 Jan 2024 16:15:06 +0000 (17:15 +0100)]
doc/user: installation update
Oto Šťáva [Fri, 15 Mar 2024 10:45:46 +0000 (11:45 +0100)]
doc/dev/index: add backlink to the user docs + warning
Oto Šťáva [Fri, 15 Mar 2024 10:44:54 +0000 (11:44 +0100)]
doc/dev/build: add missing article
Aleš Mrázek [Mon, 15 Jan 2024 22:19:47 +0000 (23:19 +0100)]
doc: separate user and developer documentation
This separates the documentation into a *blue* user documentation and a
*red* developer documentation, resolving problems where similar sections
collided in search queries, leading users to the advanced Lua config
documentation instead of the preferred declarative config one.
It also visually separates the two parts, so that users who do not wish
to meddle in Lua immediately see that they're somewhere wrong just by
seeing the red colour.
Oto Šťáva [Wed, 13 Mar 2024 09:57:57 +0000 (10:57 +0100)]
Merge branch 'manager-install-config' into '6.0'
python: expose prefix configuration as a module
See merge request knot/knot-resolver!1511
Oto Šťáva [Fri, 1 Mar 2024 09:13:08 +0000 (10:13 +0100)]
python: expose prefix configuration as a module
Vladimír Čunát [Mon, 11 Mar 2024 12:43:22 +0000 (13:43 +0100)]
Merge !1508: lib/dnssec: dnskey nits
Vladimír Čunát [Mon, 11 Mar 2024 06:09:53 +0000 (07:09 +0100)]
docs: fix typo in an option name
Reported on chat:
https://matrix.to/#/!yEaUZSBVTYRlULEqON:gitter.im/$ZXYw2v_QnbgIiP83lNtBiBptiJxqcXPKe4GI47tI86E?via=gitter.im&via=matrix.org&via=kack.it
Vladimír Čunát [Mon, 4 Mar 2024 18:59:54 +0000 (19:59 +0100)]
lib/dnssec nit: reverse order of validating a DNSKEY set
Suggested by Libor Peltan.
Vladimír Čunát [Mon, 4 Mar 2024 18:20:37 +0000 (19:20 +0100)]
lib/dnssec: refactor kr_dnssec_key_*
- The "ksk" and "zsk" in names were confusing,
as they did NOT match the normal terms of KSK and ZSK.
- Add _usable() as a more useful function than _zsk() was.
- don't use 16-bit flag-sets; it's way easier to extract on byte level
- use inline for the simplified code
Aleš Mrázek [Mon, 26 Feb 2024 12:05:54 +0000 (13:05 +0100)]
Merge branch 'forward-auth-port' into '6.0'
forwarding to authoritative servers doesn't allow overriding ports
See merge request knot/knot-resolver!1505
Aleš Mrázek [Fri, 23 Feb 2024 18:22:22 +0000 (19:22 +0100)]
datamodel: forward: custom port and TLS are not supported for authoritative servers
Vladimír Čunát [Fri, 23 Feb 2024 08:13:54 +0000 (09:13 +0100)]
document limitation of forwarding to authoritative servers
Vladimír Čunát [Wed, 21 Feb 2024 14:07:00 +0000 (15:07 +0100)]
Merge !1504: kresctl: timeout for http request
Aleš Mrázek [Wed, 21 Feb 2024 14:05:44 +0000 (15:05 +0100)]
NEWS update
Aleš Mrázek [Tue, 20 Feb 2024 17:29:21 +0000 (18:29 +0100)]
utils/request.py: higher timeout for http request
Aleš Mrázek [Tue, 20 Feb 2024 13:44:54 +0000 (14:44 +0100)]
Merge branch 'python3.12-support' into '6.0'
manager: poetry: support for python 3.12
See merge request knot/knot-resolver!1502
Oto Šťáva [Tue, 20 Feb 2024 10:31:20 +0000 (11:31 +0100)]
manager: update Python versions
Use the oldest supported Python by default again, since that ensures our
compatibility. Also, remove explicit Python versions from README to
avoid duplication - `pyenv install` just installs the versions that are
already in `.python-version`, so let's leverage that.
Aleš Mrázek [Mon, 19 Feb 2024 15:25:56 +0000 (16:25 +0100)]
lint: fixes for new versions of tools
Aleš Mrázek [Mon, 19 Feb 2024 15:16:04 +0000 (16:16 +0100)]
manager: ci: switch to python 3.12
Aleš Mrázek [Mon, 19 Feb 2024 15:14:40 +0000 (16:14 +0100)]
poetry: support for python 3.12
- poetry: upgrade to 1.7.1
- poetry: python 3.7 support removed
- poetry: unnecessary tox tool removed
- poetry: deps version update
Vladimír Čunát [Mon, 19 Feb 2024 09:34:55 +0000 (10:34 +0100)]
Merge !1500: datamodel: support interface names with dashes
Fixes #900
Vladimír Čunát [Mon, 19 Feb 2024 09:02:55 +0000 (10:02 +0100)]
datamodel: support interface names with dashes
Dashes can't be present in normal identifiers in Lua,
so we switch to a different syntactic sugar for the same thing.
Oto Šťáva [Fri, 16 Feb 2024 10:07:09 +0000 (11:07 +0100)]
Merge branch 'manager-nits' into '6.0'
manager: nits, cleanups, fixes
See merge request knot/knot-resolver!1496
Oto Šťáva [Mon, 5 Feb 2024 16:38:18 +0000 (17:38 +0100)]
manager: get rid of old linters and clean-up some warnings
Removes references to pyright, which is not in use anymore. Also removes
warning suppressions and instead properly resolves the warnings.
Oto Šťáva [Mon, 5 Feb 2024 16:03:44 +0000 (17:03 +0100)]
manager: move `build.py` to `build_c_extensions.py`
This fixes a problem on some systems, where the `build.py` file
conflicts with the `build` module required by Poetry.
See <https://github.com/python-poetry/poetry/issues/7576>.
Oto Šťáva [Mon, 5 Feb 2024 16:02:41 +0000 (17:02 +0100)]
manager: have pyenv prefer the latest Python version instead of the oldest
Oto Šťáva [Thu, 15 Feb 2024 12:38:40 +0000 (13:38 +0100)]
Merge branch 'manager-api-cache-clear' into '6.0'
manager: cache-clear command via HTTP API
Closes #876
See merge request knot/knot-resolver!1491
Aleš Mrázek [Thu, 15 Feb 2024 11:10:08 +0000 (12:10 +0100)]
manager/tests: validate JSON output from "kresctl cache clear --json" command
Aleš Mrázek [Fri, 9 Feb 2024 15:05:37 +0000 (16:05 +0100)]
kresctl: config: reduction of duplicate code related to the data parsing
- set: there is no need to specify the input data format
- get: YAML is now the default format for output data
Aleš Mrázek [Fri, 9 Feb 2024 15:05:05 +0000 (16:05 +0100)]
kresctl: cache command: output formats for 'clear' operation
Aleš Mrázek [Fri, 9 Feb 2024 15:04:07 +0000 (16:04 +0100)]
modeling: parsing: data dump from instances of class 'Renamed'
Oto Šťáva [Fri, 9 Feb 2024 09:55:17 +0000 (10:55 +0100)]
manager: use proper JSON values for socket communication
This commit adds a special JSON mode for control sockets.
The mode is activated by issuing a special `__json` command to the
socket, resulting in all Lua objects returned by all subsequent commands
to be serialized into JSONs, prepended by a 32-bit unsigned integer
byte-length value.
This JSON mode is now exclusively utilized by Manager, removing the need
to hackily strip single-quotes from the output and to read the output by
lines. Instead, it can always just read the 32-bit length value and
subsequently the whole JSON-formatted message, which is now
automatically deserialized into a Python object.
Aleš Mrázek [Tue, 6 Feb 2024 13:00:06 +0000 (14:00 +0100)]
'cache-clear' remade to 'cache/clear'
Aleš Mrázek [Mon, 5 Feb 2024 15:15:58 +0000 (16:15 +0100)]
naming: replacing 'kids' suffix with 'kresids' for clarification
Aleš Mrázek [Mon, 29 Jan 2024 15:42:18 +0000 (16:42 +0100)]
doc: cache clearing
Aleš Mrázek [Mon, 29 Jan 2024 14:19:58 +0000 (15:19 +0100)]
manager/tests: simple test for /cache-clear API endpoint
Aleš Mrázek [Mon, 29 Jan 2024 14:09:28 +0000 (15:09 +0100)]
doc/manager-client.rst: 'cache-clear' command added
Aleš Mrázek [Mon, 22 Jan 2024 20:41:31 +0000 (21:41 +0100)]
api: cache-clear: validate data, render lua and send cmd
Aleš Mrázek [Mon, 22 Jan 2024 20:36:46 +0000 (21:36 +0100)]
datamodel: schema and template for cache-clear command
Aleš Mrázek [Mon, 22 Jan 2024 13:37:36 +0000 (14:37 +0100)]
api: added cache-clear route
Aleš Mrázek [Mon, 22 Jan 2024 13:02:00 +0000 (14:02 +0100)]
datamodel: moving the main jinja template loader to the templates dir
Aleš Mrázek [Mon, 22 Jan 2024 12:57:10 +0000 (13:57 +0100)]
controller: moving workers registration helpers out of the statistics module
Aleš Mrázek [Tue, 14 Nov 2023 13:04:29 +0000 (14:04 +0100)]
kresctl: 'cache-clear' command created
Vladimír Čunát [Tue, 13 Feb 2024 13:17:57 +0000 (14:17 +0100)]
Merge branch 'release-6.0.6' into 6.0
Vladimír Čunát [Tue, 13 Feb 2024 13:05:13 +0000 (14:05 +0100)]
Release 6.0.6
Vladimír Čunát [Tue, 13 Feb 2024 13:17:07 +0000 (14:17 +0100)]
AUTHORS update
Vladimír Čunát [Tue, 13 Feb 2024 13:09:56 +0000 (14:09 +0100)]
Merge !1497: lib/dnssec: allow validating some RRsets around 64 KiB size
Vladimír Čunát [Tue, 6 Feb 2024 08:41:04 +0000 (09:41 +0100)]
lib/dnssec: allow validating some RRsets around 64 KiB size
- only with libknot >= 3.4 though (which is not released yet)
- use stack instead of static buffer (saves RAM; see code comment)
Vladimír Čunát [Tue, 13 Feb 2024 12:32:32 +0000 (13:32 +0100)]
NEWS for 6.0.6
Vladimír Čunát [Tue, 13 Feb 2024 12:12:41 +0000 (13:12 +0100)]
Merge branch 'master' into dos-feb13-6.0
There were some nontrivial conflicts to resolve, NEWS + the line
ctx->vld_limit_crypto = KR_VLD_LIMIT_CRYPTO_DEFAULT;
(I had this resolution prepared for a long time.)
Aleš Mrázek [Tue, 13 Feb 2024 09:08:04 +0000 (10:08 +0100)]
release 5.7.1
Vladimír Čunát [Tue, 13 Feb 2024 11:43:16 +0000 (12:43 +0100)]
Merge: mitigate CVE-2023-50387 "KeyTrap"
DNSSEC verification complexity could be exploited to exhaust CPU resources and stall DNS resolvers.
Solution boils down mainly to limiting crypto-validations per packet.
Vladimír Čunát [Mon, 1 Jan 2024 15:25:05 +0000 (16:25 +0100)]
update NEWS with KeyTrap
in a separate commit, as it will tend to conflict if patching
Vladimír Čunát [Tue, 16 Jan 2024 06:35:20 +0000 (07:35 +0100)]
mitigate KeyTrap DoS = CVE-2023-50387
Improve: don't retry in this case.
Vladimír Čunát [Mon, 1 Jan 2024 15:21:10 +0000 (16:21 +0100)]
mitigate KeyTrap DoS = CVE-2023-50387
Vladimír Čunát [Mon, 1 Jan 2024 15:05:46 +0000 (16:05 +0100)]
lib/resolve kr_request_set_extended_error(): tweak priorities
Keep the first error in case priorities are equal.
At least with the current KeyTrap topic that should work better,
but blaming a single error is alchemy anyway, at least in some cases.
Vladimír Čunát [Sat, 30 Dec 2023 08:20:56 +0000 (09:20 +0100)]
lib/dnssec kr_rrset_validate_with_key(): deduplicate cleanup
Vladimír Čunát [Tue, 13 Feb 2024 08:46:09 +0000 (09:46 +0100)]
Merge CVE-2023-50868: NSEC3 closest encloser proof can exhaust CPU
Vladimír Čunát [Mon, 12 Feb 2024 13:06:28 +0000 (14:06 +0100)]
Merge branch 'master' into 6.0
There were some conflicts with !1495
Vladimír Čunát [Mon, 12 Feb 2024 10:30:50 +0000 (11:30 +0100)]
validator: compatibility with older libknot versions
The value is in IANA registry, so it's very constant anyway.
Vladimír Čunát [Mon, 12 Feb 2024 10:23:42 +0000 (11:23 +0100)]
add NEWS for NSEC3 mitigations from the previous few commits
Vladimír Čunát [Mon, 12 Feb 2024 10:16:47 +0000 (11:16 +0100)]
validator: refuse to validate answers with more than 8 NSEC3 records
Vladimír Čunát [Mon, 12 Feb 2024 10:16:37 +0000 (11:16 +0100)]
validator: limit the amount of work on SHA1 in NSEC3 proofs
Vladimír Čunát [Sun, 11 Feb 2024 09:00:32 +0000 (10:00 +0100)]
lib/cache: limit the amount of work on SHA1
That's when searching NSEC3 aggressive cache.