DHCP server is not releasing expired lease
-
@sdugoten I just looked through redmine, and I didn't see anything related to this. Once I get a chance to duplicate your problem I will put in a redmine if seeing the same thing.
But yeah once a lease has expired - should be free to use, once all the actual free IP have been handed out. You should not run into a issue with no leases available unless all leases are active. If there are expired leases - they should be reused and handed out to some new client looking for a lease.
You should not have to manually clear old expired leases.
-
Try this:
Your config:
Range: 10.0.1.70 - 10.0.1.180
You have 13 static mappings.Change to this:
Range: 10.0.1.20 - 10.0.1.255
Your 13 static mappings, change to: 10.0.1.1, 10.0.1.2, 10.0.1.3, 10.0.1.4, 10.0.1.5.. and so on. -
@guile while creating a larger scope would be a possible work around to his problem - dhcp server should hand out expired leases when all its free ones are used up. That is the whole point of expiring a lease - so it can be reused, you shouldn't have to clear them manually for them to be available once they are expired.
The only thing I could think of that could cause such an issue, is those IPs are actually active - and just don't have a lease from the dhcpd. Dhcp server as you see from his above settings would ping an IP before it hands out an a lease, if something responds to that ping, it shouldn't hand out the lease even if it is expired.
I am about to head out, but I have a bunch of old expired leases in one of my vlans, I should be able to duplicate if this is a problem - and not just something odd on his box by reducing the scope to not have free leases available, and only expired ones - and then trying to get a lease it should hand out one of the expired ones.
-
@guile I actually have more fixed IP assigned manually on other devices in the range of 10.0.1.1 to 10.0.1.20 already. I intentionally use 10.0.1.70 - 10.0.1.180 for dynamic IP address. So, there is no static mapping or fixed IP are being used inside this dynamic IP range already.
-
-
@guile again that would be a work around.. Let me try and duplicate and then create a redmine so they can correct it. dhcp server should reuse expired leases.. You shouldn't have to create a cron to clear them, etc.
-
@johnpoz i understand.. but im developer, the workaround its in my veins
-
@guile so seems I don't even have to change my scope - clearly all of my IPs from that scope are expired already..
So I just need to fire up something on that vlan and see if it gets one of those expired leases. I don't normally fire up stuff on that vlan - other than to just temp get it on the network, then I assign it a reservation (outside the scope).
I don't recall having any issues recently - and from looking at the dates of the expired, does seem that some have been reused since they are active.. see like 105, 106 and 107.. Hmmm have I not given something a reservation?
But this should make it easy to try and duplicate the problem he is seeing.
edit: from what I see on my leases - it does seem to be handing out expired ones already.. But when I get back I will test and document.. And we can put in a redmine about it to see if anyone else is having the issue. And should be simple enough to force a example by just using a small lease and scope - and then letting them expire and fire up something with a different mac, ec.
-
@johnpoz try to fire up some smartphone with randomize MAC active. But first forget the wifi and rejoin.
-
@guile Since you said December, are you on an old version or does it persist across reboots/version upgrades?
Some sort of odd file corruption?
-
-
@SteveITS said in DHCP server is not releasing expired lease:
Some sort of odd file corruption?
Maybe because I can not duplicate the problem - as you saw before my dhcp scope is used.. All the IP in the scope have been handed out.. So I know just phone to that vlan, letting it use a different mac (private stuff)..
And you can see it grabbed an old expired lease .104, and assigned it to my phone connection..
What specific version of pfsense are you on? I am on 23.05.1 - I could try and duplicate the problem on my old 2.6 vm, or 2.7 vm - but take me a bet to test it out..
-
@SteveITS it persist across version upgrade and reboots
-
@johnpoz said in DHCP server is not releasing expired lease:
@SteveITS said in DHCP server is not releasing expired lease:
Some sort of odd file corruption?
Maybe because I can not duplicate the problem - as you saw before my dhcp scope is used.. All the IP in the scope have been handed out.. So I know just phone to that vlan, letting it use a different mac (private stuff)..
And you can see it grabbed an old expired lease .104, and assigned it to my phone connection..
What specific version of pfsense are you on? I am on 23.05.1 - I could try and duplicate the problem on my old 2.6 vm, or 2.7 vm - but take me a bet to test it out..
I am on 23.05.01
Actually, I have already removed all expired lease so I can't reproduce it right now until I have more expired lease. However, I did find a lot of similar case that wasn't resolved
https://forum.netgate.com/topic/143143/dhcp-leases-are-not-automatically-released/16
https://forum.netgate.com/topic/137042/dhcp-service-not-renewing-ip-lease
https://forum.netgate.com/topic/166995/remove-dhcp-leases-automatically/15
https://forum.netgate.com/topic/46897/dhcp-addresses-not-releasing
I am not sure if some particular condition would make the dhcp server not reusing expired ip address.. However, I am 100% sure the DHCP server wasn't releasing IP address when I first wrote this post. I got a new phone and try to connect to the LAN, the phone wouldn't connect to the LAN via wifi. No IP is assigned. Then I started looking into the log and see what happened, and I found that DHCP server is complaining no free lease. So, I looked at the dhcp lease page (the first screenshot on first post) and found that many expired lease stuck in that page and none of those IP address were re-used. This was how I found out the problem.
i end up removing all the expired leases , make the pool a bit bigger and voila the new phone connect to the LAN via wifi. So...it's something fishy on the dhcp server...
-
@sdugoten while I do recall past posts with sim issue, I don't recall ever being able to duplicate the problem..
I would attempt to duplicate it quickly, create a small scope, just a few addresses with really short lease time, and then run through seeing if it will issue an expired lease.
You might want to do just a clean flush of the whole leases file, and let it create new file.
The leases file is stored here
/var/dhcpd/var/db
I would shut down dhcp services on all interfaces, then delete the files there will also be a leases~ file and then restart your dhcp services..
-
@johnpoz said in DHCP server is not releasing expired lease:
@sdugoten while I do recall past posts with sim issue, I don't recall ever being able to duplicate the problem..
I would attempt to duplicate it quickly, create a small scope, just a few addresses with really short lease time, and then run through seeing if it will issue an expired lease.
You might want to do just a clean flush of the whole leases file, and let it create new file.
The leases file is stored here
/var/dhcpd/var/db
I would shut down dhcp services on all interfaces, then delete the files there will also be a leases~ file and then restart your dhcp services..
I just stopped the dhcp server service, rename the existing lease file to mydhcpd.leases and then delete all other files. When I restarted the dhcpd service, i saw there is one file owned by root, but not dhcpd. Is that intentional?
Before image is like this
-
All my files owned by dhcp:
-rw-r--r-- 1 dhcpd _dhcp 45947 Jul 9 08:57 dhcpd.leases -rw-r--r-- 1 dhcpd _dhcp 50594 Jul 9 08:48 dhcpd.leases~ -rw-r--r-- 1 dhcpd _dhcp 0 May 16 16:28 dhcpd6.leases
-
@sdugoten yeah I don't think it should be owned by root.
[23.05.1-RELEASE][admin@sg4860.local.lan]/var/dhcpd/var/db: ls -la total 35 drwxr-xr-x 2 dhcpd _dhcp 6 Jul 9 06:29 . drwxr-xr-x 4 dhcpd _dhcp 4 Feb 14 2022 .. -rw-r--r-- 1 dhcpd _dhcp 25151 Jul 9 06:29 dhcpd.leases -rw-r--r-- 1 dhcpd _dhcp 25841 Jul 9 06:29 dhcpd.leases~ -rw-r--r-- 1 dhcpd _dhcp 581 Dec 9 2022 dhcpd6.leases -rw-r--r-- 1 dhcpd _dhcp 581 Dec 9 2022 dhcpd6.leases~ [23.05.1-RELEASE][admin@sg4860.local.lan]/var/dhcpd/var/db:
-
@johnpoz said in DHCP server is not releasing expired lease:
@sdugoten yeah I don't think it should be owned by root.
[23.05.1-RELEASE][admin@sg4860.local.lan]/var/dhcpd/var/db: ls -la total 35 drwxr-xr-x 2 dhcpd _dhcp 6 Jul 9 06:29 . drwxr-xr-x 4 dhcpd _dhcp 4 Feb 14 2022 .. -rw-r--r-- 1 dhcpd _dhcp 25151 Jul 9 06:29 dhcpd.leases -rw-r--r-- 1 dhcpd _dhcp 25841 Jul 9 06:29 dhcpd.leases~ -rw-r--r-- 1 dhcpd _dhcp 581 Dec 9 2022 dhcpd6.leases -rw-r--r-- 1 dhcpd _dhcp 581 Dec 9 2022 dhcpd6.leases~ [23.05.1-RELEASE][admin@sg4860.local.lan]/var/dhcpd/var/db:
This was the steps I did
- Stop the dhcp service in LAN interface under service
- rename the original dhcpd.leases to mydhcpd.leases
- delete all other files
- check the checkbox in dhcpd lan interface to enable it again
Files generated as the screenshot above with root ownership.
-
https://redmine.pfsense.org/issues/4936