Een OpenWrt-router voor meerdere netwerken – deel 1
Heb je nog een Raspberry Pi over? Gebruik hem dan als router om je netwerk op te splitsen: redactie, marketing, sales en IoT-apparaten krijgen zo elk een eigen ruimte. Je kunt deze workshop ook gebruiken om je te verdiepen in en oefenen met netwerkscheiding en routing
Gangbare kantoor- en ook veel thuisnetwerken kunnen wel wat meer orde en dus ook veiligheid gebruiken. De meeste routers hebben daar wel een apart gedeelte voor met een gescheiden gastennetwerk. Maar als je wat wantrouwig staat tegenover IoT-apparaten of een bepaalde afdeling graag binnen een apart netwerk wilt houden, moet je meer moeite doen. Eén gastennetwerk is daarvoor niet voldoende. Dan heb je extra netwerken en iets meer techniek nodig.
Met de routersoftware OpenWrt en een simpel apparaat als een Raspberry Pi kun je dat niet alleen uitproberen, maar ook in de praktijk brengen. Afhankelijk van de eisen is het resultaat zeker geschikt voor permanent gebruik. In dit artikel gaan we in op de eisen voor het splitsen van netwerken en de technieken die daarvoor nuttig zijn.
Om ons configuratievoorstel na te doen, heb je een Raspberry Pi nodig – idealiter vanaf model 4 – en een managed switch die VLAN’s (volgens IEEE 802.1Q) ondersteunt. Zo’n switch met acht poorten koop je al voor rond de 25 euro.
Je hebt ook een pc nodig voor het configureren, waarvan je de netwerkinterface tijdelijk gebruikt om de te installeren switch en de Raspberry Pi te configureren. Dat kan bijvoorbeeld een laptop zijn die tegelijkertijd via wifi verbinding kan maken met internet.
| Benodigdheden | Specificatie en prijsindicatie |
|---|---|
| Raspberry Pi 4 | 1 GB RAM – € 40 |
| Behuizing | € 7 |
| MicroSD-kaart | 32 GB – € 12 |
| Voeding | 3A – € 9 |
| Zyxel GS-1200 | 8-poort-switch – € 25 |
| Totaal | € 93 |
Status quo
Een router als een Fritzbox biedt twee aparte netwerken: het normale netwerk, waar apparaten die op de netwerkpoorten zijn aangesloten of die bij het wifinetwerk ervan zijn aangemeld, zich in bevinden. Als je dat wilt, kan die router ook een wifinetwerk voor gasten openen. Een van de ethernetaansluitingen kan zo geconfigureerd worden dat het gastnetwerk daar ook aanwezig is (meestal poort 4). Met extra switches kun je het aantal poorten daarop uitbreiden, maar niet het aantal logische netwerken.
Je kunt zo’n router creatief gebruiken door onbetrouwbare apparaten, zoals de hele IoT-boel, in het gastennetwerk te zetten en de andere apparaten in het reguliere netwerk. Maar dat is zelden bevredigend: de apparaten in het reguliere netwerk hebben dan geen toegang tot die in het gastennetwerk, waardoor bijvoorbeeld configuratiesoftware die toegang via het netwerk vereist, niet werkt.
Het is ook niet mogelijk om poorten voor apparaten in het gastennetwerk vrij te geven en die zo van buitenaf bereikbaar te maken.
Je zou een dergelijke router kunnen vervangen door een router die niet beperkt is tot twee netwerken. Dat is echter een enorme stap, omdat zo’n router waterdicht geconfigureerd moet worden, zodat er geen gevaar dreigt vanuit het internet – en dat is zeker niet de beste manier om je te verdiepen in en oefenen met netwerkscheiding en routing.
We gaan er hier dan ook vanuit dat je de tot nu toe gebruikte router in dienst blijft houden als de hoofdrouter en hij de daadwerkelijke verbinding met het internet verzorgt. Zo kun je de afzonderlijke apparaten een voor een naar de nieuw gecreëerde netwerken verplaatsen.
De in dit artikel geconfigureerde Raspberry Pi-router komt in eerste instantie dus net als andere apparaten als client in het reguliere netwerk van de hoofdrouter (hierna hoofdnetwerk genoemd) en stelt zelf verdere netwerken beschikbaar. Dat betekent dat al het verkeer dat die nieuwe netwerken in de richting van het internet verlaat, vanaf de Pi via het hoofdnetwerk zal lopen.
Let op: als je geen verdere maatregelen neemt, zullen alle apparaten in dat hoofdnetwerk vanuit de afgeschermde netwerken bereikbaar zijn – daarover later meer.
Voorbereidingen
De eerste stap is om OpenWrt op de Raspberry Pi te zetten. Voordat je dat doet, moet je volgens de officiële OpenWrt-documentatie echter controleren of de gebruikte Pi al eens met Pi OS heeft gedraaid en al voor wifigebruik geconfigureerd was. Alleen daar kun je met raspi-config de voor wifi benodigde landcode instellen – bij onze Pi’s was dat al lang gebeurd. We wijzen daar eerst even op omdat het voor de volgende configuratiehandleiding noodzakelijk is dat het wifi werkt.
Om uiteindelijk OpenWrt in te stellen, gebruik je, net als voor Raspberry Pi OS, het eenvoudigst de Raspberry Pi Imager (alle downloads zie de link op het einde). Voor de Raspberry Pi-familie biedt het OpenWrt-project images met het ext4-bestandssysteem en images met SquashFS. Dat laatste is in het begin aan te raden omdat je met een paar klikken dan alle instellingen kunt resetten.
Welke image bij welke Pi past, kun je zien bij de OpenWrt-firmware-selector op openwrt.org. Typ daar raspberry in en kies het juiste model. Wij geven de voorkeur aan de 64-bit varianten. Gebruik voor de eerste installatie de factory-image. Selecteer vervolgens de gedownloade image bij Raspberry Pi Imager voor het besturingssysteem via de knop Gebruik eigen bestand (helemaal onderaan in de selectie).

Als de image op de SD-kaart gezet is, stop hem dan in de Raspberry Pi en start die op. Sluit een vrije netwerkpoort van je configuratie-pc of laptop direct aan op de netwerkpoort van de Raspberry Pi. Als je je netwerk niet teveel wilt omgooien, kan dat aan de pc-kant ook met een usb-ethernet-adapter.
Sluit de Raspberry Pi in geen geval via een kabel aan op je netwerk. Hij zou daar met de standaard actieve DHCP-server grote chaos veroorzaken. Het is belangrijk dat de poort op de pc die voor de configuratie gebruikt wordt, geconfigureerd is voor automatische toewijzing van een IP-adres (DHCP) of tijdelijk een IP-adres uit het netwerk 192.168.1.0/24 krijgt, maar niet 192.168.1.1.
Dat laatste adres wordt gebruikt door elk apparaat dat net is voorzien van OpenWrt om daar zijn interface voor de configuratie op aan te bieden. Als je dus http://192.168.1.1 op de adresbalk van de browser invoert, kom je op de startpagina terecht.
De interface die je na het inloggen met een leeg wachtwoord te zien krijgt, heet LuCI en gebruikt configuratiemechanismen binnen OpenWrt met de naam UCI.
Beide technieken, LuCI en UCI, bundelen een reeks wijzigingen en passen die pas toe als daarom gevraagd wordt. In het geval van de webinterface heeft dat het leuke voordeel dat een configuratiewijziging ongedaan wordt gemaakt als er niet binnen 90 seconden een succesvolle nieuwe aanmelding geregistreerd wordt – per ongeluk buitensluiten is dus moeilijk.

Internet voor de router
Voordat je je echt met LuCI kunt bezighouden en je router kunt configureren, bijvoorbeeld om de interface in het Nederlands te zetten of extra software te installeren, moet je hem toegang tot internet geven. In het geval van een Raspberry Pi is dat het makkelijkst door hem een wifiverbinding te laten maken met je bestaande draadloze netwerk. Open bovenaan het menu-item Network en kies Wireless.
Bij de Wireless Overview zie je een regel met het label radio0. Klik op de blauwe Scan-knop in die regel. Na een tijdje verschijnt er een lijst met draadloze netwerken in de nabije omgeving. Zoek er een geschikte uit en klik op Join Network. In het dialoogvenster vink je de optie Replace wireless configuration aan en vul je het veld voor de WPA passphrase in. De overige opties zijn al goed ingevuld. Sluit het dialoogvenster met Submit.

In het uitgebreidere dialoogvenster Device Configuration dat vervolgens verschijnt, vul je nog de Country Code in (NL voor Nederland en BE voor België) en kun je vervolgens met Save afsluiten. De overige velden zijn door de voorgaande stappen al goed ingevuld. Terug in de Wireless Overview klik je dan op de blauwe knop voor Save & Apply.
Als je je tijdens het klikken vergist hebt, vind je in de menubalk bovenaan de link UNSAVED CHANGES. Daar kun je niet alleen de tekstuele veranderingen bekijken die LuCI voor UCI klaar heeft staan, maar met een klik op de rode Revert-knop kun je alles wat je zojuist hebt aangeklikt ongedaan maken. Als het goed is, staat daar ook een Save & Apply.
Bij ons werkte het opzetten van een wifi-verbinding met het mesh-netwerk van een router pas toen we op de tweede dialoogpagina van de Device Configuration wat verder naar beneden bij Interface Configuration op het tabblad Wireless Security in het veld voor Encryption de optie WPA2-PSK/WPA3-SAE Mixed Mode (strong security) hadden ingesteld. Dat stond automatisch onjuist ingesteld op WPA3-SAE.
Wifi voor configuratie
Je OpenWrt-router heeft draadloos contact gemaakt als je wifi verschijnt onder Associated Stations in de Wireless Overview. Je kunt dat controleren via het menu Status op de bovenste menubalk met de functie Overview. Daar toont OpenWrt details over actieve netwerkverbindingen. Daar moet je voor een Wireless Network: Client onder andere het momenteel toegewezen IPv4-adres kunnen zien dat OpenWrt via wifi van je hoofdrouter gekregen heeft.
Die basisconfiguratie helpt in eerste instantie alleen bij het instellen van de Raspberry Pi-router. Je kunt alle mogelijkheden bekijken via het menu Network onder Interfaces. De router heeft twee interfaces, de ene heet lan en komt overeen met de netwerkpoort van de Raspberry Pi. Het is een door OpenWrt vooraf geconfigureerde vertrouwde netwerkzone. Dat betekent dat die poort inkomende netwerkverbindingen toestaat, zoals toegang tot LuCI en SSH.
De tweede interface heet wwan en verbindt de Raspberry Pi-router via wifi met je hoofdrouter (en hopelijk het internet). Die is toegewezen aan de zone wan. Daar tolereert OpenWrt geen inkomende verbindingen en presenteert het zijn interface niet, dus lijkt het alsof hij niets hoort. De zones regelen niet alleen de doorlaatbaarheid, maar ook hoe de router pakketten tussen zones doorstuurt – daar komen we in het volgende artikel op terug.

Voor de verdere configuratie is het het handigst om de wwan-interface uit de zone wan naar lan te verplaatsen. Dat kan alleen zonder problemen als je het wifinetwerk vertrouwt waarop je je toekomstige router hebt aangesloten en je dat wifinetwerk alleen voor de configuratie wilt gebruiken – voor veel meer is de wifi-interface van een Raspberry Pi toch niet geschikt. Ook hier komen we in een volgend artikel nog op terug.
Om de wwan-interface los te koppelen, ga je via het menu Network naar Interfaces, klik je bij wwan op Edit en ga je naar het dialoogvenster Firewall Settings. Daar kun je in het drop-downveld de zone wijzigen in lan. Als je het dialoogvenster met Save hebt gesloten, kun je met Save & Apply de gewijzigde zone toepassen.

Vervolgens kun je de configuratie-interface ook bereiken via het IP-adres dat de router via DHCP in je wifi gekregen heeft. Als je nog niet hebt voldaan aan het dringende verzoek van OpenWrt om een wachtwoord voor de router in te stellen, doe dat dan nu! Anders kan iedereen in je wifinetwerk de toekomstige router configureren.
Je kunt de netwerkkabel van de configuratie-pc naar de Raspberry Pi vervolgens verwijderen. De router is nu ook via wifi toegankelijk. Je hebt die netwerkkabel echter al snel weer nodig om de switch via de configuratie-interface in te stellen.
OpenWrt in het Nederlands
Om de basisconfiguratie van OpenWrt onder het nieuwe IP-adres te verfijnen, kun je extra software toevoegen. Ga in de menubalk onder System naar Software. Klik op de groene knop Update lists. Het OpenWrt-pakketbeheer haalt dan een lijst met de huidige pakketten op en biedt die aan voor installatie. Omdat het om duizenden pakketten gaat, kun je alleen verder met filters.
Typ bijvoorbeeld luci-i18n-base-nl in bij het veld Filter. Er blijft dan één pakket over dat bij installatie de interface van LuCI in het Nederlands zet. Je kunt dan klikken op de daarvoor bestemde blauwe knop Install. Het pakketbeheer stelt vanzelf voor om nog meer aanbevolen pakketten toe te voegen en laat ook zien welke afhankelijke pakketten al geïnstalleerd zijn. Met Install start je het proces.
Een venster toont de tekstuitvoer van het pakketbeheer. Als je het browservenster vervolgens opnieuw laadt, moet LuCI in het Nederlands verschijnen. Sommige termen die tot nu toe gebruikt zijn, heten dan anders, maar zijn vaak gewoon intuïtieve synoniemen.

We gaan hier echter verder met de Engelse menu-items en termen, met name omdat veel documentatie in het Engels is en je bij eventuele fouten dan makkelijker op internet kunt zoeken dan met de Nederlandse termen.
Voordat je echt aan de slag gaat met OpenWrt: onder System staat de functie Back-up / Flash Firmware. Op die pagina kun je met Generate archive de configuratiestatus op elk moment opslaan en met Upload archive weer terugzetten. Maak daar gebruik van als je een configuratiestap gedaan hebt. Dan hoef je niet helemaal opnieuw te beginnen met klikken.
Als je OpenWrt met een squashfs-image geïnstalleerd hebt, kun je op die pagina ook een reset uitvoeren om OpenWrt terug te zetten naar de basisstatus.

Switch voorbereiden
Nadat je met de vorige stappen een soort achterdeur naar de toekomstige router hebt gecreëerd via de wifi-interface, kun je nu veilig de configuratie van de ethernetinterface van de Raspberry Pi in OpenWrt aanpassen. Die speelt namelijk een belangrijke rol in dit voorbeeld: al het netwerkverkeer dat de Raspberry Pi als router verwerkt, moet daarlangs lopen. Dat lukt met een met VLAN’s compatibele switch, zonder dat de Raspberry Pi een extra netwerkinterface nodig heeft.
Dergelijke managed switches zijn met acht netwerkpoorten te koop vanaf ongeveer 25 euro. Ze hebben een microcomputer die bepaalt hoe de switch zich in het netwerk gedraagt. Als hij net uit de verpakking komt, verbindt hij alle aangesloten apparaten met elkaar in een logisch netwerk. Als de aangesloten apparaten geconfigureerd zijn met adressen uit een IP-netwerk, kunnen ze direct met elkaar communiceren.
De switch luistert in het netwerk op een door de fabrikant gedocumenteerd IP-adres naar toegang van een browser. Je moet de ethernetinterface van je configuratie-pc een passend adres geven om toegang te krijgen tot de interface van de switch. De hieronder gebruikte Zyxel GS-1200 heeft 192.168.1.3 als IP-adres. Als je een andere switch met een ander IP-adres gebruikt, configureer die dan voor het gemak op dezelfde manier.
Het belangrijkste is dat je configuratie-pc een adres gebruikt in hetzelfde IPv4-netwerk als de switch, bijvoorbeeld 192.168.1.4. In het geval van de Zyxel-switch is dat vrij eenvoudig als je die met één poort op de Raspberry Pi aansluit en een andere met de configuratie-pc verbindt. Dan krijgt de laatste automatisch een passend IPv4-adres van de OpenWrt-DHCP-server. Dat is handig voor het configureren van de switch, maar niet nodig voor later gebruik.
Het doel bij het instellen van de switch is om de VLAN-functionaliteit te activeren, zodat hij meerdere onafhankelijke netwerken vormt. Elke aansluiting van de switch kan aan een of meerdere VLAN’s worden toegewezen.
De vuistregel: aansluitingen waarop apparaten zoals pc’s, printers, tv’s enzovoort zijn aangesloten, ken je één VLAN toe. Als een aansluiting dient om andere switches of de Raspberry Pi met OpenWrt te verbinden, wijs dan meerdere VLAN’s toe.
Het leuke aan VLAN’s is dat één kabel genoeg is om meerdere aparte netwerken te bedienen. Op die manier kan de Raspberry Pi met maar één netwerkinterface meerdere netwerken aansturen. Hij voorziet de pakketten die via de interface worden verzonden van een VLAN-tag en kan bij ontvangst herkennen voor welk VLAN een inkomend pakket bedoeld is. De switch weet op zijn beurt op welke aansluiting hij pakketten voor welk VLAN moet afleveren en ontvangen.
Normale apparaten begrijpen geen VLAN’s en negeren pakketten met VLAN-tags of -ID’s dan ook. Daarom moet de switch niet alleen weten welk VLAN op een poort moet worden aangesloten, maar ook aan welk VLAN hij daar binnenkomende pakketten zonder tag moet toewijzen. De optie heet meestal PVID of in de lange vorm Port VLAN ID, maar soms gebruiken de configuratie-interfaces andere, vergelijkbare termen.
VLAN-ID’s en poorten
Dat zou concreet kunnen leiden tot de volgende voorbeeldconfiguratie voor een 8-poorts switch. De poortnummers (in de tekst tussen haakjes) zijn suggesties en dienen ter oriëntatie. Je hebt één aansluiting nodig om de Raspberry Pi-router op aan te sluiten (poort 8). Daar moeten alle VLAN’s aanwezig zijn waarvoor de router in het netwerk verantwoordelijk moet zijn.
De IP-adressen die deel uitmaken van ons voorbeeld, moet je eventueel aanpassen als ze op dit moment lokaal al in gebruik zijn.
VLAN’s en IP-netwerken
| Netwerk | Specificatie |
|---|---|
| uplink | VLAN 201 – DHCP |
| management | VLAN 202 – 192.168.202.0/24 |
| IoT | VLAN 203 – 192.168.203.0/24 |
| kids | VLAN 204 – 192.168.204.0/24 |
| office | VLAN 205 – 192.168.205.0/24 |
| guest | VLAN 206 – 192.168.206.0/24 |
Switchconfiguratie en aansluitingen
| Poort | Apparaten | VLAN’s | PVID |
|---|---|---|---|
| 1 | uplink | 201 | 201 |
| 2 | management | 202 | 1 |
| 3 | IoT | 203 | 203 |
| 4 | kids | 204 | 204 |
| 5 | office | 205 | 205 |
| 6 | guest | 206 | 206 |
| 7 | andere switches | 202–206 | 666 |
| 8 | Raspberry Pi | 201–206 | 666 |
Eén aansluiting moet de verbinding met het bestaande lokale netwerk maken en dient dus als uplink naar het internet (poort 1). Plan daarvoor een VLAN met de naam uplink (VLAN-ID 201). De wifitoegang die voor de configuratie gebruikt wordt, is alleen een hulpmiddel voor een veilige configuratietoegang, maar meestal niet geschikt als uplink.
Je moet een aansluiting reserveren om je switch te kunnen configureren als je onderweg bent of later tijdens het configureren vastloopt (poort 2). Daarvoor moet je een eigen VLAN aanmaken, dat je mgmt kunt noemen (VLAN-ID 202). In dat VLAN kun je extra apparaten aansluiten die via het netwerk beheerd kunnen worden.
Als je extra VLAN-switches in het netwerk wilt gebruiken, moet je daarvoor extra aansluitingen reserveren (poort 7). Net als bij poort 1 moeten alle VLAN’s die toegankelijk moeten zijn op aangesloten switches daar aanwezig zijn. Als het VLAN met de naam mgmt daarin opgenomen is, volstaat één toegang tot dat VLAN om alle switches ergens vanuit het netwerk te configureren.
Er blijven vier aansluitingen over die je naar wens kunt configureren. Ons advies: plaats elke aansluiting in een eigen VLAN om te onderzoeken hoe je de Raspberry Pi moet configureren, zodat hij het netwerkverkeer tussen de netwerken naar wens toestaat of blokkeert.
Voor dit configuratievoorbeeld geven we de VLAN’s de sprekende namen iot, kids, office en guest, dus een netwerk voor smarthome-dingen, je kinderen, de werkcomputers en gasten. Ze krijgen de VLAND-ID’s 203, 204, 205 en 206 en zijn elk als enige VLAN met hun PVID aangesloten op de aansluitingen 3, 4, 5 en 6 – de gelijke nummers maken de VLAN-toegang iets overzichtelijker.
Voorbeeld
Eigenlijk kun je bij elke VLAN-switch namen gebruiken in de configuratie, maar alleen als geheugensteuntje. VLAN-tags zijn getallen tussen 1 en 4094. Je kunt VLAN 1 en 2 beter vermijden. Vooral bij goedkope apparaten hebben die vaak een speciale functie, waardoor toegang tot de configuratie-interface vanuit alle VLAN’s niet voorkomen kan worden.
Voor elk VLAN heb je later ook een eigen IP-adresruimte nodig, dus unieke adressen voor IPv4 en IPv6 – die gebruikt de router uiteindelijk om te beslissen welke pakketten hij wel of niet tussen de netwerken moet doorsturen. Het is handig om de adressen voor de netwerken af te leiden van de VLAN-tag.
Het overbrengen van die gegevens naar de configuratie-interface van de switch vergt enige inspanning. Afhankelijk van hoe de interface eruitziet, kost dat soms wat geduld. Het juiste onderdeel voor de configuratie is 802.1Q VLAN – als je switch überhaupt een onderverdeling heeft. Veel apparaten verdelen de configuratie over twee aparte pagina’s: de ene wijst VLAN’s toe, de andere stelt de PVID in.

Het is een goede gewoonte om aansluitingen die meerdere VLAN’s hebben, een VLAN toe te wijzen als PVID die je anders niet gebruikt. Zo zorg je ervoor dat er geen verkeer naar een VLAN gaat dat niet de bedoeling was. In het voorbeeld wordt daarvoor VLAN-ID 666 gebruikt.
Als je voor het eerst met VLAN’s werkt, is de kans groot dat de switchconfiguratie niet meteen perfect lukt. Door zoals aanbevolen op poort 2 de PVID op 1 te laten staan, moet je via die poort altijd toegang hebben tot de configuratie-interface van de switch onder het oorspronkelijke IP-adres dat door de fabrikant opgegeven is, zodat je de interface kunt bijwerken.
Later is het raadzaam om de switch op te nemen in een management-VLAN en hem daar een vast IP-adres toe te wijzen. De meeste, maar niet alle managed switches bieden die mogelijkheid. Bewaar dat voor een later moment waarop je vertrouwd bent geraakt met de VLAN-configuratie. En: gebruik de functies om de switchconfiguratie op te slaan voordat je wijzigingen aanbrengt! Dan kun je na een fabrieksreset en het importeren van de back-up meteen verder met je configuratie en hoef je niet helemaal opnieuw te beginnen.
Raspberry Pi en VLAN’s
De laatste stap van het in gebruik nemen van je Raspberry Pi-router, namelijk het configureren van de netwerkinterfaces die passen bij de VLAN’s van de switch, behandelen we in een volgend artikel (‘Een OpenWrt-router voor meerdere netwerken – deel 2′, c’t 4/2026).
Peter Siering en Noud van Kruysbergen
Praat mee