# Switch (netwerk)

Een switch is een apparaat in de infrastructuur van pakketgeschakelde computernetwerken dat tot doel heeft toestellen met elkaar te verbinden door het ontvangen, verwerken en doorzenden van ontvangen frames. Een switch kan Ethernet, Token ring, Fibre Channel of andere typen pakketgeschakelde netwerksegmenten verbinden tot één homogeen netwerk op het niveau van de OSI-datalinklaag. Door werkzaam te zijn op laag 2 kan elke switch bijkomende intelligentie toepassen ten opzichte van een hub om tot een beter presterend netwerk te komen. Er bestaan eenvoudige onbeheerde switches, maar ook geavanceerde beheerde switches, waarop men instellingen heeft voor Shortest Path Bridging, VLAN's en QoS, of zelfs mogelijkheden die zich uitstrekken naar hogere lagen, door pakketinspectie.

## Werking

In vergelijking met een hub die opereert op laag 1 van het OSI-model, is een switch een slim apparaat. Op laag 2 kan een switch namelijk gebruikmaken van logische informatie van aangesloten toestellen. Bij Ethernetnetwerken is dat met name het MAC-adres. Meer bepaald stuurt een Ethernetswitch een ontvangen frame dat geadresseerd is aan één bepaald MAC-adres alleen naar de specifieke hardwarepoort van de switch waarop het toestel met dat MAC-adres is aangesloten. Een hub daarentegen stuurt elk pakket naar alle poorten. Doordat geadresseerd verkeer alleen naar de poort wordt gestuurd waarop de eindbestemming van het pakket is aangesloten, vermindert het totale verkeer op het netwerk door switches toe te passen, en is het risico op botsingen lager. Hierdoor kunnen de prestaties van het netwerk significant verbeteren.
In het verleden kwam daar nog bij dat een switch kon omgaan met verschillende snelheden op de poorten en hubs niet. Dit is echter tegenwoordig nauwelijks relevant meer daar ook moderne hubs kunnen omgaan met verschillende snelheden.

## Zelflerendheid

Switches zijn zelflerend: ze houden een administratie bij van de koppeling van poorten en adressen. In het geval van Ethernet zijn dit MAC-adressen, in de MAC-adressentabel, een associatieve tabel waarin er voor elk bekend MAC-adres een poort is geregistreerd. Een netwerkframe geadresseerd aan een nieuw en onbekend adres komt langs een inkomende poort de switch binnen en wordt in eerste instantie via alle andere actieve poorten naar het netwerk verzonden. Immers, het is niet bekend waar de bestemming zich bevindt. Dit blijft zo voor dit MAC-adres zolang er geen frame ontvangen wordt met dit MAC-adres als afzenderadres.
Als op een specifieke poort echter een frame binnenkomt met een bepaald afzenderadres, dan slaat de switch de combinatie van poort en MAC-adres op in zijn MAC-adressentabel: de switch heeft dit dan "geleerd". Indien er in het vervolg via de andere poorten frames ontvangen worden met dit adres als bestemmingsadres zal de switch dit adres herkennen in de MAC-adressentabel en deze frames uitsluitend doorzenden via de geregistreerde poort. De tabel is dynamisch: zo leidt het ontvangen van een frame met een bepaald MAC-adres op een andere poort dan geregistreerd, meest waarschijnlijk door het aansluiten van een toestel op een andere poort, tot een aanpassing. Regelmatig probeert de switch de andere poorten ook weer, het kan immers zijn dat iemand een toestel naar een andere poort verplaatst heeft dat daardoor niet langer bereikt wordt.
Naast aan één enkel MAC-adres geadresseerde frames voor punt-naar-punt-communicatie komen er op het netwerk ook broadcast-frames voor, zoals bv. frames die DHCP-aanvragen bevatten. Deze broadcast-frames worden na binnenkomst doorgezonden via alle andere actieve poorten. Meer geavanceerde switches hebben ook voorzieningen voor multicast.

## Eliminatie botsingen

Bij een hub, die puur op de fysieke laag werkt, vormt het totaal van de aangesloten netwerksegmenten één collision domain. Dat betekent dat elk aangesloten toestel met de andere in conflict kan komen: als twee apparaten tegelijk of ongeveer tegelijk beginnen te zenden, treedt er een botsing op. De frames gaan verloren en beide toestellen moeten een nieuwe poging ondernemen. Verder kan een poort van een hub ook slechts in half-duplex-modus werken. Door het kunnen optreden van botsingen kan er een slecht presterend netwerk ontstaan. Het gebruik van switches daarentegen kan botsingen volledig elimineren. Enkel indien een poort van een switch in half-duplex-modus werkt, zal deze poort zijn eigen botsingsdomein vormen. Er zijn echter geen botsingsmogelijkheden met de delen van het netwerk aangesloten via de andere poorten. Er is echter meestal geen reden om half-duplex te gebruiken, men zal normaal elke poort van elke switch in full-duplex-modus bedrijven en daarmee door het gebruik van switches botsingen op het netwerk volledig kunnen uitsluiten.
In complexe netwerken, waar redundante links liggen of waar men storingen wil opvangen, kan het Shortest Path Bridging, Spanning Tree Protocol gebruikt worden om lussen in het netwerk te vermijden.

## Typen switchen

Er bestaan onbeheerde (unmanaged) switches en beheerde (managed) switches. Aan een onbeheerde switch is niets in te stellen: de ingebruikname is dan ook zeer eenvoudig en doorgaans probleemloos.
Een beheerde switch is meer geavanceerd en bevat voorzieningen voor configuratie en inspectie. Enkele mogelijkheden:
* QoS, Quality of Service. Men kan bepaald verkeer prioriteit geven over ander verkeer, bijvoorbeeld om tijdkritisch telefoonverkeer voorrang te geven op gewoon gegevensverkeer. De prioritisering kan gebeuren op basis van poortnummer, op basis van een tagging van binnenkomende frames volgens IEEE 802.1P, of op basis van andere criteria.
* VLAN's, virtuele LANs. Men kan een switch deel laten uitmaken van verschillende virtuele LAN's en zo als het ware verschillende virtuele switches realiseren. Indien de switch zich aan de rand van het netwerk bevindt zijn er meestal randpoorten (edge ports) die zorgen dat één aangesloten toestel deel uitmaakt van een bepaalde VLAN. Daarnaast heeft de switch normaal één of meer poorten via welke hij verbonden is met andere switches. Bij een VLAN volgens de open standaard voor VLAN's IEEE 802.1Q kan het verkeer voor tot maximaal 4094 VLANs over een gecombineerde hardwareverbinding verstuurd worden. Hiertoe worden op de verbindingen tussen de switches de Ethernet-frames getagd, met als onderscheidend kenmerk een VLAN-nummer. Op een switch met VLAN-voorzieningen kan men configureren of VLAN-functionaliteit actief is en zo ja welk type, bv. op basis van poorten of volgens 802.1Q. Afhankelijk van de keuze zijn er bijkomende configuraties, zoals welke poorten tot welke VLAN's behoren, tot welke VLAN een binnenkomende niet getagde frame behoort. Bij de meest geavanceerde switches zijn er nog bijkomende mogelijkheden, zoals indeling op basis van MAC-adres of het protocol op laag 3.
* Flow control. Hiermee kan men bijvoorbeeld de bandbreedte beperken voor bepaalde poorten.
* Monitoring. Hiermee kan men statistieken van het verkeer bekijken. Ook zijn er dikwijls mogelijkheden op verkeer te repliceren naar een speciale poort voor analyse.
Vooral veel oudere switches zijn kwetsbaar voor aanvallen van hackers in de vorm van MAC flooding.
Het aantal aansluiting kan variëren. In de praktijk ziet men 5, 8, 16, 24, 48, 192 aansluitingen. Haast altijd wordt een van deze aansluitingen gebruikt voor een uplink, zodat het aantal aan te sluiten apparaten (computers, printers...) één minder is. De grotere switches ziet men natuurlijk in grote bedrijven en zijn veel duurder, maar het is mogelijk (en vaak goedkoper) meerdere switches naast elkaar te gebruiken: op drie switches met 8 aansluitingen kan men 20 computers aansluiten.

### Multilayer switches

Een normale tweedelaags-switch stuurt gegevens door op basis van het MAC-adres. Echter, een multilaags-switch kan gegevens doorsturen op basis van informatie van hogere lagen.

## Aansluiting

Evenals een hub is een switch zeer eenvoudig aan te sluiten. Er hoeft voor het aansluiten meestal niets te worden ingesteld. Een probleem is soms dat de juiste kabel moet worden gebruikt. Om een hub of switch met een computer of ander toestel te verbinden, is een achtaderige RJ-45-standaardkabel nodig. Deze is niet altijd bruikbaar om twee hubs of switches met elkaar te verbinden.
Om twee hubs of switches met elkaar te verbinden via een Ethernetkabel zijn er de volgende mogelijkheden:
* Men kan een RJ-45-crossoverkabel gebruiken, waarbij de aansluitingen gekruist zijn. Er is dus een afwijkend type kabel nodig. Deze kabels zijn echter wel algemeen verkrijgbaar.
* Men kan een hub of switch gebruiken met een 'uplink'-aansluiting, of een aansluiting die kan worden omgeschakeld naar 'uplink'. Men gebruikt dan een standaardkabel tussen een normale aansluiting van de ene switch/hub en de uplink-aansluiting van de andere switch/hub.
* Men kan een modern type hub of switch gebruiken die zelf detecteert of de gebruikte poort in gewone of 'uplink'-modus moet werken, in functie van de gebruikte kabel. In dit geval werkt het zonder configuratie dus zowel met een standaardkabel als een crossoverkabel.
In sommige gevallen kan men de verbinding tussen switches/hubs niet direct met een Ethernetkabel maken, maar wel bijvoorbeeld via Power Line Communication. Elke switch of hub is dan doorgaans via een standaard Ethernetkabel met een adapter verbonden.