Skip Navigation

Advertise Hostname IP for 2 different Interfaces (LAN and Tailscale)

Hello everyone, I have I guess a bit tricky situation on hand

I have 4 devices (2 computers, 2 cellphones) on my home network, they're all connected on the same LAN, and additionally, all are also running Tailscale (rather out of the box configuration except specific IPv4 addresses given by me)

When going out of home, I normally take up to 2 devices with me and connect to the ones at home through the Tailscale IP

Usually I do this by typing the IP address manually on either scenario, if I'm home I connect typing the LAN IP Addresses for the devices, otherwise I manually type the Tailscale IP addresses

I would like to now optimize this process using Host Names; I would like to type in say, SSH pc1 and that connect via LAN IP if available, and otherwise fallback to Tailscale IP if not

Result being I can just type the one singular host name, and connect successfully regardless if I'm home or not, also using the best possible connection (LAN preferred over Tailscale)

I am aware Tailscale has a feature that it does this out of the box using the Tailscale IP on the same LAN, but this doesn't seem to work on all devices (the phones) and additionally that generates some noticeable overhead given their age too

I have been reading about Avahi and thinking of using it on each device, advertising the same host name with both it's IPs, which I am yet to try but figured I could use more input on solutions if anyone has experience with it, I'd appreciate any

Thanks for reading, and I hope you have a nice day

7 comments
  • I do exactly this by using DNS. You’ll want DNS on your home network to report back just the internal IP addresses for each host, but not the Tailscale IP addresses (that is, if you want the hostnames to work outside of Tailscale too).

    Then for Tailscale’s DNS you’d set up records for the same hostnames but return either just the Tailscale IP addresses or both. I generally do both but it’s probably better to do the former to avoid leaks outside the WireGuard tunnels (though with a subnet router that probably won’t happen anyway).

    This is much like traditional split DNS where your internal network’s DNS server is probably going to give internal IP addresses for a local web server’s hostname but a public DNS server would return a publicly routable IP address.

    Avahi is going to be a huge pain because it relies on multicast. It won’t work over Tailscale (or traditional VPN tunnels other than an OpenVPN TAP interface) without lots of fighting.

7 comments