Network Topologies - Choosing a Shape for a Small Fleet

Status: Active
Last Updated: 2026-08-26
Category: Networking - Architecture
Prerequisites: tcp-ip-fundamentals, ip-addressing-subnets
Time: 2 hours
Tags: topology, star, mesh, hybrid, architecture, planning

Summary

Compares star, mesh, and hybrid network topologies for a small self-hosted fleet like fogserv.cloud's, and explains why a hybrid (star + overlay mesh) is usually the right choice. Includes decision criteria, diagrams-as-text, and a concrete layout for our hosts.

๐ŸŽฏ What You'll Learn

By the end of this article, you'll be able to:


Table of Contents

  1. Context / Why This Matters
  2. The Three Candidates
  3. Choosing One
  4. Fogserv Reference Topology
  5. Troubleshooting & Common Pitfalls
  6. Next Steps / Ops Actions
  7. Sources & Related
  8. Change Log

Context / Why This Matters

"Topology" is how your nodes are physically or logically connected. For three servers behind one router it sounds academic โ€” until a switch dies and you discover everything was single-homed through it, or you add a second site and every host needs a new tunnel to every other host.

Topology decisions determine blast radius: what breaks when one link, switch, or host fails. Getting this right early avoids re-cabling and re-addressing later. Prerequisites cover addressing (ip-addressing-subnets) and packet flow (tcp-ip-fundamentals); this article covers shape.


The Three Candidates

Star

Everything connects to a central node (switch/router).

        โ”Œโ”€โ”€โ”€โ”
   โ”Œโ”€โ”€โ”€โ”€โ”ค R โ”œโ”€โ”€โ”€โ”          R = router/switch (single point of failure)
   โ”‚    โ””โ”€โ”€โ”€โ”˜   โ”‚
 โ”Œโ”€โ”ดโ”€โ”        โ”Œโ”€โ”ดโ”€โ”
 โ”‚ S1โ”‚        โ”‚ S2โ”‚  ... S3, S4 ...
 โ””โ”€โ”€โ”€โ”˜        โ””โ”€โ”€โ”€โ”˜

Full Mesh

Every node has a direct link to every other node.

S1 โ†โ†’ S2   S1 โ†โ†’ S3   S1 โ†โ†’ S4
S2 โ†โ†’ S3   S2 โ†โ†’ S4   S3 โ†โ†’ S4     n(n-1)/2 links = 6 for 4 hosts

Hybrid (star + overlay mesh)

Physical star at each site, plus a logical mesh (WireGuard) across sites/VLANs for the traffic that matters.

Site A (star)                 Site B (star)
  R โ”€โ”€ S1,S2,S3                R โ”€โ”€ S4,S5
  โ”‚                             โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ WireGuard mesh โ”€โ”€โ”€โ”€โ”€โ”˜
       S1โ†”S4  S1โ†”S5  S2โ†”S4 ...   (only needed tunnels, not all pairs)

Choosing One

Decision rules of thumb:

Question If yes
All hosts on one switch? Star is fine; don't over-engineer.
Two or more sites / VPS + home? Add an overlay mesh (hybrid).
Need host-to-host traffic to survive router loss? Mesh overlay among those hosts.
More than ~10 hosts? Segment first (see virtual-networks); topology follows segmentation.

For fogserv.cloud (small fleet behind Cloudflare DNS, Caddy/Traefik ingress, Linux hosts): hybrid. The public path is already effectively a star terminating at Cloudflare โ†’ your edge reverse proxy. East-west and admin access run over a partial WireGuard mesh rather than exposing SSH publicly.

Fogserv Reference Topology

Internet
   โ”‚
Cloudflare (proxy/WAF)          โ† logical edge, see cloudflare-dns
   โ”‚ 443 only
Edge host: Traefik/Caddy        โ† the only host with published ports
   โ”‚
LAN switch (star)               10.10.0.0/24 services VLAN
   โ”œโ”€โ”€ web-01    10.10.0.11
   โ”œโ”€โ”€ db-01     10.10.0.21      (mgmt via wg only)
   โ””โ”€โ”€ nas-01    10.10.0.31
   โ”‚
WireGuard mesh 10.100.0.0/24    โ† see wireguard-setup
   wg0: edge=10.100.0.1  web=10.100.0.2  db=10.100.0.3  laptop=10.100.0.10

Rules encoded by this shape:

  1. Only the edge host accepts inbound from the internet (firewalls-nftables).
  2. db/nas management planes are reachable only over the WG mesh.
  3. Adding a host = one switch port + one peer stanza. No cabling changes.

Practical Examples

Verify your actual topology from any host:

# Who can I reach directly at L3?
ip route get 10.10.0.21
# 10.10.0.21 dev wg0 src 10.100.0.2   โ†’ goes over the mesh

# Map which peers exist in the mesh
sudo wg show wg0 peers | wc -l

# Find the physical chokepoint: trace to the internet
traceroute -n 1.1.1.1
# hop 1 is always your router โ†’ confirms star dependency

Test blast radius: pull the uplink to your edge host (or sudo ip link set eth0 down in a VM test). Everything public should fail closed at Cloudflare with a 5xx origin error โ€” not fall back to some unencrypted side door.

Troubleshooting & Common Pitfalls

Problem Cause Fix
East-west traffic slow after adding mesh Both hosts route via mesh instead of local switch Keep LAN subnets out of mesh AllowedIPs unless intended; see wireguard-setup
Single switch reboot kills monitoring too Monitoring shares the same star hub Run uptime probes externally (Cloudflare/Uptime Kuma off-host); see monitoring-networks
Accidental full-mesh growth Peers added ad hoc per project Maintain a peer inventory table; add tunnels only when a requirement exists
"Topology" differs per host's view Stale docs Document shape once here, reference from README

Next Steps / Ops Actions

Sources & Related

External references consulted:

Related knowledge-base articles:

Change Log

2026-08-26

Choose Theme

Your selection is saved locally.

Neural Cacophony
Aperture v2
Flux v1
Mosaic Chaos
Nexus v1
Nexus Zest
Prism v2
Synapse