Public bug reported: When installing dual stack IPv4 and IPv6 DHCP I found that DHCPv4 and DHCPv6 clobber each others /run/dhcp-server path when you stop or restart one of the daemons
I found that the config in the systemd unit has the /run path set to the same location for both DHCPv4 and DHCPv6 In /lib/systemd/system/isc-dhcp-server.service the offending line that conflicts is: exec dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/dhcpd.pid -cf $CONFIG_FILE $INTERFACES' In /lib/systemd/system/isc-dhcp-server6.service the offending line that conflicts is: exec dhcpd -user dhcpd -group dhcpd -f -6 -pf /run/dhcp-server/dhcpd6.pid -cf $CONFIG_FILE $INTERFACES' This means if you stop/restart DHCPv4 or DHCPv6, then it cleans up the path /run/dhcp-server and removed the pid file for the alternate process. I have found a possible fix is to give DHCPv6 it's own /run path, thus I suggest: 1) update DHCPv6 to use /run/dhcp-server6/ Update /lib/systemd/system/isc-dhcp-server6.service to use /run/dhcp-server6/ ie. exec dhcpd -user dhcpd -group dhcpd -f -6 -pf /run/dhcp-server6/dhcpd6.pid -cf $CONFIG_FILE $INTERFACES' Now we need to give dhcp access to this path in Apparmor: 2) Update /etc/apparmor.d/usr.sbin.dhcpd and add an additional line 38d39 /var/lib/dhcp/dhcpd{,6}.leases* lrw, /var/log/ r, /var/log/** rw, /{,var/}run/{,dhcp-server/}dhcpd{,6}.pid rw, + /{,var/}run/{,dhcp-server6/}dhcpd{,6}.pid rw, Found in package version: 4.4.1-2ubuntu5 ** Affects: isc-dhcp (Ubuntu) Importance: Undecided Status: New ** Description changed: When installing dual stack IPv4 and IPv6 DHCP I found that DHCPv4 and DHCPv6 clobber each others /run/dhcp-server path when you stop or restart one of the daemons I found that the config in the systemd unit has the /run path set to the same location for both DHCPv4 and DHCPv6 - In /lib/systemd/system/isc-dhcp-server.service the offending line that conflicts is: - exec dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/dhcpd.pid -cf $CONFIG_FILE $INTERFACES' - + exec dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/dhcpd.pid -cf $CONFIG_FILE $INTERFACES' In /lib/systemd/system/isc-dhcp-server6.service the offending line that conflicts is: - exec dhcpd -user dhcpd -group dhcpd -f -6 -pf /run/dhcp-server/dhcpd6.pid -cf $CONFIG_FILE $INTERFACES' + exec dhcpd -user dhcpd -group dhcpd -f -6 -pf /run/dhcp-server/dhcpd6.pid -cf $CONFIG_FILE $INTERFACES' - - This means if you stop/restart DHCPv4 or DHCPv6, then it cleans up the path /run/dhcp-server and removed the pid file for the alternate process. + This means if you stop/restart DHCPv4 or DHCPv6, then it cleans up the + path /run/dhcp-server and removed the pid file for the alternate + process. I have found a possible fix is to give DHCPv6 it's own /run path, thus I suggest: 1) update DHCPv6 to use /run/dhcp-server6/ Update /lib/systemd/system/isc-dhcp-server6.service to use /run/dhcp-server6/ ie. - exec dhcpd -user dhcpd -group dhcpd -f -6 -pf /run/dhcp-server6/dhcpd6.pid -cf $CONFIG_FILE $INTERFACES' + exec dhcpd -user dhcpd -group dhcpd -f -6 -pf /run/dhcp-server6/dhcpd6.pid -cf $CONFIG_FILE $INTERFACES' Now we need to give dhcp access to this path in Apparmor: 2) Update /etc/apparmor.d/usr.sbin.dhcpd and add an additional line 38d39 - /var/lib/dhcp/dhcpd{,6}.leases* lrw, - /var/log/ r, - /var/log/** rw, - /{,var/}run/{,dhcp-server/}dhcpd{,6}.pid rw, + /var/lib/dhcp/dhcpd{,6}.leases* lrw, + /var/log/ r, + /var/log/** rw, + /{,var/}run/{,dhcp-server/}dhcpd{,6}.pid rw, + /{,var/}run/{,dhcp-server6/}dhcpd{,6}.pid rw, + + Found in package version: + 4.4.1-2ubuntu5 -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to isc-dhcp in Ubuntu. https://bugs.launchpad.net/bugs/1882317 Title: Dual Stack DHCP clobber each other when using /run/dhcp-server/ for pid files Status in isc-dhcp package in Ubuntu: New Bug description: When installing dual stack IPv4 and IPv6 DHCP I found that DHCPv4 and DHCPv6 clobber each others /run/dhcp-server path when you stop or restart one of the daemons I found that the config in the systemd unit has the /run path set to the same location for both DHCPv4 and DHCPv6 In /lib/systemd/system/isc-dhcp-server.service the offending line that conflicts is: exec dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/dhcpd.pid -cf $CONFIG_FILE $INTERFACES' In /lib/systemd/system/isc-dhcp-server6.service the offending line that conflicts is: exec dhcpd -user dhcpd -group dhcpd -f -6 -pf /run/dhcp-server/dhcpd6.pid -cf $CONFIG_FILE $INTERFACES' This means if you stop/restart DHCPv4 or DHCPv6, then it cleans up the path /run/dhcp-server and removed the pid file for the alternate process. I have found a possible fix is to give DHCPv6 it's own /run path, thus I suggest: 1) update DHCPv6 to use /run/dhcp-server6/ Update /lib/systemd/system/isc-dhcp-server6.service to use /run/dhcp-server6/ ie. exec dhcpd -user dhcpd -group dhcpd -f -6 -pf /run/dhcp-server6/dhcpd6.pid -cf $CONFIG_FILE $INTERFACES' Now we need to give dhcp access to this path in Apparmor: 2) Update /etc/apparmor.d/usr.sbin.dhcpd and add an additional line 38d39 /var/lib/dhcp/dhcpd{,6}.leases* lrw, /var/log/ r, /var/log/** rw, /{,var/}run/{,dhcp-server/}dhcpd{,6}.pid rw, + /{,var/}run/{,dhcp-server6/}dhcpd{,6}.pid rw, Found in package version: 4.4.1-2ubuntu5 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/isc-dhcp/+bug/1882317/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp