Lighthouse 1.2.2

23 09 2007

Lighthouse 1.2.2 finally delivers a workaround for the stability problems introduced by the 7.2.1 firmware upgrade for the 802.11n Apple Airport Extreme base station.

After quite a lot of research, we’ve found out that forwarding UDP ports always (and some other NAT/PMP requests sometimes under special circumstances) crashes the NAT/PMP server after the 7.2.1 firmware upgrade. Once it’s crashed, it will never restart, and Lighthouse will no longer be able to communicate with the router. Our workaround prevents Lighthouse from sending UDP port forwarding requests to the affected routers, making sure that the NAT/PMP server won’t crash. Instead, TCP port forwardings will be sent: The affected Airport Extremes seem to forward both the TCP and UDP port when sending a TCP forwarding request, so Lighthouse’s functionality should not be impaired by this workaround.

If you’re running the 7.2.1 firmware on your Airport Extreme, you should reboot your router before upgrading Lighthouse to 1.2.2, since it’s quite possible that the NAT/PMP server has already crashed before and is no longer running. After rebooting your router, Lighthouse 1.2.2 should work fine with the 7.2.1 firmware.

Obviously, this is not a clean workaround, but anything better is not possible due to the nature of the bug Apple introduced in the 7.2.1 firmware. We still recommend using an earlier firmware on your Airport Extreme (see our previous post on how to downgrade) until Apple releases a fix. Once Apple fixes the bug, we will release another update to Lighthouse, in which this workaround will be disabled again.

Please note that if you do not use an 802.11n enabled Airport Extreme base station with the 7.2.1 firmware (read: you’re using a non-Apple router, an “UFO” shaped Airport Extreme or an Airport Express), this workaround does not affect you at all. You won’t notice a difference. If you still want to disable the workaround in your copy of Lighthouse, you can do so by opening a Terminal window (Terminal is in the Utilities subfolder of your Applications folder) and typing the following line, then hitting enter:

defaults write com.codelaide.lighthouse AirportExtreme721Workaround 0

If you want to re-enable the workaround later, just use the same line, but replace the “0″ with a “1″.

Now, we didn’t want to release a new version without throwing in another goody! Lighthouse 1.2.2 implements a feature that many users have asked for: You can now copy either your router’s IP address or your external IP address to the clipboard, enabling you to easily get them into other applications, into emails, instants messages or where ever else you can paste a piece of text.

Of course, you will often want to copy a protocol identifier together with your IP address: If you’re running a web server, you will want the “http://”, if you are running a Secure Shell server, you might want the “ssh://”, and so on. We cannot possibly know which protocols you are using (There are rumors that some people still use “telnet://”, for example). That’s why Lighthouse lets you specify your own protocol identifiers! Just edit them in the preferences, and you can use whichever prefixes are relevant to you!

Other than that, Lighthouse 1.2.2 will now preserve the sort order when editing port mapping profiles (making sure that the profile or port list stays sorted by the column you have selected). Also, we’ve thrown in some minor performance fixes, including a fix for an issue that sometimes (rather rarely) causes a condition in which Lighthouse would “beachball” for a long time.

We’ve also reset the trial period again in order to give unregistered users that have played with an earlier version of Lighthouse another full, 14-day test ride!

While we’re still crossing our fingers that Apple will release a true fix for the buggy NAT/PMP support in 7.2.1 soon, we hope that Lighthouse 1.2.2 will shorten the wait a bit. Oh, and we also hope you like the “Copy IP address” feature, too!

Lighthouse 1.2.2 is available here.

Oh, and by the way, we’ve received a pretty good review from the editor over at Softpedia! Thanks!




News on the 7.2.1 Airport Extreme Issue

21 09 2007

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.

  1. Open “AirPort Utility”. It is located in the “Utilities” subfolder of your main “Applications” folder.
  2. Select the affected base station from the list.
  3. Click on the button labeled “Manual Setup”.
  4. In “AirPort Utility”’s menu bar, select “Upload Firmware…” from the “Base Station” menu.
  5. 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″.
  6. 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!