We’re back from our vacation and have started investigating the issue that prevents Lighthouse from working on n-enabled Airport Extreme base stations after the recent 7.2.1 firmware upgrade. So far, we’ve installed the firmware on our own test router, but have also collected some diagnostic information from a few users that were kind enough to help us. Many thanks for this, by the way!
So far, we have been able to gather the following results:
- Both the Gigabit Ethernet as well as the slightly older Fast Ethernet versions of the Airport Extreme are affected.
- The bug manifests itself as Lighthouse timing out during the router association.
- We think that we’ve nailed down the steps to trigger the bug. A full workaround will not be possible, but a partial one. Details are below.
- For a clean and complete fix, we will have to wait for Apple to release another firmware update. The problem is clearly a firmware bug, not a Lighthouse bug.
- Last-generation “UFO” shaped Airport Extreme base stations are not affected as well, since no firmware upgrade has been released for them.
- Naturally, all other routers (i.e. non-Airport-Extreme) are also not affected.
Details
After the 7.2.1 upgrade (7.2, which only seems to be available for the Gigabit Ethernet version, is also affected), Lighthouse will time out while trying to associate with the router. This doesn’t always happen, though. We’ve traced the problem down to the NAT/PMP server running on the base station crashing when processing certain, albeit completely legal, NAT/PMP requests. Once the server is crashed, it will not restart. Thusly, all subsequent requests will fail with a timeout error.
Therefore, you might have noticed that Lighthouse sometimes manages to associate with an affected base station after it has been rebooted, but exhibits erroneous behavior later. All further association attempts will then time out.
The offending requests are port forwarding requests for UDP ports. Sending malformed packets also seems to crash the NAT/PMP server.
Thusly, we are currently testing a workaround in which forwarding requests for UDP ports will not be sent if Lighthouse is associated with an affected router. We think that this is a viable workaround until Apple fixes the problem. A patched version of Lighthouse will be released shortly.
Please let us reiterate that this is a bug in Apple’s router firmware, not in Lighthouse.
Implications
Even once the workaround is released, you have to be aware that software other than Lighthouse might be using NAT/PMP as well and thusly crash the NAT/PMP server by sending an offending request. In this case, Lighthouse will, again, not be able to associate with the base station. This is because the workaround will only prevent Lighthouse from crashing the NAT/PMP server, but any other application could still crash it.
If this happens, you will have to restart the base station (for example, by unplugging and replugging the power chord). There is no way to revive the NAT/PMP server once it’s crashed other than rebooting the whole base station.
Downgrading the firmware
Lighthouse is not the only application suffering from the breaking of NAT/PMP after the 7.2.1 update, though, as this thread on Apple’s own discussion board or this one suggest.
We hope that Apple will fix this problem in the next firmware upgrade. 7.2.1 generally seems to be riddled by bugs, as numerous threads on Apple’s discussion board are hinting at.
Until Apple releases a fix, we strongly recommend downgrading to a previous, more stable version of the firmware. Many users are reporting good results when using 7.1.1. Here’s a quick rundown of how to install a previous version of the firmware on your Airport Extreme.
- Open “AirPort Utility”. It is located in the “Utilities” subfolder of your main “Applications” folder.
- Select the affected base station from the list.
- Click on the button labeled “Manual Setup”.
- In “AirPort Utility”’s menu bar, select “Upload Firmware…” from the “Base Station” menu.
- In the dialog that appears, there’s a drop-down menu labeled “Upload Version”. Select a previous version of the firmware from the menu. For example, you could select “7.1.1″.
- Click the “OK” button.
Note that if you are using a firmware version earlier than 7.2, Lighthouse will work without a hitch.
Again, please accept our sincere apologies for this inconvenience, but please also understand that this problem is entirely beyond our control, as it is a problem with the firmware, not with our application. We are crossing our thumbs that Apple will resolve this issue quickly. In the meantime, we hope that the limited workaround we’re currently working on can alleviate the problem.
If you have any additional questions, feel free to contact us.
Many thanks for your understanding!