Die meisten Homelabs fangen flach an: ein Raspberry Pi mit Pi-hole, ein NAS, ein Mini-PC mit Proxmox und einem Dutzend Containern, alles im Netz 192.168.1.0/24, das der Router des Providers vergeben hat. Der Smart-TV und eine Kamera, die keine Firmware-Updates mehr bekommt, teilen es sich mit der Admin-Seite deines NAS, und die Portweiterleitung für Jellyfin von vor zwei Jahren ist immer noch offen.
Dieser Beitrag entwirft ein Homelab-Netzwerk, das IoT-Geräte und Gäste isoliert, Dienste sicher erreichbar macht und sich leicht wiederherstellen lässt, und zeichnet es anschließend.
Was das Netzwerk leisten muss
- Isolation. Fernseher, Kameras und die Smartphones von Gästen erreichen das Internet, aber nicht dein NAS oder deinen Hypervisor.
- Sichere Erreichbarkeit. Ein authentifizierter, verschlüsselter Weg hinein statt eines Ports pro Dienst.
- Wiederherstellbarkeit. Wenn eine Platte stirbt, baust du alles aus Backups und einem Diagramm wieder auf, nicht aus dem Gedächtnis.
Die Hardware: ein Modem des Providers im Bridge-Modus, damit es kein doppeltes NAT gibt; eine Firewall mit OPNsense oder pfSense CE, beide Open Source, die zwischen den VLANs routet und DHCP, DNS und VPNs bereitstellt; ein Managed Switch mit 802.1Q-VLAN-Unterstützung; ein Access Point, der SSIDs VLANs zuordnet; ein Proxmox-VE-Host für VMs und LXC-Container; und ein NAS.
Der VLAN-Plan
Wähle ein /16 aus den privaten Bereichen nach RFC 1918 (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) und gib jedem VLAN ein /24. Meide 192.168.0.0/24 und 192.168.1.0/24, die in Netzen üblich sind, aus denen du dich nach Hause verbindest, außerdem 172.17.0.0/16 (Dockers übliche Default-Bridge) und 100.64.0.0/10 (die Adressen von Tailscale). Dieses Beispiel nutzt 10.23.0.0/16 mit der VLAN-ID als drittem Oktett.
| VLAN | Name | Subnetz | Was dort hängt | Nach außen erlaubt |
|---|---|---|---|---|
| 10 | Management | 10.23.10.0/24 | Admin-Oberflächen von Firewall, Switch, AP und Proxmox | Nur Updates |
| 20 | Trusted | 10.23.20.0/24 | Deine Laptops und Smartphones | Internet, Proxy, Management von Admin-Geräten aus |
| 30 | Servers | 10.23.30.0/24 | VMs, Container, NAS, Proxy, Pi-hole | Internet für Updates |
| 40 | IoT | 10.23.40.0/24 | Fernseher, Lautsprecher, Kameras, smarte Steckdosen | Nur Internet |
| 50 | Guest | 10.23.50.0/24 | Besucher | Nur Internet |
Die Verbindungen von der Firewall zum Switch, vom Switch zum Access Point und vom Switch zu Proxmox sind getaggte Trunks; die OPNsense-Dokumentation warnt davor, ungetaggte VLANs in den Firewall-Trunk zu mischen. Alle anderen Geräte bekommen ungetaggte Access-Ports.
Mach auf Proxmox die Bridge VLAN-aware und leg die Management-Adresse des Hosts in VLAN 10, wie in der Netzwerkdokumentation von Proxmox VE. Danach bekommt jede VM ihr eigenes VLAN-Tag:
auto vmbr0
iface vmbr0 inet manual
bridge-ports eno1
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
auto vmbr0.10
iface vmbr0.10 inet static
address 10.23.10.5/24
gateway 10.23.10.1
Leg für jedes VLAN im WLAN eine SSID an: Trusted, IoT und Guest. Cisco Meraki empfiehlt höchstens drei pro Access Point, weil jede SSID alle 100 ms ein eigenes Beacon mit der niedrigsten Datenrate sendet.
Firewall-Regeln zwischen VLANs
OPNsense und pfSense werten Regeln auf dem Interface aus, auf dem der Verkehr hereinkommt, und zwar von oben nach unten: Die erste passende Regel gewinnt, und alles, was auf keine passt, landet bei der Default-Deny-Regel. Beide arbeiten zustandsbehaftet: Erlaubst du Trusted den Zugriff auf den Proxy über 443, kommen auch die Antworten zurück.
Erlaube für jedes VLAN, was es braucht, blockiere dann alle privaten Bereiche mit einem Alias namens RFC1918 und erlaube danach das Internet. Auf dem IoT-Interface:
| # | Aktion | Quelle | Ziel | Port | Warum |
|---|---|---|---|---|---|
| 1 | Pass | IoT net | Pi-hole, 10.23.30.53 | 53 | Gefiltertes DNS |
| 2 | Block | IoT net | Die eigenen Adressen der Firewall | any | Keine Admin-Seiten |
| 3 | Block | IoT net | Alias RFC1918 | any | Keine anderen VLANs |
| 4 | Pass | IoT net | any | any | Internet |
Regel 2 deckt die öffentliche WAN-Adresse der Firewall ab, die der Alias nicht erfasst; pfSense nennt dieses Ziel This firewall (self). Enge Ausnahmen kommen über die Blockregeln: Trusted zum Proxy auf 443, dein Admin-Laptop zur Proxmox-Weboberfläche auf 8006, Home Assistant zu IoT. Der Alias gilt nur für IPv4; bekommen deine VLANs IPv6-Präfixe, blockiere diese ebenfalls.
Casting ist die übliche Überraschung. AirPlay und Google Cast finden Geräte per Multicast DNS auf 224.0.0.251, das laut Apple normalerweise nicht zwischen Subnetzen geroutet wird. Lass zwischen Trusted und IoT einen mDNS-Repeater laufen, etwa das OPNsense-Plugin os-mdns-repeater, und erlaube Trusted den Zugriff auf den Fernseher.
Dienste hinter einem Reverse Proxy
Ein einzelner Reverse Proxy im Servers-VLAN, etwa Caddy, Traefik oder Nginx Proxy Manager, terminiert TLS und routet nach Hostnamen, sodass die Firewall 443 nur zu einer einzigen Adresse erlaubt.
Nutze Namen unter einer Domain, die dir gehört, etwa jellyfin.home.example.com. Meide .local, das RFC 6762 für Multicast DNS reserviert; Namen unter .internal oder home.arpa funktionieren lokal, aber keine öffentliche CA stellt Zertifikate für sie aus.
Hol dir Zertifikate von Let's Encrypt mit der DNS-01-Challenge: Dein ACME-Client legt über die API deines DNS-Providers einen TXT-Record unter _acme-challenge.<name> an, sodass nichts aus dem Internet erreichbar sein muss. Es ist außerdem der einzige Challenge-Typ, der Wildcard-Zertifikate ausstellt, und du willst eines. Let's Encrypt reicht jedes Zertifikat bei öffentlichen Certificate-Transparency-Logs ein, sodass *.home.example.com einen einzigen Namen veröffentlicht statt deiner Dienstliste. Seit Caddy 2.10 verwenden andere Sites ein passendes Wildcard-Zertifikat wieder:
*.home.example.com {
tls {
dns cloudflare {env.CF_API_TOKEN}
}
abort
}
jellyfin.home.example.com {
reverse_proxy 10.23.30.21:8096
}
Dafür brauchst du einen Caddy-Build mit dem Modul caddy-dns/cloudflare und ein Token, das auf Zone.Zone:Read und Zone.DNS:Edit beschränkt ist. Zertifikate gelten heute 90 Tage, bis Februar 2028 sinkt die Laufzeit auf 45 Tage; automatisiere also die Erneuerung.
Optionen für den Fernzugriff
| Option | Was das Internet sieht | Aufwand | Abwägungen |
|---|---|---|---|
| Portweiterleitung von 443 zum Proxy | Deine IP und die Login-Seite jeder App | Gering | Der Login jeder App ist die einzige Hürde; scheitert hinter Carrier-Grade NAT |
| WireGuard auf der Firewall | Ein UDP-Port, der nicht authentifizierte Pakete ignoriert | Mittel | Braucht eine erreichbare öffentliche IP und ein Schlüsselpaar pro Gerät |
| Tailscale | Nichts Eingehendes | Gering | Hängt vom Koordinationsdienst von Tailscale oder einem selbst gehosteten Headscale ab; Personal-Plan zum Zeitpunkt des Schreibens (November 2026) kostenlos |
| Cloudflare Tunnel | Nichts Eingehendes | Gering bis mittel | Cloudflare terminiert TLS und sieht deinen Verkehr; deine Domain muss bei Cloudflare liegen |
WireGuard ist für dich selbst ein guter Standard: Laut dem WireGuard-Paper antwortet es nie auf nicht authentifizierte Pakete, sodass Scanner es nicht sehen können. Es braucht trotzdem einen eingehenden Port, und den schließt Carrier-Grade NAT aus; eine WAN-Adresse in 100.64.0.0/10, dem gemeinsam genutzten Bereich nach RFC 6598, ist ein klares Indiz.
Tailscale und Cloudflare Tunnel bauen die Verbindung stattdessen nach außen auf. Die DERP-Relays von Tailscale leiten nur Pakete weiter, die WireGuard-verschlüsselt bleiben, und ein Subnet Router erreicht das Servers-VLAN, ohne dass auf jeder VM ein Client läuft. Ein Tunnel passt zu Diensten, die du mit Leuten teilst, die kein VPN installieren wollen; Cloudflare Access kann einen Login davorschalten. Das Zero-Trust-Architekturdiagramm erklärt, warum Identität mehr zählt als der Ort im Netzwerk.
DNS und DHCP pro VLAN
Die Firewall stellt in jedem VLAN DHCP bereit, mit Reservierungen für Server. OPNsense aktiviert standardmäßig Unbound, einen validierenden, rekursiven Resolver. Betreib Pi-hole oder AdGuard Home im Servers-VLAN für Trusted und IoT: Beide filtern Werbung und Tracker, halten die lokalen Einträge, die *.home.example.com auf den Proxy zeigen lassen, und leiten andere Anfragen an Unbound weiter (Wie DNS funktioniert verfolgt eine Abfrage von Anfang bis Ende). Gäste nutzen direkt die Firewall. Betreib eine zweite Filterinstanz auf einer anderen Maschine: Fällt die einzige aus, verlieren diese VLANs die Namensauflösung.
Backups und Strom
Halte dich an 3-2-1: drei Kopien, zwei Arten von Speicher, eine außer Haus. Deine VMs sind die erste Kopie, nächtliche Backups auf das NAS oder einen Proxmox Backup Server die zweite und eine verschlüsselte Kopie in einem Cloud-Bucket die dritte. Proxmox Backup Server erstellt inkrementelle, deduplizierte, verschlüsselte Backups, die Proxmox selbst auf Zielen, denen du nicht ganz vertraust, als sicher bezeichnet. RAID und Snapshots sind keine Backups. Exportiere die Firewall-Konfiguration (eine XML-Datei in OPNsense und pfSense), bewahre sie zusammen mit diesem Diagramm auf und teste Wiederherstellungen; das Disaster-Recovery-Architekturdiagramm behandelt RPO und RTO.
Häng Firewall, Switch, Proxmox-Host und NAS an eine USV. Mit Network UPS Tools (NUT) sagt die Maschine, die mit der USV verbunden ist, den anderen über das Netzwerk, dass sie herunterfahren sollen; deshalb muss auch der Switch an der USV hängen. Dimensioniere sie nach der an der Steckdose gemessenen Leistungsaufnahme und der Laufzeitkurve im Datenblatt: Du brauchst Minuten, nicht Stunden.
Das Homelab-Netzwerkdiagramm
Diagramminhalt
- Internet
- OPNsense or pfSense
- Managed switch
- Access point
- VLAN 20 · Trusted
- Laptops and phones
- VLAN 40 · IoT
- TV, cameras, plugs
- VLAN 50 · Guest
- VLAN 30 · Servers
- Reverse proxy (Caddy)
- Proxmox VE host
- NAS (backups)
- Links
- deny inbound
- WireGuard UDP 51820
- trunk: 10–50
- trunk: 10, 20, 40, 50
- trunk: 10, 30
- HTTPS 443 from Trusted and VPN
- HTTP to apps
- nightly backups
- SSID home
- SSID iot
- SSID guest
So liest du es:
- Obere Reihe: Internet, Firewall, Switch. Das WAN lehnt allen eingehenden Verkehr ab außer WireGuard auf UDP 51820 (gestrichelt).
- Trunks tragen getaggte VLANs: 10 bis 50 zum Switch, 10, 20, 40 und 50 per PoE zum Access Point, 10 und 30 zu Proxmox.
- Rahmen sind VLANs mit ID, Name und CIDR. Management, VLAN 10, ist die Beschriftung unter dem Switch.
- Petrolfarbene Kanten sind erlaubte Flüsse: HTTPS 443 von Trusted und VPN-Clients zum Proxy, dann HTTP zu den Apps. Grau gestrichelt ist das nächtliche Backup.
- Der Access Point ordnet die SSIDs home, iot und guest den VLANs 20, 40 und 50 zu.
- Der Markdown-Block enthält den VLAN-Plan und die Einstellungen; die Legende erklärt die Linienfarben.
Homelab-Netzwerkdiagramme klar zeichnen
- Beschrifte jedes VLAN mit ID, Name und CIDR direkt am Rahmen.
- Markiere Trunks mit den VLANs, die sie tragen. Ein VLAN, das auf einem Trunk fehlt, ist der klassische Fehler.
- Zeichne die Firewall als einzigen Weg zwischen VLANs, mit erlaubten Flüssen, die nach Port beschriftet sind.
- Zeig den Weg von außen hinein, auch wenn es nur ein UDP-Port ist.
- Lass weg: Container, MAC-Adressen und Switch-Portnummern. Sie gehören in ein physisches Diagramm, wie der Leitfaden zum Netzwerktopologie-Diagramm erklärt.
- Bewahr es bei deinen Konfigurations-Backups auf und aktualisiere es, wenn sich eine Regel ändert.
In Archboard nachbauen
- Melde dich mit Google oder GitHub an und leg ein Diagramm an.
- Füge aus dem Netzwerk-Pack Internet, eine mit OPNsense oder pfSense beschriftete Firewall und einen Netzwerk-Switch in einer Reihe hinzu, dazu rechts darunter einen WLAN-Node für den Access Point.
- Füge vier Subnetz-Rahmen für die VLANs 20, 30, 40 und 50 hinzu, jeweils mit Name und CIDR.
- Füge in Servers einen Lastverteiler als Reverse Proxy (das Pack hat keinen Proxy-Typ), einen Server für Proxmox und ein Gerät hinzu, dessen Art du auf NAS setzt. Füge ein Laptop-Gerät in Trusted und ein IoT-Gerät in IoT hinzu.
- Verbinde sie, setz bei jeder Kante die Verbindungsart auf WAN, Ethernet, PoE oder Wi-Fi und beschrifte sie mit ihren VLANs oder der SSID. Zeichne erlaubte Flüsse petrolfarben, WireGuard und Backups gestrichelt.
- Füge aus dem Netzwerk-Pack eine Netzwerklegende hinzu, aus dem Basis-Pack einen Markdown-Block mit dem VLAN-Plan und für die Regel jedes VLANs Text-Beschriftungen aus dem Basis-Pack.
Wenn deine Apps in einer compose.yaml stehen, entwirft das Tool Docker Compose als Diagramm die Seite der Dienste, und die Seite zu Netzwerkdiagrammen zeigt das ganze Pack. Das Beispiel nutzt 15 Diagramm-Nodes und bleibt damit im Free-Plan; das ist zugleich das Free-Limit pro Diagramm.
FAQ
Welche VLANs sollte ein Homelab haben? Meist fünf: Management, vertrauenswürdige Geräte, Server, IoT und Gäste. Füge weitere nur hinzu, wenn Geräte andere Regeln brauchen; jedes VLAN bringt zusätzliche Regeln und oft eine weitere SSID mit.
Brauche ich für VLANs einen Managed Switch? Ja, einen Managed oder Smart Switch mit 802.1Q-Unterstützung, dazu einen Access Point, der SSIDs VLANs zuordnet. Unmanaged Switches können Ports keinen VLANs zuweisen.
Sollte ich OPNsense oder pfSense als VM auf Proxmox betreiben? Das spart ein Gerät, aber jeder Neustart des Hosts nimmt das ganze Haus offline. Eine kleine dedizierte Firewall lässt sich leichter wiederherstellen. Wenn du virtualisierst, gib dem WAN eine eigene NIC und bewahr einen Konfigurationsexport außerhalb des Hosts auf.
Ist es sicher, für einen selbst gehosteten Dienst einen Port zu öffnen? Damit steht die Login-Seite der App im Internet, und ihre Sicherheitsupdates werden zu deiner Verteidigung. Nimm lieber ein VPN; wenn du weiterleiten musst, leite nur 443 zum Reverse Proxy und schalte eine Authentifizierung davor.
Kann ich Let's Encrypt für rein interne Dienste nutzen? Ja, mit DNS-01: Ein TXT-Record beweist, dass du die Domain kontrollierst, also muss der Dienst nie aus dem Internet erreichbar sein. Ein Wildcard-Zertifikat hält Dienstnamen aus den Certificate-Transparency-Logs heraus.