Subject: | use of SO_REUSEPORT for DHCPv6 in ISC-DHCP 4.3.0 |
Date: | Thu, 20 Mar 2014 08:05:06 +0100 |
To: | dhcp-bugs@isc.org |
From: | Carsten Strotmann <carsten@strotmann.de> |
Hello,
when using ISC-DHCP 4.3.0 in DHCPv6 mode on a Linux system with kernel <
3.9, the process terminates with an error:
"Can't set SO_REUSEPORT option on dhcp socket: Protocol not available"
and the ISC-DHCP dhcpd process terminates.
Running the same binary on a System with a newer kernel (3.11) works
flawlessly.
This has been seen on Gentoo and RedHat EL 6.5/6.4.
According to this article -> http://lwn.net/Articles/542629/[1]
"SO_REUSEPORT" has been introduced into Linux with kernel version 3.9.
However, the SO_REUSEPORT declartions has been added to the kernel
include files around kernel 2.6.32
When I change the source code that prints out the above error from
"log_fatal" to "log_error" in common/socket.c, line 227, the ISC-DHCP
Server seem to work just fine on older Linux kernel.
Maybe the code can be changed so that SO_REUSEPORT is being tested at
runtime, and used if available. At least in my limited experience with
4.3.0 on Linux in a small production network, ignoring the SO_REUSEPORT
error has no negative effects.
--
Carsten Strotmann
Email: cas@strotmann.de
Blog: strotmann.de