This article describes reconfiguring the wireless access point portion of a home network in order to provide a more reliable internet connection.
BackgroundMy employer provides home internet and telephony. The choice of provider is predetermined and there is no option for selecting alternate hardware.
Connectivity is fine when using a wired connection. However, the wireless connection is quite unstable. The wireless network often experiences problems with temporary and permanent disconnections. I am often greeted with "Dad, the internet is down again!" when coming home from work.
At the place we used to live, the internet was "part of the apartment" and each owner bought their own hardware to make a connection. Back then I bought a small wireless router and installed Tomato firmware. Tomato was chosen because I needed QOS to protect internet voice calls against streaming video bandwith usage. Tomato was so trouble free that I did not think about it until the current wireless problems.
Below I describe how I replace the wireless section of my "all in one" box with a Tomato powered access point.
To ease description, I refer to the new access point where we install Tomato firmware as "Tomato hardware", and the all-in-one service provider box which connects to the internet and provides wireless and wired connectivity as "original hardware".
Tomato ConfigurationFirst we need an access point separate from the service provider's original harware. Install Tomato on this device.
Google tomato firmware to get information on device compatibility and firmware installation.
I use the following configuration to set up my access point:
Note the following settings:
- The WAN port is disabled, and "Use WAN port for LAN" is checked. This allows the access point to be connected to the original hardware via the WAN port.
- The "Router IP Address" is set to a value outside of the block allocated by the original hardware DHCP server. (described in the next section)
- Uncheck "DHCP Server" as one is already active in the "all in one" box.
- Wireless is configured as an access point, and details are configured as desired. I do a scan to determine a channel in the least populated part of the spectrum.
Original Hardware ConfigurationThe original hardware is usually configured by a web interface at a specific internal IP address. In my network this address is 192.168.1.1. See the documentation which came with your device for details.
Navigate to the configuration section for LAN DHCP setup.
It is important to ensure that the static IP address given to the Tomato hardware will not also be allocated to another device in the internal network. In the picture above, the "IP Pool starting Address" is 192.168.1.33, so our static access point address at 192.168.1.20 (see previous section) is safe enough.
After the above configurations, the Tomato hardware can be connected to the original hardware via a network cable. Wireless connections to the Tomato hardware will use the internet connection provided by the original hardware. Disabling the wireless access point in the original hardware is left as an excercise to the reader. (hint: look on the original hardware's wireless LAN configuration page)
DNS Server ConfigurationA DNS server translates a named address into an IP address. For example, a DNS lookup can be used to map "google.com" to "184.108.40.206".
Custom DNS servers can be specified in the "DNS Server" section of the original hardware. The default value is the addresses of the service provider's DNS servers. In the picture in the previous section, two custom DNS servers are specified: 220.127.116.11 and 18.104.22.168. These are public DNS servers made available by Google.
There are two reasons one might want to specify custom DNS servers:
- Speed: the lag between clicking on a link and bringing up a new website can be due to the performance of a DNS server lookup. It is worthwhile to experiment with other DNS servers to see if browsing responsiveness can be enhanced.
- Censorship: one way censorship can be implemented is to program a DNS server to not return the real IP address of a page. To avoid this censorship, an alternative DNS server can be used.
The actual site name has been altered to protect the guilty. Switching to Google's DNS servers avoids this censorship.
WorkaroundsAfter surfing for a while and enjoying the rock solid wireless connection, I noticed that some settings in the original hardware had reset themselves to service provider defaults. Notice the "DNS Server" settings in the picture below have reset themselves to service provider values!
I am able to reproduce this behavior, and it is quite mysterious. There are no other settings in the original hardware which would indicate an automatic reset to factory defaults of individual configuration entries. Unlike Tomato, the original hardware uses closed source software, so it is quite difficult to dig in to see what is going on. I stop short of claiming some sort of dark conspiracy, and use net-fu skills to work around this "feature".
At home I run Ubuntu. The screenshot below is from the connection settings dialog for the wireless network I connect to.
There are two configuration changes:
- Method is changed from "Automatic (DHCP)" to "Automatic (DHCP) addresses only". This means that we will get our internal IP address from the DHCP server, but will ignore the DNS server information provided by the DHCP server.
- Since we don't use the provided DNS server information, we specify DNS servers for this connection in a comma separated list. In the dialog above, we see Google's DNS servers: 22.214.171.124 and 126.96.36.199.
TLDRHurray! Now our wireless internet connection is solid as a rock. No unhappy family members and no more trips to the basement to reset the internet hardware.