Hello, I'm sorry for the delay.
On 29/11/2025 14.47, oui.mages_0w--- via knot-resolver-users wrote:
Is there a supported way to:
1. Force DNS64 synthesis for specific domains even when AAAA records exist? Ideally from
the yaml config.
2. Call DNS64's synthesis function directly from Lua?
3. Or any other approach to achieve this?
This feedback was quite intriguing, but the situation is not simple.
So far the local-data engine hasn't been able to express that a
particular name+type combination should be answered with NODATA, but
with this question I realized that there's no real reason not to have
that. The insides for that were merged as !1761 and included in release
6.0.17.
Unfortunately, so far I'm not perfectly sure how to expose this in
configuration. For start we will probably include something like
https://gitlab.nic.cz/knot/knot-resolver/-/merge_requests/1771
which will _at least_ allow you to write
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, 0, C.KR_RULE_OPTS_DEFAULT
) == 0)
After you get this, the DNS64 code will see the NODATA and it will
inject the synthetized AAAA in its place.
--Vladimir