I had the update for my Turris Omnia last night and now my DHCP does not work at all. All clients hang on “Getting IP address”.
I see this in my syslog, maybe this has something to do with it:
2017-09-15T07:37:10+02:00 crit dnsmasq[2775]: failed to create listening socket for port 53: Address in use
2017-09-15T07:37:10+02:00 crit dnsmasq[2775]: FAILED to start up
Port 53 is already used by a process called “kresd”.
I have to stress that I am not doing any advanced stuff with my Turris. I just use it as an access point for my home. I didn’t change any scripts/config files manually, I just use the web config interface. In the web interface, everything looks like it’s correctly configured but there are no leases displayed. If you tell me to “disable kresd”, I have no idea how to do it.
Whet I did a rollback to last snapshot using schnapps, everything worked OK. When I performed the update, DHCP is not working again…
kresd (or knot-dns-resolver) is the default dns resolver on turris omnia and dnsmasq resolver is disabled by default. At some point int time you stoped knot-dns-resolver and enabled resolving via dnsmasq and now both of them started at the same time and knot was faster to bind to the port and thus dnsmasq hasn’t started. There should have been option port '0' in dnsmasq section.
I vaguely remember manually entering “Port 53” value into web configuration because I was instructed to do so in the Turris forums. Without without doing this, my local hostnames (e.g. sklad.fx, gate.fx, frantisek.fx) didn’t work at all.
But I certainly didn’t enable/disable any resolver. I didn’t know Turris uses multiple resolvers until today.
I think, that that is not the best solution, because dnsmasq is not able to check DNSSEC, but with this should help somebody else with deeper knowledge.
DNS “part” of dnsmasq should be disabled by default… not sure why it tries to bind to port 53.
Not sure, if that’s the best solution, but if you want to check it more, I would try following steps:
Configure option prefered_resolver back to 'kresd'.
Add option port '0' (or option port '53535') to the /etc/config/dhcp file into config dnsmasq section.
With 3.8 it should be possible to propagate client names into local DNS (configuration option in foris -> DNS), so basically yes.
I have it configured slightly more complexly - dnsmasq is listening on port 53535 and kresd asks for names in my domain on that port. (The solution was described somewhere on this forum, but I’m not sure if it is still current - there might be better solution now.)
With 3.8 it should be possible to propagate client names into local DNS (configuration option in foris → DNS), so basically yes.
But that’s not what I want. I need for a client with MAC address xx:xx:xx:xx:xx:xx to always have specified hostname, regardless of what the client says its name is.
2017-09-16T13:49:18+02:00 crit dnsmasq[7746]: illegal repeated keyword at line 10 of /var/etc/dnsmasq.conf
2017-09-16T13:49:18+02:00 crit dnsmasq[7746]: FAILED to start up