Oto:
I double-checked just to be sure (with a default build + install
sometimes things can go wrong...).
Whether I run via systemd:
ExecStart=/usr/sbin/kresd -c
/usr/lib/aarch64-linux-gnu/knot-resolver/distro-preconfig.lua -c
/etc/knot-resolver/kresd.conf -n
or by command line, I am explicitly calling the kresd.conf where I have
my changes.
I added DNSKEY's (thank you for that pointer - I would have missed it)
and they work:
$ dig @127.0.1.1
pir.org +dnssec +multi
; <<>> DiG 9.16.37-Debian <<>> @127.0.1.1
pir.org +dnssec +multi ;
(1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16985
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
;; QUESTION SECTION:
;pir.org. IN A
;; ANSWER SECTION:
pir.org. 300 IN A 34.74.232.240
pir.org. 300 IN RRSIG A 5 2 300 (
20230524084004 20230510084004 56958
pir.org. NGT9ammi8eyXDKJ1YqMaSTnas1FM6foabFmb30GDyklP
dIYsIbLmfP2evYc5Izn/SJdCN/RmWBJozGmPk+kAfv0U
7YEoKBcbRxIeQiDtg8D0Nsl98Do/R7CsaXLVAkC+k8Ed
vnNhnDYo+mn0xAOTOWGPQN/2MoSxYJkcPRcINeo=
)
;; Query time: 627 msec
;; SERVER: 127.0.1.1(127.0.1.1)
;; WHEN: Wed May 10 08:35:34 CDT 2023
;; MSG SIZE rcvd: 219
But I'm still getting the "a.name-servers.net" NXDOMAIN on trying to
resolve 'grep.geek':
$ dig @127.0.1.1 grep.geek +dnssec +multi
; <<>> DiG 9.16.37-Debian <<>> @127.0.1.1 grep.geek +dnssec +multi
-p
53001 ; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 29189
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 6, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
;; QUESTION SECTION:
;grep.geek. IN A
;; AUTHORITY SECTION:
. 24985 IN SOA
a.root-servers.net.
nstld.verisign-grs.com. (
[trimmed]
I even moved the default 'root.hints' file out of /etc/knot-resolver
just to make sure it wasn't being called somehow (and checked the
/var/lib and /var/cache folders as well).
Still getting the NX from
a.root-servers.net as above.
I'm stumped...
--
Ed V.
On Wed, 10 May 2023 07:46:16 +0200
Oto Šťáva <oto.stava(a)nic.cz> wrote:
Hi, Ed.
This looks to me like Knot Resolver is not pointed to the same
configuration file you are editing since your changes are not taking
effect at all. The 'hints.root()' function really should replace the
default root hints, which it does not seem to be doing in your case.
How exactly are you running Knot Resolver? Are you pointing it to the
correct 'kresd.conf' file?
Also, your first attempt with 'policy' would not work because
'policy.FORWARD' expects the provided addresses to be resolvers, but
the OpenNIC root servers are authoritative.
Using 'hints.root' is correct, BUT it is not enough to only set that.
You will run into SERVFAILs because you also need to set the correct
DNSSEC trust anchors [1], which Knot Resolver verifies. You will need
the correct keys from OpenNIC root servers [2].
[1]
https://knot-resolver.readthedocs.io/en/stable/config-dnssec.html#trust_anc…
[2]
https://wiki.opennic.org/opennic/dnssec
On 09. 05. 23 23:05, Ed V. wrote:
Hoping someone can help...
Built Knot Resolver v5.6.0 from source.
It works and resolves correctly for "regular" TLDs.
However, I would like to point it to OpenNIC for resolution
/forwarding so that I can resolve the expanded /alternative TLDs.
Default configuration with:
policy.add(policy.all(
policy.FORWARD(
{'2001:19f0:b001:379:5400:3ff:fe68:1cc6',
'138.197.140.189',
'2600:3c04::f03c:93ff:febd:be27',
'45.61.49.203'})))
and it fails to find "grep.geek" using the standard root zone
/hints:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 22871
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1,
ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;grep.geek. IN A
;; AUTHORITY SECTION:
. 86077 IN SOA
a.root-servers.net.
nstld.verisign-grs.com. 2023050902 1800 900 604800 86400
So I checked the Documentation site and found "hints.root" which
theoretically will override any other root hints.
Using the OpenNIC root zone file (downloads as "db.root") I set:
hints.root ({
['ns13.opennic.glue.'] = { '2a01:4f8:192:43a5::2',
'144.76.103.143' } })
in kresd.conf.
Still no joy - "grep.geek" is NXDOMAIN from
a.root-servers.net
again.
Any thoughts? Things I might have missed along the way?
--
--