Hello all – just spent a few hours searching on the internet and have seen many people with a very similar issue. Some of the ‘resolutions’ involved installing a wifi helper app on your Android phone, removing the battery and clearing the cache, and even just trying 10 times in a row hoping that the DHCP gods will grant your Android device an IP address so you can access the internet through your Ubiquiti APs and Sonicwall (TZ215 or TZ400 tested here).
To add more perplexity to the issue – iPhones and other iOS devices don’t have any issue with the identical setup.
In our case, we use the Ubiquiti/Sonicwall setup for a large car dealership and customers connect to the guest network for access to the internet (only). This was frustrating, especially for those who decide to wait for their cars in service and couldn’t use the internet without chewing up their data plan.
Our issue started when we upgraded the router/security appliance for the main internet from a Checkpoint Safe@Office 1000NU to a Sonicwall TZ400. The Checkpoint just wasn’t cutting it with our new 100MB fiber internet (we were realizing 85MBps down, but only 4-6MBps upload). Swapping out the Checkpoint to a Sonicwall gave us synchronous 95MBps without changing anything else.
Unfortunately, that’s when we started getting reports of Android devices (especially Samsungs) no being able to connect to the wifi. Log analysis showed that they just couldn’t get IP addresses; assigning static (pain pain pain) would allow them to connect. We tried all the internet tricks to no avail. We updated the Ubiquiti controller software to the latest and upgraded all APs, reset settings . . . to no avail. We upgraded to the latest Sonicwall ROM image and still no relief — Android devices, while connected to the APs, could not get to the internet.
Finally, it was time to pray. After praying, I started to play with some settings in the Sonicwall. First, we enabled FIPs (or tried to, but too many changes required on the Sonicwall to make it qualify). Then – we tried to go to IPV6 – thankfully aborted since it was a pain setting up ranges that were compatible with the existing network.
Finally, the answer . . . two settings which I thought were great under the DHCP server settings were causing the issue: Enable Conflict Detection and Enable DHCP Server Persistence. I thought this was a great idea and always enabled them. Unfortunately, it looks like the persistence piece, especially, latched onto or reserved IP addresses based on Mac Addresses and wouldn’t assign new numbers to an Android device (or the device refused the old IP address). In any case, using the options below resolved the issue!
Hope this helps anyone who stumbles onto it – please comment if it helps you!