On 12/01/2026 00.11, * wrote:
> However, I cannot use it in my production environment as this returns
> NODATA globally (all views) for security.ubuntu.com.
> I have several views not using dns64 for which the AAAA record should
> be the existing original answer.
While on Lua level it's not ergonomic, tags are supported in these APIs,
so you can do a tiny change, e.g.:
lua:
policy-script: |
assert(C.kr_rule_local_data_ins(
kres.rrset(kres.str2dname('security.ubuntu.com.'),
kres.type.AAAA, nil, C.KR_RULE_TTL_DEFAULT),
nil, policy.get_tagset({'myTag'}), C.KR_RULE_OPTS_DEFAULT
) == 0)
and then you just need to add myTag to the views where you want to apply
this rule (in YAML).
You can read more about tags and views in the docs, around page
https://www.knot-resolver.cz/documentation/latest/config-policy-new.html
Dear Knot Resolver users,
Knot Resolver 6.0.16 (early-access) has been released!
Improvements:
- reduce validation strictness for domain names (#934, !1727)
- manager: force a configuration reload via management HTTP API
'api/reload/force' (#939, !1748)
- kresctl: reload: added '--force' flag
- /fallback: add this feature/module (!1733)
- systemd: do not force-fail knot-resolver.service on OOM (!1724)
In basically all cases the OOM killer will kill a kresd process
and supervisord will just restart it, and everything will keep working.
Bugfixes:
- /options/query-case-randomization: respect this even on TCP issues (!1732)
- prometheus metrics: make the latency histogram cumulative (!1731, GH#117)
- fix file permission checks when running as root (!1741)
- /network/address-renumbering: fix conversion to Lua configuration (!1739)
- manager: avoid uncommon bugs when starting/quitting policy-loader (!1742)
Full changelog:
https://gitlab.nic.cz/knot/knot-resolver/raw/v6.0.16/NEWS
Sources:
https://secure.nic.cz/files/knot-resolver/knot-resolver-6.0.16.tar.xz
GPG signature:
https://secure.nic.cz/files/knot-resolver/knot-resolver-6.0.16.tar.xz.asc
Documentation:
https://www.knot-resolver.cz/documentation/v6.0.16/
--
Ales Mrazek
PGP: 3057 EE9A 448F 362D 7420 5A77 9AB1 20DA 0A76 F6DE
Dear Knot Resolver users,
Knot Resolver 6.1.0, the first officially stable version 6, has been
released!
As of this release, version 6 is preferred over version 5.
Improvements:
- logging: improved logging groups (!1768)
- support libdnssec merged into libknot, as planned for knot >= 3.6 (!1769)
- support cmocka 2.0.0 (!1772)
- avoid AD=1 in reply if ANSWER+AUTHORITY are empty (#914, !1780)
- defer: enabled by default in declarative configuration (!1785)
- /defer/enable: false -> true
- datamodel: lua: added Lua scripts for policy-loader (!1771)
Bugfixes:
- reload did not apply changes to /fallback (!1763)
- fix config.cache.clear test on apple silicon (!1766)
- cache: fix wrong TTL in some cases, typically 32768 (!1774)
Full changelog:
https://gitlab.nic.cz/knot/knot-resolver/raw/v6.1.0/NEWS
Sources:
https://secure.nic.cz/files/knot-resolver/knot-resolver-6.1.0.tar.xz
GPG signature:
https://secure.nic.cz/files/knot-resolver/knot-resolver-6.1.0.tar.xz.asc
Documentation:
https://www.knot-resolver.cz/documentation/v6.1.0/
--
Ales Mrazek
PGP: 3057 EE9A 448F 362D 7420 5A77 9AB1 20DA 0A76 F6DE
HI there,
I work for ThreatSTOP, a company that distributes DNS policies using RPZ to our customers.
One prospective customer uses knot-resolver and so they have asked us to look at what we can support with respect to importing our data into knot-resolver.
I have read the documentation and I have done some testing with 5.7.2 that is the version in Ubuntu 24.04
I have also read some of the documentation for version 6.x
I have a few questions
The first is fairly basic. What is the status of 6.x?
>From what I can see it seems to be undergoing development and not to be considered as stable. Is this correct? And therefore we should not recommend it to our users?
Assuming that is the case, it's unfortunate because RPZ support seems to be considerably better in 6.x. however I'm still a bit confused as to the RPZ support and would appreciate being pointed to a spec. The 6.x documentation was not clear to me
Also I have questions about policy limitations, which I don't see in the documentation for 5.x
How large can an RPZ be?
How many policies can you have?
For example I'd like an ALLOW, a DENY and perhaps one to three A record rewrite policies. The total across all RPZs would be in the 500k-1M records.
Also assuming it is supported, what are the performance impacts of large (say 500k+) RPZ policies?
I intend to test some of this, but if there are known limits that can be shown that will help both the testing and the recommendations to our customers
Finally is there a place to publicize a script that does a zone transfer of a policy from an external server (e.g. ours) and outputs 3 or 4 zones in the right format for knot-resolver to import?
Regards
Francis
Francis Turner
Threat STOP Global SE
JP Cell: +81-8080404701 | US Cell: +1-760-402-7676
Office: +1-760-542-1550 | Line: francisturner
francis(a)threatstop.com<mailto:francis@threatstop.com> | www.threatstop.com<http://www.threatstop.com/>
Weaponize Your Threat Intelligence
"If You Don't Build It, They Definitely Will Not Come" - P. Vixie
Hi,
Between countless parcel notifications in my inbox, I suddenly found this message...
...just moments after I posted my modification (which is entirely focussed on setup.py):
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292197
I'm now merging that with what's suggested here.
So it's getting further than before, but is not yet completing successfully.
Leo.
On Fri, 02 Jan 2026, Michael Grimm wrote:
> Vladim??r ??un??t via knot-resolver-users <knot-resolver-users(a)lists.nic.cz> wrote:
> > On 31/12/2025 13.37, Michael Grimm via knot-resolver-users wrote:
>
> >> FYI: This is FreeBSD and kresctl tool isn't available here.
>
> > OK, that's a complication. In 6.0.17 we added FreeBSD support to code added in 6.x, and now we're in contact with the maintainer of the [port], but the last version I saw didn't seem to package all parts needed for YAML (e.g. executables called knot-resolver and kresctl).
>
> In March 2024 I tried to create a FreeBSD port for knot-resolver-6.0.8. I got it compiled after applying the following changes (see tar file attached). I do remember that I could use kresctl in a poudriere testport jail, only, but I can't reproduce that as of today, sorry.
>
> (This is intended as a FYI, just in case it helps.)
>
> 1) files/patch-meson_options.txt
>
> This adds a manager section to meson_options.txt.
> With that I could tell meson to use '-Dmanager=enabled' within the port's Makefile
>
> This section is missing in 6.0.17 as well. If added meson log file tells me that a manager is enabled.
>
> I do not have the knowledge if that is necessary at all, though
>
>
> 2) files/patch-controller_supervisord_plugin_notifymodule.c
>
> This patch addresses:
>
> #) include sys/ucred.h
> #) use LOCAL_PEERCRED instead of SO_PASSCRED
> #) use 'struct xucred' instead of 'struct ucred'
> #) use SCM_CREDS instead of SCM_CREDENTIALS
> #) use cred.cr_pid instead of cred.pid as returned value
>
> Again, I do not have the knowledge if that is of relevance at all.
>
>
> I applied both patches to Leo's port and modified the Makefile accordingly (see tar), and it compiles successfully; but is still lacking kresctl and knot-resolver.
>
>
> I hope that this might be of interest for you.
>
> Regards,
> Michael
>
On 02/01/2026 16.45, Michael Grimm wrote:
> 1) files/patch-meson_options.txt
This patch adds the option but doesn't act on the option in any way.
(i.e. it doesn't affect the result except for some lines in the log)
> 2) files/patch-controller_supervisord_plugin_notifymodule.c
This patch might be interesting, though we just avoided the notify
module on non-Linux since 6.0.17, so it's not really needed anymore.
Maybe we'd need that notify-free code-path anyway for some other BSD or
macOS; I don't remember details about this.
--Vladimir
Hi,
it seems kresd 5.7.6 falls back from UDP to TCP transport but never retries over UDP.
Impact:
udp/53-only services (incorrect but happens in the wild[1]) may become ~permanently (long TTL) unreachable when udp/53 is not 100% reliable.
When temporal udp/53 communication error occurs, kresd will fall back to tcp/53, fail to connect, store negative information and return SERVFAIL.
Since retries only consider tcp/53 transport, there is no easy way to recover for udp/53-only domains.
I believe it would be nice to retry with UDP as well as TCP (other implementations do this) to handle such cases more gently.
[iterat][55073123.04] <= rcode: NOERROR
[valdtr][55073123.04] <= cached insecure response, going insecure
[iterat][55073123.02] 'www.somefooservice.com.' type 'A' new uid was assigned .05, parent uid .00
[select][55073123.05] => id: '37763' choosing from addresses: 0 v4 + 0 v6; names to resolve: 0 v4 + 0 v6; force_resolve: 0; NO6: IPv6 is OK
[select][55073123.05] => id: '37763' no suitable transport, zone cut: 'www.somefooservice.com.'
[iterat][55073123.05] 'www.somefooservice.com.' type 'A' new uid was assigned .06, parent uid .00
[select][55073123.06] => id: '27070' choosing from addresses: 0 v4 + 0 v6; names to resolve: 0 v4 + 0 v6; force_resolve: 0; NO6: IPv6 is OK
[select][55073123.06] => id: '27070' no suitable transport, zone cut: 'www.somefooservice.com.'
[resolv][55073123.06] AD: request NOT classified as SECURE
[resolv][55073123.06] finished in state: 8, queries: 2, mempool: 81952 B
Workaround:
cache.max_ttl() - haven't tried
cache.clear('FQDN record affected') does NOT work
cache.clear('entire TLD affected') does NOT work
cache.clear('.') DOES work
cache.clear() DOES work
[1] It took us some time to reach major mobile device producer and convince them to expose tcp/53 ;)
/PM