How-To: Combine 2 ISPs into 1 home network

In my home, I have 2 ISPs providing internet service – SingNet and Starhub. I won’t get into details as to why I have 2, but the fact is, I have 2.

For a long time, these 2 ISPs have remained separate. PCs and laptops connected to one can’t see the other, and vice versa. When one ISP fails, we’d have to manually go to the router and plug the LAN cable into the other one, to continue having internet service. Now, we’re (meaning the people in my household) are naturally lazy. The thought of having to walk to the routers, sort out which cable is the right one, and plugging it into the other ISP, is a headache that we dread. It was made even more apparent recently when my ISP seemed to be having some minor lag issues with an online game I’m playing, and by swapping my cable over to the other one, I confirmed that the fault lay in the ISP and not in any of my PCs or laptops.

During the troubleshooting, I had to plug, unplug, replug the cables many times, and as you can imagine, it’s tiring.

So I decided to finally get off my butt and combine the 2 ISPs into 1 network. The advantages are:

  1. No longer need to physically walk to the routers and sort out the cable mess.
  2. All PCs and Laptops (and other devices) can see each other, regardless of the ISP they use to have internet service
  3. Where each PC or laptop (or device) physically plug into becomes irrelevant. All will be able to select the ISP they wish to receive internet service
  4. Similar to point 3 above, it doesn’t matter which SSID the wireless devices connect to, too. All will still use the same home network

The disadvantage, as far as I can tell is:

  1. The devices that you want going to the secondary ISP, has to have some way to set a different route from normal. I achieved this by using a batchfile and running the netsh (or route) command at bootup.

The actual configuration is pretty simple. First of all, decide which one will be the “Master” or “Primary” ISP, and the other shall be “Slave” or “secondary”.

These are the steps:

  1. Configure the slave router to have the same subnet as the master, but outside of the DHCP pool. Eg if the Master router has an IP if 192.168.1.1, then configure the slave router for “192.168.1.2”
  2. Disable DHCP on the slave router. Leave it on in the Master router.
  3. Plug an ethernet cable to connect the 2 routers. It doesn’t matter which port you use – modern routers now auto-detect the cable and signals, so you don’t need a cross cable or to specifically plug into the “uplink” port.
  4. Done!

See? Simple right?

On PCs or laptops (“clients”) that you want to use ISP 2 (ie slave router), configure their gateway address for “192.168.1.2”. Otherwise, any PC or laptop or device that connect to ANY of the 2 routers (wired or wireless) will default to using ISP 1, ie the gateway will be 192.168.1.1

So, on clients that you want to use the secondary ISP, make a batchfile like so:

netsh int ip delete route 0.0.0.0/0 “Local Area Connection”
netsh int ip add route 0.0.0.0/0 “Local Area Connection” nexthop=192.168.1.2

and stick that into the Startup folder or something, so that when they boot up they will use the secondary ISP and not the primary ISP. The advantage of doing this over configuring static IP for all your PCs and Laptops using the secondary ISP is that they can all still use DHCP.

So should any of the 2 ISP fail, you can also issue the netsh command as listed above with the appropriate “nexthop” value to select your router, and hence the ISP, to use. You don’t even need to reboot your device/PC/Laptop either… it takes effect IMMEDIATELY.

No, Windows will NOT automatically “failover” when one ISP dies. There are many reasons why it won’t but suffice to say, as long as Windows can still see the other PCs and devices on your network, Windows will deem the network as “ok” and not failover, even if you configure metrics.

Enhanced by Zemanta