Network binding DHCP problem

udp 0 0 0.0.0.0:67 0.0.0.0:* 1187/dnsmasq
But that is not a conflicting package: that is the DHCP server …

Are you also using the OpenHAB server as a DHCP server? In that case you’re right, you would want to keep dnsmasq running, but I don’t know if the two processes can both listen to port 67.

Unfortunately I know next to nothing about networks, someone wiser than me may have the answer.

Is it usually not a problem for two services to connect to the same source address and port, especially not for UDP. I’m already using the setReuseAddress method in the binding code to be prepared for this scenario.

Operating systems introduced the “new” SO_REUSEPORT option, additionally to SO_REUSEADDR and a socket can only bind to the same port/address if the set flags match. All newer dhcp servers set the SO_REUSEPORT option, so we would need to set this option, too.

Unfortunately Java will support this only with Java 9, which we don’t use for OH.

So there is no easy solution at the moment. One can add a software bridge and a virtual network adapter and make the dhcp server run on that adapter, of course.

Cheers, David

1 Like

I extended the network binding and changed the way how dhcp sniffing works. If binding to port 67 fails, it will bind to port 6767 instead. It is easier to setup an IPv4 port forwarding than those permission hacks, I recon.