I have sever computers/devices on my lan. With the Asus RT-AC68U with Merlin and dnsmasq I was able to just ping and access them like “ping computer1”.
However, with the Turris Omnia I can’t neither ping no access them.
How can I eanble automatic hostname resolution in the lan (for dhcp devices, for static I can edit the /etc/hosts file).
Unfortunately those multiple results all have very different things to say… also feedback on them is sometimes positive, sometimes negative… also they are rather “old”.
So, what is the proper way to achieve that? Disabling KNod and stuff? Enabling dnsmasq? Although it seems dnsmasq is now enabled by default…
However I have no idea what part play now which role in dns resolution etc… hence, I need clarification.
Which requires rather some “deep” changes… changing port for dnsmasq, adding custom rules and scripts
and worst of it… it’s non-generic at all as you have to hardcode the local lan subnet into it.
Also, it won’t just use the hostname but it will requires hostname.lan.
So much work for something that should work out-of-the-box and it’s not even generic… if by chance I want to change my lan subnet, I’ll have to reedit that again.
The capital-letter problem in kresd should be long fixed.
I think that simply adding option dynamic_domains '1' should do what you want, but my knowledge is mainly about kresd and not much about Omnia. (maybe there’s some checkbox for it) The relevant script.
Solution i posted requeries only a few changes, survives updates and has worked stable for me for over 4 months. If lan is configured as search domain in dhcp clients automtically resolve hostname as hostname.lan.
And there is no hardcoding anywhere. All you do is editing config files, there is no hard coding. Somewhere some variables have to be defined and this is what config files are for.
Trust me i’m an engineer
Edit: If something has changed in recent updates I might be wrong, but if local domain resolution doesn’t work for you anyway you could give it a try.
There’s still issues… after adding the line suggested by vcunat, it can’t properly resolve hostnames anymore that are on the TO in the /etc/hosts file.
I assume the static_domains option isn’t explicitly disabled in your config.
If you want to try to debug it, have a look at file $(uci get resolver.kresd.rundir)/hints_dynamic.tmp, as it should contain combination of dynamic and static hints. The code for this. (Probably; I never know which commit is in which release.)
Also, I noticed that it takes rather a long time for a ping to become effective. E.g.
ping hostname
Then it takes like 5-6 seconds before I get a reply - this is weird, on the Asus RT-AC68U with Merlin Firmware, it takes no time at all.
Anyway, I still can’t get it to work. I did add the line by vcunat and I still can ping the hostnames in the /etc/hosts fine - except that it takes like forever until it starts pinging them. This happens even when I ping them anew…
hyper@subi:/tmp$ cat pingTest
#!/usr/bin/env bash
remote="data"
time ping -c 1 "${remote}"
hyper@subi:/tmp$ ./pingTest
PING data (10.10.10.7) 56(84) bytes of data.
64 bytes from 10.10.10.7 (10.10.10.7): icmp_seq=1 ttl=64 time=0.264 ms
--- data ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.264/0.264/0.264/0.000 ms
real 0m5.012s
user 0m0.002s
sys 0m0.002s
however, it still won’t ping any hostnames that are not in /etc/hosts
hyper@subi:/tmp$ ssh root@data
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Jun 1 13:26:12 2017 from xxx
root@data:~# ping subi
ping: unknown host subi
Also DNS resolution in general is really shitty. No matter where I go, I see the browser at least 1-2 seconds to resolve the domain name. Even when it’s a domain I’ve visited 5 minutes ago.
If you configured kresd with forwarding, there would be effectively no local caching or validation. We’re changing the default forwarding mode – upstream just about now and on Omnia within weeks (most likely).
From your ping test it’s unclear to me whether the lag is just due to DNS or something else as well (you can try pinging an IP address directly).
I have no idea where that static_domains option is.
Also, I have no idea how to get to that hints_dynamic.tmp file.
root@turris:~# cat $(uci get resolver.kresd.rundir)/hints_dynamic.tmp
uci: Parse error (invalid command) at line 25, byte 1
cat: can't open '/hints_dynamic.tmp': No such file or directory