Remove dnsmasq from updater?


Updater failed:
[string “transaction”]:310: [string “transaction”]:143: Collisions:
• /etc/dnsmasq.conf: dnsmasq (new), dnsmasq-full (existing)
• /etc/config/dhcp: dnsmasq (new), dnsmasq-full (existing)
• /etc/init.d/dnsmasq: dnsmasq (new), dnsmasq-full (existing)
• /usr/sbin/dnsmasq: dnsmasq (new), dnsmasq-full (existing)
• /etc/hotplug.d/iface/25-dnsmasq: dnsmasq (new), dnsmasq-full (existing)

This is hillarious honestly. I’m really curious why the Turris devs decided to use kresd for DNSSEC when dnsmasq-full works better.

See here: Updater failing (conflicts?)

I see that lot of you wants dnsmasq-full. Me nor my colleague had time to look into making critical packages more flexible. To put these requests at ease I invested little bit of time to test some dirty hack. It works and here it is. But be warned that this is not official in no way and is not supported. It is specially written so that you need some advanced knowledge. And please I would like to ask everyone to not post resulting package.

Hack is that you create dummy package with higher version than it is in repository, such package would contain no files and just depend on package you want instead of it.

To create such package you can use utility script in updater sources (utils/opkg-create/opkg-create-package). Copy template and edit control file to contain correct name of package (ex. dnsmasq), something big as version (ex. 9999) and add line Depends: <REPLACING PACKAGE> somewhere to middle (shouldn’t be after Description). Remove ‘file’ from data directory. And you can run opkg-create-package in directory with control file. This should give you dummy package. Copy package to your router and add line to user.lua containing for dnsmasq Package "dnsmasq" {content="<PATH TO DUMMY PACKAGE"}. And on second line you should add Install "dnsmasq-full" {ctritical=True} to ensure that replacing package is also handled as critical. Do not use opkg to install dummy package.

Once again this is not official and no way supported. Its just hack to be used if you really need it. There is an possibility that this can break future updates. And for all of these reasons please do not post resulting package anywhere.

Alright, Omnia is officially retired.

After removing dnsmasq-full and running updater, it updated all the packages, reinstalled the useless knot resolver, and after reinstalling dnsmasq-full what happens? “/etc/init.d/dnsmasq start” does absolutely nothing. No idea how to check any logs since “logread” does nothing. Oh and as a result, DHCP doesn’t work but that should be obvious.

Waiting for LEDE support to appear so I can use it again. TurrisOS or w/e it’s called does not fit my needs.

How about /var/log?

No it isn’t obvious. Did you disable Knot? Did you configured dnsmasq to be DNS server?

I respect your decision. But LEDE support wont happen magically. If you want it, try joining effort.

1 Like

No idea how /var/log works honestly. Last I checked there were multiple files but only one had any real logging info. Then again, it only seemed equivalent to dmesg.

Dnsmasq is the DHCP server. I have it configured to act as the DNS server as well. I removed knot.

Just so I’m clear my reason for removing knot is because it causes a 1-2 second delay before DNS resolution succeeds. I have no idea if this is a bad configuration option that is set but this delay is absolutely unacceptable. FWIW, Dnsmasq works fine with the DNSSEC option enabled. No such delay occurs. The delay also causes irssi to be unable to connect to Freenode on the first try amusingly enough.

/var/log/messages is what you are interested in. And it isn’t just dmesg. It is full system log. Because TO has more memory than all other routers, it has full fledged syslog instead (syslog-ng).

Just guessing. But check your IPv6 connection. Knot prioritizes it (as rest of the system), but if I am not mistaken dnsmasq doesn’t support (or at least isn’t configured to support) it.

You caught me. Not really. Why would you need dnsmasq-full other than to replace Knot. You probably have just some miss configuration.

There’s no IPv6 connectivity on my connection. ISP doesn’t support it. I could set up a tunnel but why bother?

DNSSEC is really the only reason for having Dnsmasq full. Although it can also be used to replace odhcpd

Clearly, but ISP might have internal IPv6 without knowing it because most modern network elements support it out of the box and is mostly enabled (you have local IPv6 behind turris too because of odhcpd). But such IPv6 network isn’t routed anywhere, but how application should know it, so it tries connection and continues on IPv4 if it fails. Check if your wan interface have IPv6 address. Solution would probable be then to disable it on system level sysctl net/ipv6/conf/all/disable_ipv6 = 1

Hi cynerd,

would it be possible to create a simple script called logread to display /var/log/messages (together with a header line telling this is not really a logread binary, but simply a convenience wrapper around cat or less). That way peoples expectancy about available tools would be matched…

Best Regards

Thanks for the information, I set option net_ipv6 '0' in /etc/config/resolver to disable ipv6 with knot-resolver and now it resolve in xx ms instead of 2xxx ms !