What are the possible issues in using very short DHCP lease time (< 1min)?

Solution 1:

With a very low lease time you will see an increase of network traffic, particularly broadcast traffic as the "discover" and "offer" phases of DHCP are layer 2 broadcasts. How much of an issue this is depends on many factors such as the size and complexity of the network, latency, performance of the DHCP server, etc. Keep in mind DHCP clients do not wait until their lease is expired to try to renew it. So if you gave me a 60-second lease I'll be talking to the DHCP server (potentially) every 30 seconds to renew it.

As for "weird" issues, anything goes. Different DHCP clients will behave differently. Some may handle it fine, some may have problems renewing so often and fail. Perhaps there are clients which get a lease and simply sleep for a certain period of time then check if they need to renew or toss the address if it expired. If the sleep is longer than the lease then the system will keep the IP longer than it is allowed to. I haven't seen that issue before but I have seen things like the IP a client requests in the "request" phase being different than the one the server gave it in the "offer" phase but the server actually gave the client the "request" IP, which was already in use. Never under-estimate how poorly software can be written.

Solution 2:

Matching the DHCP lease times with the connection limit of your AP doesn't strike me as the best way of handling the issue. The two don't have to match. Lower the DHCP lease time to something like twice the length of the demo (completely arbitrary suggestion) and expand your DHCP scope to accommodate as many leases as you think you'll have in a reasonable amount of time. As users drop off of the AP and new users connect they'll either get an unused IP from your ample DHCP pool or they'll get a previously leased IP address once those lease times expire.

If configuring your DHCP ip address pool is your means of controlling how many people can connect to the AP then I'd say there's probably a better way of doing that.