McGarrah Technical Blog

Tailscale on Dell Wyse 3040 with Debian 12

I have been using the Dell Wyse 3040 as awesome little systems for my Tailscale nodes in my multiple joint homelab networks. These systems are super low power consuming and physically small enough to just plug and go. Truly, deploying a WireGuard®-based VPN solution could not be any easier. I have four of these units connecting my homelab networks across three geographically diverse locations.

Debian 12 on Dell Wyse 3040

For this install I will assume you have read the earlier post Debian 12 on Dell Wyse 3040s as this is were I started out for each of the Tailscale nodes for a base Debian 12 installation. You will need to fix the power down issue and have these units network capable and updated.

I would recommend you also update your CMOS battery maybe using the post Dell Wyse 3040 CMOS CR2032 Battery Replacement to make sure the units stay up and running.

Tailscale Account

You will need to setup a Tailscale login for your Tailnet. This will be important later when connecting your newly installed system to your account. The steps are not terribly difficult.

Tailscale Install

Most of this is from Tailscale Download & Install and the Tailscale excellent documention. I’ve included my experience and leaving you how I setup my systems.

Update Debian

First make sure you are current on your Debian installation.

sudo apt update && sudo apt dist-upgrade

After the update and upgrade, you should reboot your system so everything is current.

Install your dependencies

sudo apt install curl vim -y

Install Tailscale

Install Tailscale client

curl -fsSL https://tailscale.com/install.sh | sh

You will need the sudo password.

Start the service up and register it with your Tailscale Account.

sudo tailscale up

You will see a URL

mcgarrah@wyse3040-ral~$ sudo tailscale up

To authenticate, visit:

        https://login.tailscale.com/a/20b0b2c502ab03

Web browser authentication and connection of new node to your Tailnet account.

tailscale authenticate

tailscale authenticate

tailscale authenticate

After connecting the console will show “Success.” and the new node Tailnet IP address and DNS entry.

mcgarrah@wyse3040-ral~$ sudo tailscale up

To authenticate, visit:

        https://login.tailscale.com/a/20b0b2c502ab03

Success.

My new node is:
wyse3040-ral.tailca1b2.ts.net
100.118.211.111

Configure Tailscale

These are some steps post-installation that I’ve standardized for my systems that might be useful for you.

Setup automatic updates and immediately update

sudo tailscale set --auto-update
sudo tailscale update --yes

Configure Tailscale Subnet Router

Enabled the Debian networking features to allow for using Tailscale relay nodes and exit nodes. Even if you don’t use these options in Tailscale, it does not hurt to have this enabled.

Enable IP Forwarding

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf

Verify no Firewall or UFW

If you configured your system per my post Debian 12 on Dell Wyse 3040s, then you should have no firewalls enabled. Otherwise you should check Connect to Tailscale as a subnet router for details on how to test and setup Firewall services.

Here is an example of advertising my private subnet networks in two test locations using the command line. Your subnets will be different depending on your network configuration.

sudo tailscale up --advertise-routes=192.168.1.0/24
sudo tailscale set --accept-routes

sudo tailscale up --advertise-routes=192.168.2.0/24
sudo tailscale set --accept-routes

Key Expiry

If the device you added is a server or remotely-accessed device, you may want to consider disabling key expiry to prevent the need to periodically re-authenticate.

KB - Key Expiry has details on the keys that expire periodically. I would recommend you disable the key expiration or have a scheduled rotation so you don’t look access to a remote location. I every so often will rotate the keys when I have physical access to the location with the node in case something goes wrong on the rotation.

There is no command line method to update or manage the keys that I can find. This requires the WebUI in Tailscale on a per machine basis.

Default rotation is 180 days on a new Tailnet so I was caught flat-footed and had to cycle each one after they went offline.

Considerations

The Dell Wyse 3040 has a built in 1Gbps NIC port. If that is limiting and you are fortunate enough to have an ISP service faster than 1Gbps, you can use the single USB3.0 port to provide a 2.5Gbps USB NIC.

So far the Intel Atom 2-core CPU has not been a limiting factor even under heavy network loads.

The 2Gb of RAM also not been a factor but I’m not doing anything but Tailscale on the units.

I am not exploiting all the features or capabilities of the Tailscale software so YMMV as you use more features. So far so good for me however.

References

I highly recommend the Official Tailscale Youtube Channel to learn more. It is an excellent resource for more advanced features.