In a search to replace several NetGear WNCE2001 devices which had, over time, proven themselves to be so unreliable they would literally kill the entire wireless AND wired network by randomly hijacking DHCP. I tried many devices — some either couldn’t bridge at all, others ‘worked’ but had such terrible range or connection quality they were practically useless, others were simply too large, the list goes on. I was almost ready to give up.
Then I discovered the GL-MT300A – a tiny Linux / OpenWRT powered WIFI/Ethernet cube for around $35. The list of built-in features is endless. But I needed it for only one thing – wifi client-mode bridging.
I had high hopes – given the fact it ran OpenWRT along with the LUCI web interface – that I’d be able to do practically whatever I wanted — such as a straight-up WIFI bridge. And with it’s USB port and 3G/4G tethering functions, theoretically this thing could be used anywhere – with or without wifi!
Unfortunately, after some tweaking around with both the proprietary GUI and OpenWRT LUCI (advanced) GUI, I discovered it wouldn’t be so easy. There’s no ‘built-in’ functionality to enable bridging mode as I had with the [extrememly buggy] NetGear devices. Basically there’s always NAT which I absolutely need to avoid. Attempts to bridge between wireless and wired interfaces would always fail. It turns out that due to limitations on its wifi chipset (and most chipsets other than Broadcomm, apparently), wifi bridging isn’t supported in the hardware itself. Bummer.
After some more research, I discovered an open-source software ‘fix’ for this hardware limitation called ‘relayd’. It’s available through the built-in package manager and can be installed with a few clicks. Configuring everything ‘correctly’ is a whole different story – I spent countless hours trying, failing, factory-resetting, trying again – until I found a repeatable, working and reliable step-by-step solution that doesn’t break things when you change settings afterwards in the standard GUI.
Here is the result of the project I now call “Wifi-Dongle 3.0” (this is actually my 3rd hardware attempt as mentioned in the first paragraph):
- Bridge WIFI in client mode to the physical WAN port
- Provide administration (and NAT) via the LAN port
- Optional WIFI hotspot mirroring the LAN port, serving for administration via mobile device and/or range extending
- Manage WIFI networks and hotspot settings via standard (non-advanced) GUI
Here are the steps required to achieve all of this. You will need SSH/vi experience for one of the steps if you want visual status and/or better connectivity:
- Connect laptop or PC to the LAN port, and perform a factory reset (hold reset button for at least 10 seconds)
- Log into 192.168.8.1 with a browser and do the initial setup.
- Standard GUI -> In WAN setup – Set to ‘repeater’ mode and join a network. Wait at least a minute for the connection to come fully online before the next step.
- Standard GUI -> Make sure you are on the latest firmware (v2.22 as of this writing).
- Standard GUI -> Go into ‘app repo’, seach for “relayd” and install both packages. The GUI will show ‘error status 255’ each time but don’t worry, it worked.
- Advanced GUI -> Network -> Interfaces – Delete WAN6.
- Advanced GUI -> Network -> Interfaces – Create an interface called ‘stabridge’ with type set to ‘Relay Bridge’. On the next page, leave IP address blank, and select ALL interfaces for relaying.
- Advanced GUI -> Network -> Interfaces – Edit WAN and change protocol to ‘unmanaged’.
- Advanced GUI -> Network -> Firewall – Set everything to forwarding in default settings and in both zones, add stabridge to the WAN zone, and finally enable forwarding between both zones.
- Advanced GUI -> System -> Startup -> Enable and ‘restart’ relayd
If you would like to change the WIFI network – keeping in mind the device will remember all network connections and automatically connect to whatever is available – simply go to the standard GUI and repeat step 3.
If you would like to enable/disable or change the name or password of the ‘hotspot’, go into the standard GUI and toggle the ‘switch’ to enable/disable it or click on the WIFI icon to change the settings.
I’ve been using several of these devices with these settings for a few weeks now and I would like to report that the reliability, range and performance is quite amazing. The amount of stuff you can do with these little guys is nothing short of impressive. Hopefully version 3.0 of this project will be the final solution.
I eventually plan to explore 3G/4G tethering functions and how they cooperate with the current settings.