Waarom je VLANs nodig hebt — ook thuis
Je thuisnetwerk bestaat waarschijnlijk uit één groot, plat netwerk. Laptop, telefoon, smart-tv, slimme thermostaat, IP-camera en werkcomputer zitten allemaal op hetzelfde segment. Dat voelt handig — alles praat met alles — maar het is ook het probleem. Als één apparaat gecompromitteerd raakt, heeft een aanvaller directe toegang tot je hele netwerk. Je gastenwifi via de routerinstelling geeft enige scheiding, maar zonder managed switch en bewuste firewallregels is die scheiding poreus.
VLANs (Virtual LANs, standaard IEEE 802.1Q) lossen dit op door één fysieke netwerkinfrastructuur op te splitsen in meerdere logisch gescheiden segmenten. Elk segment gedraagt zich als een apart netwerk: eigen IP-range, eigen DHCP-scope, eigen firewallregels. Verkeer dat de grens wil oversteken, moet langs de firewall — en die beslist wat mag.
Voor de meeste homelabs zijn drie VLANs een werkbare basis:
- VLAN 10 — Productie (192.168.10.0/24): je vertrouwde apparaten, werkstations, laptops, NAS.
- VLAN 20 — IoT (192.168.20.0/24): slimme thermostaat, camera's, smart-tv, speakers. Mag naar internet, niet naar productie.
- VLAN 30 — Gasten (192.168.30.0/24): apparaten van bezoekers. Alleen internet, nul toegang tot andere VLANs.
Dat is de theorie. De rest van dit artikel is de uitvoering.
Hardware en budget: welke managed switch kies je?
VLAN-segmentatie vereist een managed switch — een gewone unmanaged switch kent geen 802.1Q-tagging. Gelukkig hoef je niet te betalen voor enterprise-ijzer.
Switch-vergelijking
| Model | Prijs (ca.) | Poorten | VLAN-aanpak | Geschikt voor |
|---|---|---|---|---|
| TP-Link TL-SG108E | ~€30 | 8× GbE | 802.1Q web-UI, PVID per poort | Starters, kleine homelab |
| Ubiquiti USW Flex Mini | ~€35 | 5× GbE, PoE in | UniFi-controller, port profiles | UniFi-ecosysteem, compacte opstelling |
| MikroTik CRS305-1G-4S+IN | ~€90 | 1× GbE + 4× SFP+ | RouterOS bridge VLAN filtering | 10GbE homelab, gevorderde gebruikers |
| TP-Link TL-SG2008 | ~€55 | 8× GbE | Volledig 802.1Q L2 managed | Stap omhoog van SG108E |
Voor de meeste thuisgebruikers is de TP-Link TL-SG108E de instapkeuze: €30, 8 poorten, een werkbare web-interface en brede communityondersteuning. Één kanttekening: VLAN 1 is het default-untagged VLAN en kan niet verwijderd worden — werk dus altijd met VLAN-IDs van 2 tot 4094 voor je eigen segmenten, en zet PVID correct op elke poort.
Heb je al een UniFi access point of UniFi Dream Machine, dan is de USW Flex Mini logischer: alles zit in dezelfde controller en VLAN-toewijzing aan een SSID is een kwestie van een dropdown. Nadeel: de Flex Mini heeft beperkte VLAN-flexibiliteit op poort-niveau — je kunt geen willekeurige subset van VLANs aan één poort hangen via een custom port profile.
De MikroTik CRS305 is voor wie ook 10GbE wil. De bridge VLAN filtering in RouterOS is krachtig maar vereist meer configuratietijd; verwacht een avond documentatie lezen. Voor een eenvoudige drie-VLAN homelab is het overkill.
"Een managed switch van €30 en een softwarefirewall op een oude mini-pc geven je betere netwerksegmentatie dan veel mkb-omgevingen."
Concept: trunk- en access-poorten begrijpen
Voordat je de switch aanraakt, moet je twee begrippen vasthebben.
Een access-poort (of untagged poort) is gekoppeld aan precies één VLAN. Apparaten die hierop aansluiten — je laptop, een IP-camera — hebben geen idee dat er VLANs bestaan. De switch voegt intern de VLAN-tag toe zodra een frame binnenkomt, en stript de tag weer als het frame de poort uitgaat. Simpel.
Een trunk-poort (of tagged poort) draagt frames van meerdere VLANs tegelijk. Elk frame heeft een 4-byte 802.1Q-header met daarin de VLAN-ID (de VID). De verbinding van je switch naar de firewall is altijd een trunk: alle VLANs moeten die link kunnen gebruiken. Ook de uplink naar een access point dat meerdere SSIDs uitzendt, is een trunk.
De PVID (Port VLAN ID) bepaalt in welk VLAN een ongetagd frame terechtkomt. Stel je PVID altijd in op het VLAN waarvoor die poort bedoeld is, anders belandt een ongelabeld pakketje in het verkeerde segment.
Config: trunk en access-poorten instellen op de TL-SG108E
We gaan uit van de volgende topologie: pfSense of OPNsense op een mini-pc met één NIC → trunk naar poort 1 van de TL-SG108E → access-poorten voor productie (poort 2-3), IoT (poort 4-5) en gasten (poort 6-7). Poort 8 blijft vrij als spare of voor een access point.
Open de web-UI van de switch (standaard 192.168.0.1, inloggen met admin/admin na fabrieksreset). Navigeer naar VLAN → 802.1Q VLAN.
Stap 1 — Maak de VLANs aan:
- VLAN 10: poort 1 Tagged, poorten 2-3 Untagged, rest Not Member.
- VLAN 20: poort 1 Tagged, poorten 4-5 Untagged, rest Not Member.
- VLAN 30: poort 1 Tagged, poorten 6-7 Untagged, rest Not Member.
Stap 2 — Stel PVIDs in (tab 802.1Q PVID Setting):
- Poort 1: PVID 1 (trunk, laat op default)
- Poorten 2-3: PVID 10
- Poorten 4-5: PVID 20
- Poorten 6-7: PVID 30
Stap 3 — Verwijder poorten 2-7 uit VLAN 1. VLAN 1 is het default-untagged VLAN. Als je poorten 2-7 er niet uithaalt, lekt er ongetagd verkeer doorheen. Ga terug naar VLAN 1 en zet poorten 2-7 op Not Member.
Sla op en verifieer door een apparaat aan te sluiten op poort 4: het moet een IP in de 192.168.20.x-range krijgen van de DHCP-server op je firewall, en niet in de productie-range.
Voor de MikroTik CRS305 gaat de configuratie via RouterOS (Winbox of terminal). De kernstap: zet bridge vlan filtering=yes, voeg alle poorten toe aan de bridge, en definieer per VLAN welke poorten tagged en welke untagged zijn via /interface bridge vlan. Vergeet niet frame-types=admit-only-vlan-tagged op de trunk-poort en frame-types=admit-only-untagged-and-priority-tagged op access-poorten.
Firewall-regels tussen VLANs in pfSense/OPNsense
De switch zorgt voor transport, de firewall zorgt voor beleid. Nadat je de VLAN-subinterfaces hebt aangemaakt op de firewall (in pfSense: Interfaces → Assignments → VLANs, parent interface = je LAN-NIC, tag = 10/20/30), configureer je per interface een DHCP-server en firewallregels.
De gouden regel: deny by default, allow by exception. Begin met een blokkeerregel onderaan elke interface die al het verkeer naar RFC 1918-adressen (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) weigert. Voeg daarboven de uitzonderingen toe.
VLAN 10 — Productie (meest permissief van de drie):
- Pass: any → any (volledige internettoegang, optioneel internetverkeer filteren via DNSBL)
- Pass: VLAN10 → VLAN20 op specifieke poorten indien nodig (bijv. TCP 1883 voor MQTT)
- Block: VLAN10 → RFC1918 (catch-all voor onbedoeld cross-VLAN verkeer)
VLAN 20 — IoT (strikt):
- Pass: VLAN20 → internet (DNS op poort 53, HTTP/HTTPS voor cloud-updates)
- Block: VLAN20 → RFC1918 (IoT mag nooit je productie of guest bereiken)
VLAN 30 — Gasten (minimaal):
- Pass: VLAN30 → internet
- Block: VLAN30 → RFC1918
Een handige truc in OPNsense: maak een alias RFC1918 met de drie private ranges, en gebruik die in je blokkeerregels. Zo hoef je het niet drie keer te herhalen.
Test na het aanmaken van de regels met ping en nmap vanuit elk VLAN: een apparaat op IoT mag google.com bereiken maar niet 192.168.10.1 (de productie-gateway). Werkt dat andersom wel? Dan klopt de regelvolgorde niet — pfSense en OPNsense evalueren regels top-down, eerste match wint.
Wil je IoT-apparaten bereiken vanuit je productie-VLAN (bijv. Home Assistant dat met slimme lampen praat), dan voeg je een gerichte allow-regel toe op de productie-interface: VLAN10-net → VLAN20-net, pass, en een bijbehorende return-regel via states (established/related verkeer wordt automatisch toegelaten als je stateful firewall hebt, wat bij pfSense en OPNsense altijd het geval is).
Veelgestelde vragen
- Heb ik een managed switch nodig als ik een UniFi Dream Machine of Firewalla Purple heb?
- Die apparaten kunnen VLANs beheren op hun eigen WAN/LAN-poorten en op compatibele access points, maar voor bedrade apparaten in meerdere VLANs heb je nog steeds een managed switch nodig die die VLAN-tags begrijpt. Een unmanaged switch "doorgeeft" getagd verkeer wel, maar je kunt er geen access-poorten op configureren.
- Moet mijn wifi-router ook managed zijn voor VLAN-isolatie op draadloos?
- Ja. Je access point moet meerdere SSIDs ondersteunen en elke SSID kunnen toewijzen aan een VLAN. Ubiquiti UAP's, TP-Link EAP's (Omada) en OpenWrt-compatibele routers ondersteunen dit allemaal. De uplink van het access point naar de switch is dan een trunk-poort.
- Kan ik VLANs doen zonder aparte firewall, gewoon op de router?
- Ja, als je router OpenWrt draait of een geavanceerde firmware heeft (zoals die van Asus met Merlin). Je configureert dan op de router zelf de VLAN-interfaces en firewallregels via iptables of nftables. pfSense/OPNsense op een aparte mini-pc geeft je meer controle en een overzichtelijkere UI, maar is geen harde vereiste.
- Wat als ik maar één NIC heb op mijn firewall?
- Dat is de klassieke "router-on-a-stick"-setup. Eén fysieke kabel van je NIC naar een trunk-poort op de switch, met VLAN-subinterfaces op de firewall (vlan0.10, vlan0.20, vlan0.30). Dit werkt prima, maar al het inter-VLAN verkeer loopt over die ene fysieke link — voor homelab-gebruik geen probleem, maar op een gigabit-NIC met veel IoT-verkeer kan het een bottleneck worden.
- Hoe voorkom ik dat IoT-apparaten mijn NAS scannen?
- Met de blokkeerregel VLAN20 → RFC1918 komt geen enkel pakket van het IoT-VLAN bij je NAS (die op het productie-VLAN staat). Zolang de firewall correct geconfigureerd is, maakt het niet uit hoeveel zerodays er in je slimme stofzuiger zitten — hij kan nooit bij je bestanden.