]>
git.ipfire.org Git - thirdparty/knot-resolver.git/log
Aleš Mrázek [Thu, 6 Nov 2025 09:21:19 +0000 (10:21 +0100)]
manager/kafka_client.py: use asyncio.Task for consumer and consuming messages
Aleš Mrázek [Mon, 27 Oct 2025 13:39:49 +0000 (14:39 +0100)]
manager: kafka: added 'group-id' option to determine the recipient of the message
Aleš Mrázek [Mon, 27 Oct 2025 09:48:28 +0000 (10:48 +0100)]
manager/kafka_client.py: Do not trigger a configuration renewal after receiving a non-config file
Aleš Mrázek [Fri, 24 Oct 2025 13:25:54 +0000 (15:25 +0200)]
manager: forward dnstap logs to kafka
Aleš Mrázek [Fri, 10 Oct 2025 18:23:47 +0000 (20:23 +0200)]
fixup! fixup! fixup! fixup! manager/kafka_client.py: support for binary files
Aleš Mrázek [Fri, 10 Oct 2025 14:37:32 +0000 (16:37 +0200)]
fixup! fixup! fixup! manager/kafka_client.py: support for binary files
Aleš Mrázek [Fri, 10 Oct 2025 11:53:53 +0000 (13:53 +0200)]
fixup! fixup! manager/kafka_client.py: support for binary files
Aleš Mrázek [Fri, 10 Oct 2025 11:41:53 +0000 (13:41 +0200)]
fixup! manager/kafka_client.py: support for binary files
Aleš Mrázek [Fri, 10 Oct 2025 10:44:06 +0000 (12:44 +0200)]
doc: config.schema.json: added tunnel-filter
Aleš Mrázek [Fri, 10 Oct 2025 09:12:54 +0000 (11:12 +0200)]
datamodel: tunnel-filter: fixed formatting
Aleš Mrázek [Thu, 9 Oct 2025 16:19:11 +0000 (18:19 +0200)]
manager/kafka_client.py: callback and verifier fix
Vladimír Čunát [Thu, 9 Oct 2025 08:56:41 +0000 (10:56 +0200)]
Merge master into jezek-test
Aleš Mrázek [Wed, 8 Oct 2025 12:41:30 +0000 (14:41 +0200)]
manager/kafka_client.py: support for binary files
Vladimír Čunát [Thu, 2 Oct 2025 13:09:17 +0000 (15:09 +0200)]
Merge tunnel-filter into jezek-test
Vladimír Čunát [Mon, 29 Sep 2025 09:16:25 +0000 (11:16 +0200)]
datamodel: add the /tunnel-filter parts
Vladimír Čunát [Mon, 29 Sep 2025 09:16:25 +0000 (11:16 +0200)]
tunnel: minor nits
Vladimír Čunát [Mon, 29 Sep 2025 09:16:25 +0000 (11:16 +0200)]
lib/module: load the symbols of C modules into the global namespace
This allows to access also those symbols via LuaJIT's ffi.C.symbol,
after binding them ffi.cdef().
I think the risk of negative effects from is rather low.
Vladimír Čunát [Thu, 25 Sep 2025 09:24:12 +0000 (11:24 +0200)]
tunnel nit: refactor/simplify the core function a bit
Vladimír Čunát [Thu, 25 Sep 2025 06:49:02 +0000 (08:49 +0200)]
tunnel: implement tags and auditing
Vladimír Čunát [Thu, 25 Sep 2025 06:49:02 +0000 (08:49 +0200)]
lib/rules: expose kr_rule_do_answer()
Also refactor the lookup format conversion.
Vladimír Čunát [Tue, 23 Sep 2025 09:32:55 +0000 (11:32 +0200)]
tunnel nit: really use standard rounding in the computation
The difference in the results shouldn't be noticeable.
The original code in ratelimiting.c used `>> 16` instead of `>> 32`,
so the `+ (1<<15)` for rounding came from there unmodified.
Vladimír Čunát [Tue, 23 Sep 2025 09:10:50 +0000 (11:10 +0200)]
tunnel nit: for price_scale_factor use multiplication, not division
We were multiplying by 2^16 and dividing by 25,
so directly multiplying by round(65536/25) will be almost the same.
Note that (integer) division can be very expensive in some CPUs.
Vladimír Čunát [Sat, 20 Sep 2025 09:19:44 +0000 (11:19 +0200)]
WIP
struct dns_tunnel_filter:
- TorchModule can't be in the mmapped structure, as it's a pointer
- drop unneeded parts
Vladimír Čunát [Tue, 23 Sep 2025 07:30:34 +0000 (09:30 +0200)]
lib/kru-utils.h: new header to deduplicate stuff
I don't like that these defines were repeated three times now already.
This new header is specific to Knot Resolver:
- kr_require() can be used, for example
- the defines maybe aren't worth deduplicating between knot-{dns,resolver}
Vladimír Čunát [Fri, 12 Sep 2025 06:50:53 +0000 (08:50 +0200)]
daemon/http.c: tweak the user_key (which gets into dnstap)
Mainly strip any "/dns-query" suffix.
Vladimír Čunát [Thu, 18 Sep 2025 14:09:52 +0000 (16:09 +0200)]
CI + .deb packaging for dns_tunnel_filter - partially temporary
Aleš Mrázek [Tue, 9 Sep 2025 14:03:20 +0000 (16:03 +0200)]
fixup! manager/kafka_client.py: reconnect on unexpected errors
Vladimír Čunát [Sat, 20 Sep 2025 08:27:58 +0000 (10:27 +0200)]
WIP: moving from daemon/ to modules/dns_tunnel_filter/
Aleš Mrázek [Tue, 9 Sep 2025 13:40:53 +0000 (15:40 +0200)]
manager/kafka_client.py: reconnect on unexpected errors
Vladimír Čunát [Thu, 18 Sep 2025 13:05:55 +0000 (15:05 +0200)]
WIP [tunneling]: changes to absorb, most likely
Vladimír Čunát [Thu, 18 Sep 2025 12:40:22 +0000 (14:40 +0200)]
TMP merge jezek-test with dns-tunnel-filter
Vladimír Čunát [Mon, 8 Sep 2025 06:51:34 +0000 (08:51 +0200)]
dnstap: send the first tag's name
The code is in lib/rules/ really.
Vladimír Čunát [Fri, 5 Sep 2025 13:27:37 +0000 (15:27 +0200)]
python+lua parts for auditing
Vladimír Čunát [Thu, 4 Sep 2025 06:52:57 +0000 (08:52 +0200)]
lib/rules: WIP adding tagset for auditing
Vladimír Čunát [Thu, 4 Sep 2025 07:00:59 +0000 (09:00 +0200)]
lib/rules refactor: swap ztype+tags for ZLA entries
This should simplify further changes.
Forwarding doesn't utilize tags and isn't expected soon,
and overall it differs a lot, so it makes sense
to swap the order of serialization in the rule DB
(and omit tags from forwarding, as that's trivial now).
Vladimír Čunát [Wed, 3 Sep 2025 07:01:38 +0000 (09:01 +0200)]
dnstap: prepare to represent auditing and rule's tag
Vladimír Čunát [Sun, 31 Aug 2025 10:09:46 +0000 (12:09 +0200)]
WIP unblock: fill from CNAME rpz-passthru.
Vladimír Čunát [Sun, 31 Aug 2025 09:26:20 +0000 (11:26 +0200)]
WIP unblock: add kr_rule_local_unblock()
Vladimír Čunát [Sun, 31 Aug 2025 08:48:49 +0000 (10:48 +0200)]
WIP unblock: add the actual unblocking mechanics
Vladimír Čunát [Sun, 31 Aug 2025 08:27:10 +0000 (10:27 +0200)]
WIP unblock: add a special ruleset for unblock-lists
Vladimír Čunát [Sat, 30 Aug 2025 15:13:36 +0000 (17:13 +0200)]
WIP unblock: factor out subtree_search()
Very minimal changes done:
- instead of `break` from the do-while we return RET_CONTINUE
- pulls the query type from qry->stype again
Vladimír Čunát [Fri, 29 Aug 2025 07:12:06 +0000 (09:12 +0200)]
merge master
Vladimír Čunát [Fri, 29 Aug 2025 07:08:58 +0000 (09:08 +0200)]
daemon/http: always accept /dns-query again
Things changing all the time.
At least this should fix CI on this branch.
Aleš Mrázek [Tue, 19 Aug 2025 10:06:17 +0000 (12:06 +0200)]
manager/kafka-client.md: basic info on how kafka_client works
Vladimír Čunát [Tue, 12 Aug 2025 15:25:41 +0000 (17:25 +0200)]
lib/rules/zonefile: print line number in case of error
This is especially useful when debugging large RPZ files.
Aleš Mrázek [Thu, 7 Aug 2025 21:13:13 +0000 (23:13 +0200)]
.gitlab-ci.yml: added 'python:kafka' job
Aleš Mrázek [Mon, 4 Aug 2025 22:15:21 +0000 (00:15 +0200)]
manager/kafka_client.py: separate file for each chunk
Each chunk of the file is stored separately. If all the chunks are available, the final file is assembled.
Aleš Mrázek [Mon, 4 Aug 2025 22:07:25 +0000 (00:07 +0200)]
manager/files/watchdog: reduce the verbosity of watchdog module logger
Aleš Mrázek [Mon, 4 Aug 2025 14:43:09 +0000 (16:43 +0200)]
datamodel: views tags validation bug fix
Identical tags were added to the checklist multiple times and then failed with unused tags.
Aleš Mrázek [Thu, 31 Jul 2025 09:27:14 +0000 (11:27 +0200)]
manager/kafka_client.py: init kafka using config_store callback
Aleš Mrázek [Wed, 30 Jul 2025 13:23:46 +0000 (15:23 +0200)]
manager/kafka_client.py: use headers instead of parsing message key
Aleš Mrázek [Tue, 29 Jul 2025 14:17:08 +0000 (16:17 +0200)]
manager/kafka_client.py: trigger config reload for configuration
Using the API and file for dynamic configuration makes it impossible to determine which parts are dynamic and which are static because, after validation, they become one configuration. Therefore, it is easier to use a file that is completely replaced by the new configuration.
Aleš Mrázek [Tue, 29 Jul 2025 14:01:27 +0000 (16:01 +0200)]
manager/kafka_client.py: backup files only when they exists
Aleš Mrázek [Mon, 28 Jul 2025 14:27:23 +0000 (16:27 +0200)]
distro/pkg: added python(3)-kafka package
Aleš Mrázek [Mon, 28 Jul 2025 12:51:31 +0000 (14:51 +0200)]
manager/kafka_client.py: use 'files-dir' config option for relative paths
Aleš Mrázek [Mon, 28 Jul 2025 09:52:50 +0000 (11:52 +0200)]
datamodel/kafka_schema.py: improved 'server' option
The domain name has been added as an option. You can also add a list of servers.
Aleš Mrázek [Mon, 28 Jul 2025 09:49:07 +0000 (11:49 +0200)]
datamodel/types: created DomanNameOptionalPort' type
This custom type allows use of values in the format <domain-name>[@<port>].
Aleš Mrázek [Mon, 28 Jul 2025 09:00:30 +0000 (11:00 +0200)]
datamodel/kafka_schema.py: added 'files_dir' option
Directory for storing files received via Kafka.
Aleš Mrázek [Mon, 28 Jul 2025 08:53:35 +0000 (10:53 +0200)]
constants.py: added WORK_DIR
Aleš Mrázek [Fri, 25 Jul 2025 12:32:54 +0000 (14:32 +0200)]
manager/kafka_client.py: consume config
Aleš Mrázek [Thu, 24 Jul 2025 22:34:37 +0000 (00:34 +0200)]
manager/kafka_client.py: switched to triggers module
Aleš Mrázek [Thu, 9 Oct 2025 08:45:49 +0000 (10:45 +0200)]
Merge branch 'reload-force' into 'master'
manager: new API route for forced reload
Closes #939
See merge request knot/knot-resolver!1748
Aleš Mrázek [Wed, 8 Oct 2025 20:47:52 +0000 (22:47 +0200)]
NEWS: added configuration force reload
Aleš Mrázek [Wed, 8 Oct 2025 19:17:46 +0000 (21:17 +0200)]
tests/packaging/interactive: added tests for configuration reload and renew
Aleš Mrázek [Wed, 8 Oct 2025 13:50:02 +0000 (15:50 +0200)]
manager/triggers.py: force renew/reload
Aleš Mrázek [Thu, 24 Jul 2025 09:46:00 +0000 (11:46 +0200)]
manager/files/watchdog.py: switched to triggers module
Aleš Mrázek [Thu, 24 Jul 2025 09:45:21 +0000 (11:45 +0200)]
manager/triggers.py: new module to globally handle triggered command
Aleš Mrázek [Tue, 7 Oct 2025 12:39:06 +0000 (14:39 +0200)]
tests/packaging/interactive/reload.sh: improved test for reload and force reload
Aleš Mrázek [Tue, 7 Oct 2025 11:47:53 +0000 (13:47 +0200)]
client: reload: added --force flag
Aleš Mrázek [Tue, 7 Oct 2025 10:56:07 +0000 (12:56 +0200)]
manager: added /reload/force API route
Vladimír Čunát [Fri, 3 Oct 2025 11:27:23 +0000 (13:27 +0200)]
Merge !1746: Revert !1743: contrib/mempattern: silence UBSAN on newer clang
Vladimír Čunát [Fri, 3 Oct 2025 11:19:14 +0000 (13:19 +0200)]
Revert "Merge !1743: contrib/mempattern: silence UBSAN on newer clang"
This reverts merge request !1743
Aleš Mrázek [Tue, 30 Sep 2025 13:09:08 +0000 (15:09 +0200)]
Merge branch 'news-add-1739' into 'master'
NEWS: added address renumbering bugfix
See merge request knot/knot-resolver!1745
Aleš Mrázek [Tue, 30 Sep 2025 13:06:56 +0000 (15:06 +0200)]
NEWS: added bugfix from !1739
Aleš Mrázek [Tue, 30 Sep 2025 12:24:56 +0000 (14:24 +0200)]
Merge branch 'client-input-files-comb' into 'master'
kresctl: commands: allow combination of config files
See merge request knot/knot-resolver!1738
Aleš Mrázek [Thu, 11 Sep 2025 09:27:21 +0000 (11:27 +0200)]
client: convert: allow combination of config files
Aleš Mrázek [Thu, 11 Sep 2025 09:02:25 +0000 (11:02 +0200)]
client: validate: allow combination of config files
Aleš Mrázek [Tue, 30 Sep 2025 12:01:02 +0000 (14:01 +0200)]
Merge branch 'templates-renumber-fix' into 'master'
datamodel/templates/network.lua.j2: renumber.config typo fix
See merge request knot/knot-resolver!1739
Aleš Mrázek [Fri, 12 Sep 2025 11:14:51 +0000 (13:14 +0200)]
datamodel/templates/network.lua.j2: renumber.config typo fix
Aleš Mrázek [Tue, 30 Sep 2025 11:34:42 +0000 (13:34 +0200)]
Merge branch 'python-update' into 'master'
ci: updated python to 3.13, use debian image for python jobs
See merge request knot/knot-resolver!1744
Aleš Mrázek [Thu, 18 Sep 2025 00:07:22 +0000 (02:07 +0200)]
.gitlab-ci.yml: python: use default image and show poetry env info
Aleš Mrázek [Wed, 17 Sep 2025 13:33:27 +0000 (15:33 +0200)]
.gitlab-ci.yml: updated PYTHON_VERSION to 3.13
Aleš Mrázek [Wed, 17 Sep 2025 11:19:59 +0000 (13:19 +0200)]
.python-version file update
Vladimír Čunát [Thu, 25 Sep 2025 11:35:10 +0000 (13:35 +0200)]
Merge !1743: contrib/mempattern: silence UBSAN on newer clang
Vladimír Čunát [Thu, 25 Sep 2025 10:25:10 +0000 (12:25 +0200)]
contrib/mempattern: silence UBSAN on newer clang
Equivalent to
https://gitlab.nic.cz/knot/knot-dns/-/commit/
27825e4c595d952
The problem happens now with clang 20.
I don't think I've seen it happen with GCC 15
or with some earlier clang versions.
Hynek Šabacký [Thu, 3 Apr 2025 14:06:57 +0000 (16:06 +0200)]
dns_tunnel_filter: Edit filter to consider TCP results
Hynek Šabacký [Thu, 3 Apr 2025 13:02:33 +0000 (15:02 +0200)]
dns_tunnel_filter: Edit filter to not consider cached results
Hynek Šabacký [Wed, 2 Apr 2025 13:45:17 +0000 (15:45 +0200)]
dns_tunnel_filter: Add to daemon runtime to detect and filter dns tunneling queries
Hynek Šabacký [Thu, 27 Mar 2025 15:45:04 +0000 (16:45 +0100)]
dnamelimiting -> dns_tunnel_filter: Rename
Hynek Šabacký [Thu, 27 Mar 2025 15:16:01 +0000 (16:16 +0100)]
dnamelimiting: Add NN packet classification for limited packets
Hynek Šabacký [Thu, 27 Mar 2025 13:42:25 +0000 (14:42 +0100)]
meson: Add C++ DNS tunnel detection library build and linking
Aleš Mrázek [Mon, 15 Sep 2025 13:01:19 +0000 (15:01 +0200)]
Merge branch 'types-files-root' into 'master'
datamodel/types/files.py: permission check succeeds if running under root privileges
See merge request knot/knot-resolver!1741
Aleš Mrázek [Sun, 14 Sep 2025 21:06:32 +0000 (23:06 +0200)]
datamodel/types/files.py: permission check succeeds if running under root privileges
Vladimír Čunát [Mon, 15 Sep 2025 08:03:26 +0000 (10:03 +0200)]
Merge !1731: manager/metrics/prometheus: fixed answer latency histogram
Aleš Mrázek [Tue, 19 Aug 2025 13:44:13 +0000 (15:44 +0200)]
manager/metrics/prometheus: fix the answer latency histogram
Vladimír Čunát [Mon, 15 Sep 2025 06:49:39 +0000 (08:49 +0200)]
Merge !1740: .gitlab-ci.yml: kill Ubuntu 24.10
Vladimír Čunát [Mon, 15 Sep 2025 06:28:06 +0000 (08:28 +0200)]
.gitlab-ci.yml: kill Ubuntu 24.10
It won't work anymore:
https://gitlab.nic.cz/knot/knot-resolver/-/jobs/
1482521
Vladimír Čunát [Mon, 15 Sep 2025 06:35:34 +0000 (08:35 +0200)]
Merge !1732: lib/selection: respect 0x20 settings even after TCP issues
Vladimír Čunát [Wed, 20 Aug 2025 07:11:38 +0000 (09:11 +0200)]
lib/selection: respect 0x20 settings even after TCP issues
Thankfully we can pull it from kr_request,
as policy.FLAGS() also sets it in there.
Vladimír Čunát [Wed, 27 Aug 2025 10:38:32 +0000 (12:38 +0200)]
Merge !1736: ci: python:check: setuptools installation fix