<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>tailscale &amp;mdash; Joey Manani: The Blog</title>
    <link>https://blog.joeymanani.com/tag:tailscale</link>
    <description>It&#39;s me, your host Joey, and this is an insight into my life and the stuff I get up to</description>
    <pubDate>Sun, 19 Apr 2026 06:02:50 +0000</pubDate>
    <item>
      <title>Upgrading My Network: From Hub-and-Spoke WireGuard to a Full-Mesh Tailscale Setup</title>
      <link>https://blog.joeymanani.com/upgrading-my-network-from-hub-and-spoke-wireguard-to-a-full-mesh-tailscale</link>
      <description>&lt;![CDATA[For the past year, my network looked like one of those &#34;draw the star without lifting your pencil&#34; puzzles… except mine absolutely did lift the pencil. Everything passed through a central WireGuard hub: a hub-and-spoke setup. It worked, technically, but it also felt like driving across town just to talk to your neighbour - pretty slow and annoying.&#xA;&#xA;Switching to Tailscale completely changed the vibe. Suddenly everything could talk to everything else, securely, easily and without the hub getting overwhelmed with switching. &#xA;&#xA;img src=&#34;https://cdn.theflyingrat.com/images/blog/2025-11-30/network.webp&#34; alt=&#34;Hub-and-Spoke vs Mesh Networks&#34;&#xA;Hub-and-Spoke Network (left) vs Full Mesh Network (right) | Joey Manani&#xA;&#xA;!--more--&#xA;&#xA;The Old Setup: Hub-and-Spoke WireGuard&#xA;&#xA;Hub-and-spoke basically means:&#xA;&#xA;Every network node establishes a WireGuard tunnel only to the central hub&#xA;If two spokes want to talk, traffic must route through the hub&#xA;The hub must handle all encryption + forwarding&#xA;No peer-to-peer discovery; everything is statically configured&#xA;Peers basically don&#39;t know of each other&#39;s existence&#xA;&#xA;In practice, this meant:&#xA;&#xA;Devices on the same AP-Isolating LAN had to talk via the hub rather than directly on the LAN. AP-Isolation prevents LAN devices talking entirely (hello apartment Wi-Fi)&#xA;Latency was… BAD&#xA;&#xA;It works, but it’s very &#34;manual oldschool energy.&#34;&#xA;&#xA;The Upgrade: Tailscale Full Mesh&#xA;&#xA;Tailscale flips the entire model on its head. Instead of a rigid hub, you now get a full mesh overlay network:&#xA;&#xA;Every device is a WireGuard peer  &#xA;Peers discover each other automatically using DERP + magic DNS  &#xA;Connections become direct, peer-to-peer, and encrypted  &#xA;If NAT says &#34;no :)&#34;, Tailscale falls back to DERP relay without breaking anything  &#xA;No manual key management!&#xA;&#xA;The coolest part?  &#xA;It&#39;s still WireGuard under the hood - Tailscale just simplifies all of the annoying parts.&#xA;&#xA;Why Full Mesh Is Better&#xA;&#xA;1. Direct Peer-to-Peer Traffic&#xA;&#xA;With Tailscale, remote servers are able to talk to the home server directly and not zigzag through a hub.&#xA;&#xA;Result:&#xA;&#xA;Lower latency&#xA;Lower CPU usage&#xA;Faster file transfers&#xA;Hub doesn&#39;t have to process the same thing twice&#xA;&#xA;2. Automatic Key Management&#xA;&#xA;WireGuard’s biggest pain point basically disappears.&#xA;&#xA;Tailscale handles:&#xA;&#xA;Key distribution  &#xA;Key rotation&#xA;Device onboarding&#xA;Device removal  &#xA;Secure device signing&#xA;Revocation&#xA;&#xA;3. MagicDNS and Stable IPs&#xA;&#xA;Every node gets a stable 100.x address plus a nice readable DNS name:&#xA;&#xA;storage.tsxxxx.net&#xA;raspberrypi.tsxxxx.net&#xA;syncthing.tsxxxx.net&#xA;&#xA;Even if I&#39;m switching networks five times a day, nothing breaks and everything remains accessible.&#xA;&#xA;4. DERP &amp; NAT Traversal&#xA;&#xA;If two nodes can&#39;t reach each other directly (i.e., via CGNAT or an aggressive firewall), Tailscale relays traffic via DERP.&#xA;&#xA;Full mesh + fallback relay means the connection always exist and is very reliable.&#xA;&#xA;5. No More Central Point of Failure&#xA;&#xA;In hub-and-spoke, if the hub died, the entire VPN network died.&#xA;&#xA;This happened once and the TFR network came to a standstill.&#xA;&#xA;With Tailscale, one node disappearing affects only that node.&#xA;&#xA;Huge stability upgrade.&#xA;&#xA;How I Migrated&#xA;&#xA;Removed my WireGuard hub config from all nodes&#xA;Installed Tailscale everywhere:&#xA;&#xA;   Home server  &#xA;   Remote servers&#xA;   NAS  &#xA;   Laptop  &#xA;   Phone  &#xA;   Whatever else I needed&#xA;Enabled subnet routing for certain networks so local LANs are reachable&#xA;Turned on MagicDNS using my own internal DNS server including Ad and Tracker blocking&#xA;Sat back and enjoyed a network that Just Works™&#xA;&#xA;img src=&#34;https://cdn.theflyingrat.com/images/blog/2025-11-30/dns.webp&#34; alt=&#34;Tailscale DNS&#34;&#xA;Tailscale DNS | Joey Manani&#xA;&#xA;Final Thoughts&#xA;&#xA;Switching from a DIY hub-and-spoke WireGuard setup to Tailscale full mesh is gamechanging. Same fundamentals, wildly improved experience.&#xA;&#xA;If you&#39;ve got servers scattered across a few networks, this is the easiest quality-of-life network upgrade you can make.&#xA;&#xA;Everything just works how I like it, and every device knows about each other.&#xA;&#xA;#sysadmin #tailscale #networking #wireguard&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p>For the past year, my network looked like one of those “draw the star without lifting your pencil” puzzles… except mine absolutely <em>did</em> lift the pencil. Everything passed through a central WireGuard hub: a hub-and-spoke setup. It worked, technically, but it also felt like driving across town just to talk to your neighbour – pretty slow and annoying.</p>

<p>Switching to Tailscale completely changed the vibe. Suddenly everything could talk to everything else, securely, easily and without the hub getting overwhelmed with switching.</p>

<p><img src="https://cdn.theflyingrat.com/images/blog/2025-11-30/network.webp" alt="Hub-and-Spoke vs Mesh Networks">
<em>Hub-and-Spoke Network (left) vs Full Mesh Network (right) | Joey Manani</em></p>



<h2 id="the-old-setup-hub-and-spoke-wireguard">The Old Setup: Hub-and-Spoke WireGuard</h2>

<p>Hub-and-spoke basically means:</p>
<ul><li>Every network node establishes a WireGuard tunnel only to the central hub</li>
<li>If two spokes want to talk, traffic must route through the hub</li>
<li>The hub must handle all encryption + forwarding</li>
<li>No peer-to-peer discovery; everything is statically configured</li>
<li>Peers basically don&#39;t know of each other&#39;s existence</li></ul>

<p>In practice, this meant:</p>
<ul><li>Devices on the same AP-Isolating LAN had to talk via the hub rather than directly on the LAN. AP-Isolation prevents LAN devices talking entirely (hello apartment Wi-Fi)</li>
<li>Latency was… BAD</li></ul>

<p>It works, but it’s very “manual oldschool energy.”</p>

<h2 id="the-upgrade-tailscale-full-mesh">The Upgrade: Tailscale Full Mesh</h2>

<p>Tailscale flips the entire model on its head. Instead of a rigid hub, you now get a full mesh overlay network:</p>
<ul><li>Every device is a WireGuard peer<br></li>
<li>Peers discover each other automatically using DERP + magic DNS<br></li>
<li>Connections become direct, peer-to-peer, and encrypted<br></li>
<li>If NAT says “no :)“, Tailscale falls back to DERP relay without breaking anything<br></li>
<li>No manual key management!</li></ul>

<p>The coolest part?<br>
It&#39;s still WireGuard under the hood – Tailscale just simplifies all of the annoying parts.</p>

<h2 id="why-full-mesh-is-better">Why Full Mesh Is Better</h2>

<h3 id="1-direct-peer-to-peer-traffic">1. Direct Peer-to-Peer Traffic</h3>

<p>With Tailscale, remote servers are able to talk to the home server directly and not zigzag through a hub.</p>

<p>Result:</p>
<ul><li>Lower latency</li>
<li>Lower CPU usage</li>
<li>Faster file transfers</li>
<li>Hub doesn&#39;t have to process the same thing twice</li></ul>

<h3 id="2-automatic-key-management">2. Automatic Key Management</h3>

<p>WireGuard’s biggest pain point basically disappears.</p>

<p>Tailscale handles:</p>
<ul><li>Key distribution<br></li>
<li>Key rotation</li>
<li>Device onboarding</li>
<li>Device removal<br></li>
<li>Secure device signing</li>
<li>Revocation</li></ul>

<h3 id="3-magicdns-and-stable-ips">3. MagicDNS and Stable IPs</h3>

<p>Every node gets a stable 100.x address plus a nice readable DNS name:</p>

<pre><code>storage.tsxxxx.net
raspberrypi.tsxxxx.net
syncthing.tsxxxx.net
</code></pre>

<p>Even if I&#39;m switching networks five times a day, nothing breaks and everything remains accessible.</p>

<h3 id="4-derp-nat-traversal">4. DERP &amp; NAT Traversal</h3>

<p>If two nodes can&#39;t reach each other directly (i.e., via CGNAT or an aggressive firewall), Tailscale relays traffic via DERP.</p>

<p>Full mesh + fallback relay means the connection always exist and is very reliable.</p>

<h3 id="5-no-more-central-point-of-failure">5. No More Central Point of Failure</h3>

<p>In hub-and-spoke, if the hub died, the entire VPN network died.</p>

<p>This happened once and the TFR network came to a standstill.</p>

<p>With Tailscale, one node disappearing affects only that node.</p>

<p>Huge stability upgrade.</p>

<h2 id="how-i-migrated">How I Migrated</h2>
<ol><li>Removed my WireGuard hub config from all nodes</li>

<li><p>Installed Tailscale everywhere:</p>
<ul><li>Home server<br></li>
<li>Remote servers</li>
<li>NAS<br></li>
<li>Laptop<br></li>
<li>Phone<br></li>
<li>Whatever else I needed</li></ul></li>

<li><p>Enabled subnet routing for certain networks so local LANs are reachable</p></li>

<li><p>Turned on MagicDNS using my own internal DNS server including Ad and Tracker blocking</p></li>

<li><p>Sat back and enjoyed a network that Just Works™</p></li></ol>

<p><img src="https://cdn.theflyingrat.com/images/blog/2025-11-30/dns.webp" alt="Tailscale DNS">
<em>Tailscale DNS | Joey Manani</em></p>

<h2 id="final-thoughts">Final Thoughts</h2>

<p>Switching from a DIY hub-and-spoke WireGuard setup to Tailscale full mesh is gamechanging. Same fundamentals, wildly improved experience.</p>

<p>If you&#39;ve got servers scattered across a few networks, this is the easiest quality-of-life network upgrade you can make.</p>

<p>Everything just works how I like it, and every device knows about each other.</p>

<p><a href="https://blog.joeymanani.com/tag:sysadmin" class="hashtag"><span>#</span><span class="p-category">sysadmin</span></a> <a href="https://blog.joeymanani.com/tag:tailscale" class="hashtag"><span>#</span><span class="p-category">tailscale</span></a> <a href="https://blog.joeymanani.com/tag:networking" class="hashtag"><span>#</span><span class="p-category">networking</span></a> <a href="https://blog.joeymanani.com/tag:wireguard" class="hashtag"><span>#</span><span class="p-category">wireguard</span></a></p>
]]></content:encoded>
      <guid>https://blog.joeymanani.com/upgrading-my-network-from-hub-and-spoke-wireguard-to-a-full-mesh-tailscale</guid>
      <pubDate>Sun, 30 Nov 2025 11:26:29 +0000</pubDate>
    </item>
  </channel>
</rss>