Project

General

Profile

Bug #6717

Status / DHCPv6 Leases Issues

Added by Daryl Morse 6 months ago. Updated about 1 month ago.

Status:
Resolved
Priority:
Normal
Category:
DHCP6
Target version:
Start date:
08/15/2016
Due date:
% Done:

100%

Affected version:
2.3.2
Affected Architecture:

Description

I'm running 2.3.3.a.20160815.2144 with PR 3102/1, 3102/2, 3103, 3105, 3106 and 3107, testing the fix for https://redmine.pfsense.org/issues/5993. I'm testing on a windows 2012R2 hyper-v server using a private virtual switch and 4 x windows 10 virtual clients. The WAN connection is a bridged modem port shared by another pfsense.

I've noted several issues with Status / DHCPv6 Leases.

1. Upon booting, the message "No leases file found. Is the DHCPv6 server active?" is displayed when Status / DHCPv6 Leases is selected. This is being caused by /var/dhcpd/var/db/dhcpd6.leases being purged upon reboot. DHCPv4 leases are not being purged.

2. /var/dhcpd/var/db/dhcpd6.leases is not being updated consistently. I'm forcing creation of new leases by disable / enable of the network adapter on the PCs, verifying the new lease time using ipconfig /all. I'm noticing that dhcpv6 leases are randomly not updating on Status / DHCPv6 Leases. It occurs approximately 25-50% of the time. If I leave the system alone, when the lease expires, Status / DHCPv6 Leases usually updates correctly. DHCPv4 leases update consistently.

3. When the DHCP Service is stopped, /usr/local/sbin/dhcpleases6 stays running. When the service is restarted, /usr/local/sbin/dhcpleases6 gets killed and restarted along with dhcpd and dhcpd -6. Not really a big deal, but is there a reason it's left running or should it be killed along with dhcpd and dhcpd -6?

4. This is a feature request. It's possible to restart and stop DHCP Service using Status / Dashboard / Services Status. It's possible to restart and stop DHCPv4 by itself using Status / DHCP Leases. There is no way to stop or restart DHCPv6 by itself. It would be useful to be able to restart and stop DHCPv6 by itself.

History

#1 Updated by Daryl Morse 4 months ago

Daryl Morse wrote:

I'm running 2.3.3.a.20160815.2144 with PR 3102/1, 3102/2, 3103, 3105, 3106 and 3107, testing the fix for https://redmine.pfsense.org/issues/5993. I'm testing on a windows 2012R2 hyper-v server using a private virtual switch and 4 x windows 10 virtual clients. The WAN connection is a bridged modem port shared by another pfsense.

I've noted several issues with Status / DHCPv6 Leases.

1. Upon booting, the message "No leases file found. Is the DHCPv6 server active?" is displayed when Status / DHCPv6 Leases is selected. This is being caused by /var/dhcpd/var/db/dhcpd6.leases being purged upon reboot. DHCPv4 leases are not being purged.

2. /var/dhcpd/var/db/dhcpd6.leases is not being updated consistently. I'm forcing creation of new leases by disable / enable of the network adapter on the PCs, verifying the new lease time using ipconfig /all. I'm noticing that dhcpv6 leases are randomly not updating on Status / DHCPv6 Leases. It occurs approximately 25-50% of the time. If I leave the system alone, when the lease expires, Status / DHCPv6 Leases usually updates correctly. DHCPv4 leases update consistently.

3. When the DHCP Service is stopped, /usr/local/sbin/dhcpleases6 stays running. When the service is restarted, /usr/local/sbin/dhcpleases6 gets killed and restarted along with dhcpd and dhcpd -6. Not really a big deal, but is there a reason it's left running or should it be killed along with dhcpd and dhcpd -6?

4. This is a feature request. It's possible to restart and stop DHCP Service using Status / Dashboard / Services Status. It's possible to restart and stop DHCPv4 by itself using Status / DHCP Leases. There is no way to stop or restart DHCPv6 by itself. It would be useful to be able to restart and stop DHCPv6 by itself.

Updating this issue based on 2.4 development snapshot.

1. This item is unchanged. When pfsense is rebooted, dhcp(4) leases are preserved, but dhcp6 leases are purged. Shouldn't the behavior be the same for both?

2. This item is unchanged. (Although I'm testing using windows 10 clients and there is a bug in the most recent version that breaks lease renewals.)

3. This item may be irrelevant. Now both dhcpleases and dhcpleases6 stay running. This is more consistent, but if these processes are considered to be part of dhcp, shouldn't they be started and stopped along with the other dhcp related processes?

4. This item is unchanged. It would be useful and more consistent if it was possible to restart dhcp(4) and dhcp6 separately.

#2 Updated by Phillip Davis 4 months ago

As part of removing nanobsd support, it was noticed that dhcp6 leases were not being restored on systems with use_mfs_tmpvar set (i.e. full installs that chose to have /var and /tmp as RAM disks). The code to check for use_mfs_tmpvar was added by: https://github.com/pfsense/pfsense/commit/42ebf952de6a085d17b0850830a8524ad396d1a7

If you are using use_mfs_tmpvar, then this might fix item 1.

#3 Updated by Daryl Morse 4 months ago

Phillip Davis wrote:

As part of removing nanobsd support, it was noticed that dhcp6 leases were not being restored on systems with use_mfs_tmpvar set (i.e. full installs that chose to have /var and /tmp as RAM disks). The code to check for use_mfs_tmpvar was added by: https://github.com/pfsense/pfsense/commit/42ebf952de6a085d17b0850830a8524ad396d1a7

If you are using use_mfs_tmpvar, then this might fix item 1.

I'm not using RAM disks so this doesn't appear to be related.

#4 Updated by Daryl Morse 4 months ago

With regards to item 1, testing with one windows 10 client and no active leases, Status / DHCPv6 Leases reports "No leases file found. Is the DHCPv6 server active?" However, Diagnostics / Edit File /var/dhcpd/var/db/dhcpd6.leases has the following contents:

# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.3.4

# authoring-byte-order entry is generated, DO NOT DELETE
authoring-byte-order little-endian;

server-duid "\000\001\000\001\037\221Vq\000\025]\\\342\014";

server-duid "\000\001\000\001\037\221Vq\000\025]\\\342\014";

Here is the output of ps auxw | grep dh | grep -v grep:

root     5329   0.0  0.1  10496  2288  -  Is   Mon09      0:00.00 dhclient: hn1 [priv] (dhclient)
_dhcp    9844   0.0  0.1  10496  2404  -  Ss   Mon09      0:00.10 dhclient: hn1 (dhclient)
root    10541   0.0  0.1   8340  2228  -  Is   Mon09      0:00.00 /usr/local/sbin/dhcp6c -d -c /var/etc/dhcp6c_wan.conf -p /var/run
dhcpd   34474   0.0  0.7  22776 13544  -  Ss   Mon09      0:09.00 /usr/local/sbin/dhcpd -user dhcpd -group _dhcp -chroot /var/dhcpd
root    46741   0.0  0.1   8204  2188  -  Is   09:15      0:00.01 /usr/local/sbin/dhcpleases -l /var/dhcpd/var/db/dhcpd.leases -d l
dhcpd   53782   0.0  0.6  20728 11228  -  Ss   09:15      0:01.33 /usr/local/sbin/dhcpd -6 -user dhcpd -group _dhcp -chroot /var/dh
root    53996   0.0  0.1   6152  1920  -  Is   09:15      0:00.00 /usr/local/sbin/dhcpleases6 -c /usr/local/bin/php-cgi -f /usr/loc
root    84818   0.0  0.1  10448  2516  -  Ss   Mon09      0:35.88 /usr/sbin/syslogd -s -c -c -l /var/dhcpd/var/run/log -P /var/run/

So it appears there are two separate issues. First, dhcpdv6 appears to be running, but the Status / DHCPv6 is reporting it's not running, possibly because there are no active leases. There should be a distinction between no active leases and not running. Second, /var/dhcpd/var/db/dhcpd6.leases seems to be getting purged upon reboot.

#5 Updated by Phillip Davis 4 months ago

https://github.com/pfsense/pfsense/pull/3197
That fixes the little side issue, where in fact the leases file exists but has no leases in it. After the PR, the "no leases file" message only appears if there really is no leases file.

#6 Updated by Daryl Morse 4 months ago

I can confirm that this fixes the issue where the file exists but contains no leases. The lease file is still being purged by reboot.

#7 Updated by Renato Botelho 4 months ago

  • Category set to DHCP6
  • Status changed from New to Feedback
  • Assignee set to Renato Botelho
  • Target version set to 2.4.0
  • % Done changed from 0 to 100
  • Affected version set to 2.3.2

PR has been merged, thanks!

#8 Updated by Jim Pingle about 1 month ago

  • Status changed from Feedback to Resolved

Seems to be fine. No errors on the page with or without leases, with or without RAM disks enabled.

#9 Updated by Daryl Morse about 1 month ago

I'm not able to comment on item 2 in the original list due to a dhcpv6 bug in windows 10, but it appears that the lease file is not being purged by reboot.

Also available in: Atom PDF