OpenWRT, dual routers, dual SSIDs and VLANS

Back in the day I used to have one router in the house: the D-Link DIR-825, flashed with OpenWRT. Configured with two SSIDs – one for internal network use, and one for guest access – the latter being separate from the internal network of the flat.

After moving to our house, I discovered that the house construction materials provide a better shielding for radio signals, which in turn meant that the reach of my WiFi router wasn’t quite what it should be to reach the far corners of the place. I tried increasing the output wattage, but that had only a marginal increase in reach. So in the end I opted getting a new primary router – the TP-Link Archer C5 (though mine has three antennas?), which was promptly reflashed with OpenWRT. The DIR-825 was moved to the opposite corner of the house to increase reach, and at the same time I lowered the output wattage of the radios.
Because of time constraints, I didn’t bother stretching the guest wifi to the second router, as it requires a bit more configuration to properly separate the flows of data between the two networks: vlan configuration.

Continue reading

OpenWRT, Atheros & channel availability

If you’re living outside the US, and you’re using OpenWRT (a fantastic 3rdparty opensource firmware for many routers), you might have noticed that not all the WiFi channels which are legally allowed in your region are actually available for you to choose from.

This is a known issue, and stems from the fact that the OpenWRT images are built without CONFIG_ATH_USER_REGD=y (which allows overriding the wifi-card builtin default regulatory domain), so that the builds are compliant with the regulations of the US. (see trac ticket 6923)
If you pick another region in the settings, the ROM will pick the most restrictive of the two – in my case this means that WiFi channels 12 and 13 are not available to choose from.

There are two ways to get around this:

  • Building OpenWRT from source, and enabling this option
  • Using reghack to patch the drivers (see the README on how to do this)

I only recently learned of reghack (thanks, Stijn!) which works nicely ;)