Long Distance WiFi Relationships are Hard
I recently moved into a very unique apartment on the outskirts of town. The views are incredible but the WiFi is weak. The WiFi is transmitted across the main part of the house and then has to travel through a few adobe walls. Adobe bricks are a traditional building material in New Mexico. The bricks are made of dried mud. They density of the bricks makes them a great insulator for heat and sound but this also means that they interfere with wireless signals. The house was built to look like a traditional adobe home and is also plastered in mud. The plaster is stuck to the walls via metal lathe and chicken wire, essentially forming a makeshift faraday cage. I could get spotty connections in different parts of the apartment but I needed to figure out how to make it more stable.
Bridging the WiFi Gap
I researched buying a wireless repeater but there is an issue with generic repeaters: they halve the bandwidth of the main router. I am fine with access to half the bandwidth because the internet connection is very fast but I didn't want to handicap the other people living and working in the house who might accidentally connect to the repeater node unwittingly.
I did a bit of redditing and googling and quickly determined that DD-WRT could act as a pseudo wireless repeater. DD-WRT is an open source router firmware that gives many advanced capabilities depending on the chipset of your router. I have an old Netgear R7000 wireless router that has been my workhorse for years that is compatible with DD-WRT. I was leary of using the beta distribution, but it was the recommended version so I downloaded the firmware and installed it. I am always concerned about bricking my hardware but it turned out fine. The installation was surprisingly smooth.
The DD-WRT instructions for setting up a repeater are easy to follow, but they didn't work. Part of the repeater instructions require the creation of virtual wireless lans to act as connection points for the router. Rather than just retransmitting the SSID of the master router, DD-WRT creates local vlans that act as access points to the main router (this is why I referred to it as a pseudo repeater). I could not connect to the virtual lan SSID on either the 2.4 or 5Ghz bands. I tried different devices using different operating systems but nothing worked. Even completely disabling wifi security on the vlan connections did nothing to solve the problem. Apparently this is a known issue with DD-WRT and forum posts claim that it works out-of-the-box only on certain hardware.
I researched other alternatives. The R7000 does have the ability to form a wireless distribution system (WDS). WDS would require that I install DD-WRT on the main router but it would also cause the bandwidth halving issue that I wanted to avoid. DD-WRT also gives you the option to create a wireless client bridge. Both routers offer 2.4Ghz and 5Ghz bands. I configured my router as a client bridge on just the 5Ghz band and set the 2.4Ghz band as a local access point. This works great. I have used it for over a week and it has yet to drop off. Speed tests show that I do get just under half of the available bandwidth but it is MUCH faster than directly connecting to the long distance adobe degraded signal. I get about 2Mbps connecting directly to the 2.4Ghz long distance connection, but I get around 36Mbps when I connect via the access point bridge. This is more than I need.
The DD-WRT Configuration
Under Setup > Basic Setup I configured the static Router IP settings. I set the Gateway and Local DNS both to the IP address of the main router. I set the Local IP Address to a high value outside the scope of the main router's DHCP configuration range.
Under Setup > Advanced Routing I changed the Operating Mode to Router.
In Wireless > Basic Settings I configured the 2.4 GHz wireless interface Wireless Mode to AP and created a memorable SSID for the access point. I set the channel for the 2.4Ghz network to a different channel than the main router. I configured the 5Ghz Wireless Interface to Client Bridge and set the SSID to the one on the main router.
Under Wireless > Wireless Security I set the 5Ghz Security Mode and Shared Key to match the main router. I setup a custom password for the 2.4Ghz AP network.
I disabled the SPI Firewall in the Security tab and unchecked all the boxes.