Like many on the Dev Ops and Machine Learning Ops journey, I have a home lab running at home, and last week, for the first time since I moved, I had an interruption in my internet service. This was because there was a fiber optic repair near my house, and I was left without access to my home lab for a couple of hours. Since I couldn’t do anything else, it left me thinking a couple of things:

The first is that, although in my home lab I do not have critical services exposed to others, I do have important parts of my life, because that is where my OpenClaw agent lives, my applications to track exercise, finances, my second brain and some other experiments that I have running.

The second is that the experiment of having a fallback network to minimize the downtime of my server may be interesting. So far, my number one candidate is to get a Starlink antenna and sign up for a plan.

So I started going down the rabbit hole a bit of how to configure internet redundancy and I found that, first of all, I need to get a router that can handle failover, like a Dual-WAN or load-balancing router. And second, I found that I have to somehow manage the IP addresses, because if I keep my current configuration, the moment my home lab goes to the failover network, the IP addresses could change, and the location of the network nodes and some services that I am exposing to the outside of my home lab could become inaccessible.

So I started researching my options for managing it, and I think I’m going to use Tailscale for now.

I already use Tailscale inspired by a video where Dax Raad, the creator of Open Code and the Serverless Stack. He uses a MacBook Air as a thin client to connect via SSH to his main workstation. I always found it very attractive because at many times in my life I have not had very powerful laptops, and although today I have a laptop that works for me to run almost any of my workflows, there are certain services that make more sense running on a server than on my laptop intermittently.

So now I’m using Tailscale Serve, I can configure exposed services over the Kubernetes network, and Tailscale takes care of rerouting the traffic underneath. Then, the server never changes IP within the Tailnet and I can continue accessing it without worrying about what network my cluster is using to answer.

So far, that solution seems super elegant to me, I have no doubt why many companies are choosing to use Tailscale for secure access to their services and in many cases for multicloud architectures.