VLAN Tagging, Wat betekent Tagged & Untagged
Binnen netwerken hebben we het vaak over “Tagged” en “Untagged” poorten. Ik vond deze begrippen altijd lastig. Wanneer is het nou tagged… en wanneer untagged en wat voor nut heeft dit eigenlijk? Na het lezen van deze korte post hoop ik dat ook bij jou het (spreekwoordelijke) kwartje gevallen is en dat je deze 2 begrippen goed en op de juiste situatie kunt toepassen.
Tagged en Untagged heeft alles te maken met VLAN’s ofwel virtuele netwerken. Ik wil in deze post niet het hele concept over VLAN’s uitleggen maar voor de beeldvorming is een korte uitleg wel even nodig:
Een VLAN wordt gecreëerd op de 2e laag in het OSI model, de datalinklaag. Een VLAN wordt gecreëerd bovenop een fysiek netwerk waardoor fysieke netwerken in logisch gescheiden netwerken kunnen worden verdeeld. Makkelijk gezegd, als alle afdelingen binnen een pand gebruik maken van dezelfde kabelboom en switch kunnen we de afdelingen toch logisch scheiden met een VLAN. AfdelingA is dan qua netwerk compleet gescheiden van afdelingB. VLAN’s worden gedefinieerd in de IEEE 802.1Q standaard. Een switch is een essentieel onderdeel van een VLAN omdat de switch het VLAN “maakt”. Op de Switch worden VLAN’s gedefinieerd en toegekend aan poorten. In theorie kun je oneindig veel VLAN’s maken. Sommige switches ondersteunen geen VLAN’s, andere ondersteunen er duizend en andere ondersteunen er tienduizenden. In de meeste situaties heb je echter aan duizend VLAN’s meer dan voldoende.
Een netwerk bestaat vaak uit meerdere switches. Een VLAN op switchA moet meestal ook op SwitchB aangemaakt worden (als devices in een VLAN werken welke aangesloten is op een switch en moeten communiceren met devices die aangesloten zijn in hetzelfde VLAN maar fysiek op een andere switch). Er zijn protocollen voor die VLAN management vergemakkelijken. Sommige netwerkbeheerders kiezen echter bewust voor het handmatig beheren en controleren van VLAN’s.
Om het verkeer en de VLAN’s van SwitchA naar SwitchB te sturen worden zogenaamde “trunk” poorten gebruikt. Deze trunk poorten worden geconfigureerd met VLAN’s welke het verkeer naar de andere switch kunnen sturen (niet elk VLAN hoeft toegestaan te worden over de trunk poorten).
Dit is waar “VLAN tagging” (ook wel frame tagging genoemd) toegepast wordt. Tagging wordt toegepast op uitgaand verkeer door de trunk poort. Als een netwerkpakket “ge-tagged” wordt dan wordt er in de header van het ethernet frame (packet) een 802.1Q header toegevoegd welke aangeeft voor welk VLAN het pakket bestemd is. Als dit pakket aankomt op de andere switch weet deze switch op welk VLAN hij het pakket moet broadcasten.
Een poort waar meerdere VLAN’s op geconfigureerd zijn is een trunk poort. Een “gewone” access poort waar een device op aangesloten is kan slechts lid zijn van 1 VLAN, dit is het VLAN waar de poort untagged op aangesloten is, ofwel zijn broadcast domein. Als er een pakket door de switch ontvangen wordt met een VLAN tag dan zal de switch deze broadcasten op alle poorten die in dat VLAN als access poort (untagged poort) aanwezig zijn EN op alle poorten die tagged in het VLAN zitten.
Als een pakket met een VLAN tag aankomt op een switch welke dit VLAN niet herkent of op een zogenaamde “domme” switch zonder VLAN intelligentie dan zal deze switch het pakket broadcasten op zijn native VLAN. Het native VLAN is dus het default VLAN. Best practice is dan ook om geen enkele access poort lid te maken van het native VLAN om VLAN attacks te voorkomen.
Voorbeeldje. Je hebt 3 VLAN’s:
VLAN1 – Native VLAN
VLAN10 – Data
VLAN20 – Voice
En je hebt een switch waar poort 1 t/m 10 bestemd zijn voor VOIP telefoons en 11 t/m 22 bestemd zijn voor computers. Poort 23 & 24 zijn trunk poorten welke gekoppeld zitten aan een 2e switch.
Je zou de poorten dan als volgt configureren:
VLAN1 (Native)
Untagged: –
Tagged: –
VLAN10 (data)
Untagged: 11-22
Tagged: 23-24
VLAN20 (Voice)
Untagged: 1-10
Tagged: 23-24
In het volgende voorbeeld heb je een WiFi accesspoint welke 1 guest SSID uitzend met toegang tot een gasten VLAN, en 1 hidden SSID met toegang tot het interne data netwerk. Deze accesspoint zit op poort 22. De configuratie ziet er dan als volgt uit:
VLAN1 (Native)
Untagged: –
Tagged: –
VLAN10 (data)
Untagged: 11-22
Tagged: 23-24
VLAN20 (Voice)
Untagged: 1-10
Tagged: 23-24
VLAN30 (Guest)
Untagged: –
Tagged: 22-24
Je ziet hier dat het apparaat broadcasts van het data netwerk ontvangt (untagged) en dat deze verkeer afkomstig uit het data netwerk ook tagged als deze over de trunk elders naartoe gaat.
Het apparaat zend ook het guest netwerk (30) tagged door naar andere switches. Als de switch data ontvangt van het guest netwerk via een andere switch wordt deze ook doorgestuurd naar het accesspoint omdat dit deze poort tagged op het VLAN zit.
Een poort kan dus eenmaal untagged voorkomen in de switch (dus in 1 VLAN). Dit betekend dat de poort participeert in het broadcast domein waar deze untagged in voorkomt. Als er ook een ander VLAN ontvangen moet worden op deze poort dan wordt het een trunk poort. Dit zorgt ervoor dat deze poort verkeer tagged met het VLAN en verkeer ontvangt welke specifiek voor dat VLAN bedoeld is.
Dus stel je voor dat je het netwerk als volgt configureert (voorbeeld 3):
VLAN1 (Native)
Untagged: –
Tagged: –
VLAN10 (data)
Untagged: 1-22
Tagged: 23-24
VLAN20 (Voice)
Untagged: –
Tagged: 1-24
VLAN30 (Guest)
Untagged: –
Tagged: 22-24
Nu prik je op poort 11 een computer. Poort 11 zit untagged in het data VLAN en de computer zal dus meteen het netwerk herkennen. Als je op poort 11 een VOIP toestel prikt zal deze niet werken. Het toestel ontvangt namelijk al het data verkeer (pakketten die voorzien waren van een VLAN10 tag. Deze VLAN10 tag heeft de switch bij ontvangst gestript en doorgestuurd naar alle untagged poorten in het VLAN10). en geen VOIP verkeer. Pas als het toestel in voice VLAN wordt geplaatst (dus hard in VLAN 20 wordt geplaatst) ontvangt deze pakketten die voorzien zijn van een VLAN 20 tag. Een toestel op poort 1 stuur nu ook de VLAN20 tag mee want poort 1 is ook een tagged poort.
Plain en simple: als een apparaat aangesloten zit op een access poort welke untagged in een specifiek VLAN zit dan is dit het default VLAN van het apparaat. Als het apparaat vervolgens verkeer naar een andere poort stuurt en het VLAN tagged op de trunk aanwezig is dan zal het verkeer vanuit de trunkpoort een tag meekrijgen. Als het verkeer dan ontvangen wordt door de switch / router / accesspoint etc. dan wordt de tag weer verwijderd en het verkeer wordt gebroadcast op de tagged & untagged poorten van het ontvangende apparaat welke onderdeel zijn van dit VLAN. Op deze manier kan een apparaat uit een VLAN nooit naar een apparaat op een ander VLAN mits de tag van het andere VLAN wordt meegegeven door het apparaat en de poort ook geconfigureerd is (tagged of untagged) in dit VLAN.
Ik denk dat met deze uitleg het concept van VLAN tagging en Tagged / Untagged poorten een stuk duidelijker is. Succes met het toepassen!!
