Switch back from Unbound to kresd

TurrisOS 6.5.2, Turris Omnia

Hi,

I am currently using Unbound on my Omnia as knot still lacks rfc8806 support.

option prefered_resolver 'unbound'

Due to ongoing issues with Unbound on the router, I want to switch back to knot and use an external Unbound as upstream.

So I stopped resolver, edited /etc/config/resolver to

option prefered_resolver 'kresd'

and restarted resolver.

But then I am immediately unable to resolve any of my internal hostnames. They are all configured as static DHCP leases.

What am I missing?

Can anyone help with this?

After you changed resolver back to kresd. Go to Reforis setrings DNS and try to uncheck and check again “Enable DHCP clients in DNS” and then point forwarding to your upstream Unbound. Should work😉

Still does not work. This happens in Log when I uncheck and check “Enable DHCP clients in DNS”:

Apr 15 11:34:31 omnia dhcp_host_domain_ng.py: Refresh kresd leases

But I still cannot resolve any internal hostnames.

After switching back to Unbound, everything works just fine.

Any more ideas? I wrote an email to Turris support, but they only advised me to re-install the OS entirely.

If you can read Python I suggest looking into that script and following the clues.

Can you help? I do not really understand what’s going on in that script.

just check with root on your device if both settings are enabled:

root@turris:/srv/root# uci get resolver.common.static_domains
1
root@turris:/srv/root# uci get resolver.common.dynamic_domains
1

the first option enables static dhcp handling and the leases are read from:

cat /tmp/kresd/hints.tmp
192.168.10.2 powerpi.lan
192.168.10.222 loom.lan

the second option enables using dynamic leases are read from:

cat /tmp/dhcp.leases.dynamic
192.168.10.133 m1.lan
...

on my setup i can ping without the domain .lan as well.

resolver.common.static_domains and resolver.common.dynamic_domains are both set to 1.

/tmp/kresd/hints.tmp and /tmp/dhcp.leases.dynamic do contain all my hostnames and their ip addresses.

As soon as i switch the resolver to kresd, I cannot resolve any of my hostnames.

root@omnia:~# cat /tmp/kresd/hints.tmp
192.168.100.99 Pixel-6.home.arpa
192.168.100.240 FritzBox.home.arpa
192.168.100.12 vuduo4kse.home.arpa
root@omnia:~# ping Pixel-6.home.arpa
ping: Pixel-6.home.arpa: Name does not resolve
root@omnia:~# cat /tmp/dhcp.leases.dynamic
192.168.100.166 jellyfin.home.arpa
192.168.100.38 apt-cacher-ng.home.arpa
root@omnia:~# ping jellyfin.home.arpa
ping: jellyfin.home.arpa: Name does not resolve

I still do not understand why Unbound works fine and kresd does not.

Try nslookup jellyfin.lan

I have an idea that you have changed local domain to home.arpa. I am also planning to do so but default set in reforis AND in luci is .lan maybe settings for DNS are taken from Reforis where it is still .lan

Still nothing:

root@omnia:~# ping jellyfin.lan
ping: jellyfin.lan: Name does not resolve
root@omnia:~# ping jellyfin
ping: jellyfin: Name does not resolve

Domain home.arpa is set in reForis and LiCi.

After switching back to Unbound:

root@omnia:~# ping jellyfin
PING jellyfin.home.arpa (192.168.100.166) 56(84) bytes of data.
64 bytes from 192.168.100.166 (192.168.100.166): icmp_seq=1 ttl=64 time=0.284 ms
64 bytes from 192.168.100.166 (192.168.100.166): icmp_seq=2 ttl=64 time=0.146 ms

So… any more ideas? I wasn’t able to fix this yet.

Is there maybe some Turris employee who can help here?