Bitware Labs Est. 2022

Bitware Labs / Anteckningar

Ett WireGuard-mesh du faktiskt kan förstå och överblicka


Tio servrar och noder, en platt adressplan, och inget externt kontrollplan. Det här är hur vi kopplade samman Bitware Labs hela serverpark med WireGuard, vad vi medvetet valde bort, och två misstag som kostade oss varsin eftermiddag.

Designmål: Ett nätverk man kan överblicka i huvudet

Många moderna mesh-lösningar (som Tailscale eller Nebula) är fantastiska verktyg, men de introducerar externa beroenden, koordinationsservrar eller komplexa protokoll. För vår infrastruktur ville vi ha något som fungerar även om hela världen utanför är nere:

  • Statisk konfiguration. Varje nod har en fast WireGuard-konfiguration med kända publika nycklar och fasta IP-adresser (10.10.0.0/24).
  • Inga externa kontrollservrar. Nätverket beror inte på någon tredje part.
  • Trafikisolerat. Interna tjänster (databaser, agent-API:er, övervakningssensorer) binder uteslutande till sina WireGuard-adresser.

Två misstag värda att nämna

1. MTU och paketfragmentering över internet. Standard-MTU på 1500 orsakar problem när trafiken tunnlas. Genom att explicit sätta MTU = 1420 på alla noder slipper vi mystiska anslutningstimeouts på stora API-svar.

2. PersistentKeepalive för noder bakom NAT. Noder som står bakom brandväggar behöver PersistentKeepalive = 25 för att hålla tunneln öppen för inkommande trafik.

Resultatet är en infrastruktur som är snabb, tyst och helt suverän.

Kontakt

Skriv till labbet

Uppdrag, samarbeten eller bara ett hej. Den du skriver till är den som utför arbetet, och jag svarar inom två arbetsdagar.