On 18/10/2023 08:58, Luigi Baldoni via Dnsmasq-discuss wrote:
   Hello,
I'm having a hard time making dnsmasq run together with kea-dhcp4-server on the 
same machine.
Even though they listen on different interfaces, the first one prevents the 
other from starting.
With the old isc-dhcp-server, "bind-interfaces" was enough. But now strace shows
'bind(4, {sa_family=AF_INET, sin_port=htons(67), 
sin_addr=inet_addr("0.0.0.0")}, 16) = -1 EADDRINUSE (Address already in use)'
no matter how much I tinker with the configuration.

Any ideas?

This is tricky. Making DHCP work for IPv4 really requires binding the wildcard address, 0.0.0.0 and this makes running multiple servers on different interface of the same machine problematic. Dnsmasq does its best, and pretty much works for multiple dnsmasq instances. There are two different actions needed: 1) Set the socket option SO_REUSEPORT on the DHCP socket: this allows multiple processes to bind the same port number. Dnsmasq always does this when bind-interfaces is set. 2) Bind the socket to a physical interface, so that packets send to 255.255.255.255 get send to the correct dnsmasq instance based on which interface they arrive on. Dnsmasq does this when bind-interfaces is set, and it's configured using --interface to listen on exactly one interface.

The problem you have, I think, is that Kea is not sharing nicely in the same way. The Kea code on github doesn't set SO_REUSEPORT for DHCPv4 (it does for DHCPv6) The old ISC server does raw packet IO to avoid the problems with the kernel IP stack for DHCPv4, and that's probably why it works. I've not looked at Kea in detail, but it's likely that it uses the same approach to making DHCPv4 work using the kernel IP stack that dnsmasq does, but it looks like it's not had the time that dnsmasq has to accrete the workarounds needed to run multiple DHCP servers in one kernel.

I'd suggest that this is a Kea problem, not a dnsmasq one.


Cheers,

Simon.



_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss


_______________________________________________
Dnsmasq-discuss mailing list
Dnsmasq-discuss@lists.thekelleys.org.uk
https://lists.thekelleys.org.uk/cgi-bin/mailman/listinfo/dnsmasq-discuss

Reply via email to