Login

Access Port und Trunk Port: Wie VLANs über Switches transportiert werden

Mario ·

Im Obergeschoss der Firma kommt ein zweiter Switch hinzu. Dort sitzen zwanzig Arbeitsplätze aus VLAN 20, außerdem ein Drucker aus VLAN 40. Zwischen den beiden Switches liegt ein einziges Netzwerkkabel. Wie schaffen es die Rahmen mehrerer VLANs, über diese eine Leitung zu laufen, ohne sich zu vermischen? Und wie weiß der Switch am anderen Ende, welcher Rahmen zu welchem VLAN gehört?

Die Antwort steckt in den zwei Porttypen, die in jedem VLAN-Netz vorkommen: Access Port und Trunk Port. Im Beitrag VLAN verstehen haben wir das schon angekündigt. Jetzt klären wir, was sie unterscheidet.

Access Port: Der Anschluss für Endgeräte

Ein Access Port gehört zu genau einem VLAN. An ihm hängen Endgeräte wie PCs, Drucker, Kameras oder Telefone. Die Geräte wissen nichts von VLANs. Sie schicken und empfangen ganz normale Ethernet-Rahmen ohne Tag.

Der Switch übernimmt die Arbeit:

  • Kommt ein Rahmen von einem Gerät am Access Port an, ordnet der Switch ihn dem VLAN des Ports zu.
  • Geht ein Rahmen an ein Gerät am Access Port hinaus, entfernt der Switch gegebenenfalls den Tag. Das Gerät sieht einen ganz normalen Rahmen.

Für das Endgerät ist also alles wie in einem Netz ohne VLANs. Die Trennung passiert unsichtbar im Switch.

Trunk Port: Die Leitung für mehrere VLANs

Ein Trunk Port transportiert Rahmen mehrerer VLANs gleichzeitig über eine einzige Verbindung. Damit der Empfänger weiß, zu welchem VLAN ein Rahmen gehört, trägt jeder Rahmen auf dem Trunk einen 802.1Q-Tag mit der VLAN-ID. Den Aufbau des Tags kennst du aus dem VLAN-Beitrag: 4 Byte, davon 12 Bit für die VLAN-ID.

Trunks setzt man ein:

  • zwischen zwei Switches,
  • zwischen Switch und Router oder Layer-3-Switch (Router-on-a-Stick),
  • zu Servern, die mehrere VLANs bedienen, zum Beispiel Virtualisierungshosts,
  • zu Access Points, die mehrere WLANs in verschiedenen VLANs anbieten, etwa ein Mitarbeiter- und ein Gäste-WLAN.

Der Vergleich

Access Port Trunk Port
Anzahl VLANs Genau eines Mehrere gleichzeitig
Tag auf dem Kabel Nein, normale Rahmen Ja, 802.1Q-Tag (außer beim Native VLAN)
Angeschlossen PC, Drucker, Kamera, Telefon Anderer Switch, Router, Server mit mehreren VLANs, Access Point
Befehl (Cisco) switchport mode access switchport mode trunk
Endgeräte hängen an Access Ports, die Verbindung zwischen den Switches ist ein Trunk.

Der Weg eines Rahmens über den Trunk

Ein Beispiel macht es greifbar. PC 1 hängt an Switch A auf Port 5 (VLAN 20). PC 2 hängt an Switch B auf Port 7, ebenfalls VLAN 20. PC 1 sendet einen Rahmen an PC 2.

  1. PC 1 schickt einen normalen Rahmen ohne Tag an Switch A.
  2. Switch A sieht: Er kam auf Port 5, der gehört zu VLAN 20. Die Ziel-MAC-Adresse ist hinter dem Trunk gelernt worden. Er fügt einen 802.1Q-Tag mit VLAN-ID 20 ein und sendet den Rahmen über den Trunk.
  3. Switch B empfängt den Rahmen und liest den Tag: VLAN 20. Er schlägt die Ziel-MAC in seiner Tabelle für VLAN 20 nach und findet Port 7.
  4. Switch B entfernt den Tag und liefert den Rahmen ohne Tag an PC 2.

Auf dem Weg ändert sich der Rahmen so:

Teilstrecke Porttyp Rahmen
PC 1 → Switch AAccessOhne Tag, 1.518 Byte
Switch A → Switch BTrunkMit Tag (VLAN 20), 1.522 Byte
Switch B → PC 2AccessOhne Tag, 1.518 Byte

Ein PC 3 an Switch B in VLAN 30 bekommt von der ganzen Unterhaltung nichts mit. Der Switch gibt Rahmen mit dem Tag 20 nur an Ports in VLAN 20 weiter. Das ist die Trennung, für die VLANs gedacht sind.

Der Tag wird beim Eintritt in den Trunk eingefügt und beim Verlassen entfernt.

Das Native VLAN

Auf einem Trunk gibt es eine Ausnahme: das Native VLAN. Rahmen dieses VLANs laufen ohne Tag über den Trunk. Der Empfänger ordnet sie dem Native VLAN zu, das er an seinem Trunk-Port eingestellt hat. Ursprünglich gedacht war das für ältere Geräte, die keine Tags verstehen. Bei Cisco ist VLAN 1 das voreingestellte Native VLAN.

Daraus ergeben sich zwei wichtige Regeln:

  • Beide Enden des Trunks müssen dasselbe Native VLAN haben. Stimmen sie nicht überein, landen Rahmen im falschen VLAN, und der Switch meldet in der Regel eine Warnung (bei Cisco über CDP).
  • Das Native VLAN sollte nicht für Nutzdaten verwendet werden. Aus Sicherheitsgründen legt man eine ungenutzte VLAN-ID als Native VLAN fest, zum Beispiel VLAN 99.

Konfiguration auf einem Cisco-Switch

Als Beispiel für die Syntax (bei anderen Herstellern unterscheiden sich die Befehle, das Prinzip bleibt gleich). Der Uplink zum anderen Switch ist Port Gi0/24. Er soll nur die VLANs 10, 20 und 40 transportieren:

Switch(config)# interface GigabitEthernet0/24
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan 10,20,40
Switch(config-if)# switchport trunk native vlan 99

Die erste Zeile macht den Port zum Trunk. Die zweite begrenzt die erlaubten VLANs auf die Liste, alle anderen laufen nicht über den Link. Die dritte legt VLAN 99 als Native VLAN fest. Bei manchen älteren Modellen musst du vorher mit switchport trunk encapsulation dot1q das Protokoll festlegen, sonst lehnt der Switch den Befehl ab.

Zur Kontrolle gibt es einen eigenen Befehl:

Switch# show interfaces trunk

Er zeigt alle Trunk-Ports mit Modus, Native VLAN, erlaubten VLANs und den VLANs, die tatsächlich aktiv über den Trunk laufen. Das ist der erste Anlaufpunkt, wenn ein VLAN nicht über den Link kommt.

Ein Server mit mehreren VLANs unter Linux

Auch ein Server am Trunk muss Tags verstehen. Unter Linux legst du dafür pro VLAN eine virtuelle Schnittstelle an. Der folgende Befehl erzeugt aus eth0 eine Schnittstelle für VLAN 30:

sudo ip link add link eth0 name eth0.30 type vlan id 30
sudo ip addr add 192.168.10.140/26 dev eth0.30
sudo ip link set eth0.30 up

Die erste Zeile erstellt die Schnittstelle eth0.30 für VLAN 30. Die zweite gibt ihr eine Adresse im Server-Subnetz 192.168.10.128/26. Die dritte schaltet sie ein. Der Switch-Port muss dazu als Trunk konfiguriert sein, der das VLAN 30 erlaubt. Die Namen und Adressen sind Beispiele und müssen zu deinem System passen.

Praxisbeispiel: Der Switch im Obergeschoss

Die Firma stattet das Obergeschoss mit einem Switch aus. Hier arbeiten Mitarbeiter und stehen Drucker, Server gibt es oben nicht. Der Administrator plant die Ports:

Port Angeschlossen Modus VLAN
Gi0/1 bis Gi0/20ArbeitsplätzeAccess20
Gi0/21NetzwerkdruckerAccess40
Gi0/22Switch-Verwaltung (Management)Access10
Gi0/24Uplink zum Switch im ErdgeschossTrunk10, 20, 40 (Native 99)

Das VLAN 30 für Server wird bewusst nicht auf den Trunk gelegt, weil oben keine Server stehen. Das spart Broadcast-Verkehr und verkleinert die Angriffsfläche. Ein Gerät im Obergeschoss kann, selbst wenn jemand es umkonfiguriert, nicht direkt ins Server-VLAN gelangen.

Fehlersuche bei Trunks

Wenn VLANs nur auf einem Switch funktionieren, liegt es meist am Trunk. Die typischen Ursachen:

Symptom Mögliche Ursache Prüfung
Geräte eines VLANs sehen sich nur am selben Switch VLAN fehlt in der Liste der erlaubten VLANs auf dem Trunk show interfaces trunk
Das VLAN existiert auf dem zweiten Switch nicht VLAN dort nicht angelegt show vlan brief
Warnmeldungen zum Native VLAN, Rahmen im falschen VLAN Native VLAN unterschiedlich an beiden Enden Native VLAN an beiden Ports vergleichen
Link steht, aber kein Verkehr der VLANs Ein Ende ist Access, das andere Trunk Modus beider Ports prüfen
Ein Server mit VLAN-Schnittstelle bekommt nichts Switch-Port ist Access statt Trunk oder erlaubt das VLAN nicht Portkonfiguration am Switch prüfen
Ein klassischer Fehler: Das VLAN ist nicht in der Liste der erlaubten VLANs auf dem Trunk.

Sicherheit: Was du bei Ports beachten solltest

  • Feste Porttypen. Lege Access und Trunk ausdrücklich fest und lass den Switch den Modus nicht automatisch aushandeln. Bei Cisco gibt es dafür das Protokoll DTP, das einen Port per Aushandlung zum Trunk machen kann. Ein Angreifer könnte sich damit einen Trunk verschaffen. Mit fest eingestelltem Modus und switchport nonegotiate schaltest du das aus.
  • Trunks einschränken. Erlaube nur die VLANs, die tatsächlich gebraucht werden.
  • Native VLAN ändern. Nutze eine ungenutzte VLAN-ID und kein VLAN 1 für Nutzdaten.
  • Ungenutzte Ports abschalten. Mit shutdown und einer Zuordnung zu einem leeren VLAN.

Typische Fehler und Missverständnisse

  • „Ein Access Port kann mehrere VLANs.“ Nein, genau eines. Mehrere VLANs gehören auf einen Trunk.
  • „Endgeräte sehen die Tags.“ Normalerweise nicht. Der Switch fügt sie am Trunk hinzu und entfernt sie vor dem Endgerät.
  • Native VLAN an beiden Enden verschieden. Das führt zu Fehlern und Sicherheitsrisiken.
  • Ein PC am Trunk-Port. Ein normaler PC versteht keine Tags und sieht höchstens das Native VLAN. Für Endgeräte gehört ein Access Port.
  • Trunk mit Link-Aggregation verwechseln. Ein Trunk bündelt VLANs auf einem Link. Link-Aggregation bündelt mehrere physische Kabel zu einem logischen Link. Beides kann man kombinieren, es ist aber nicht dasselbe.
  • VLAN auf dem Trunk erlaubt, aber nicht angelegt. Erst wenn das VLAN auf beiden Switches existiert, funktioniert die Verbindung.

Zum Üben

  1. Welchen Porttyp verwendest du für einen Arbeitsplatz-PC, welchen für die Verbindung zwischen zwei Switches?
  2. Was passiert mit dem 802.1Q-Tag, wenn ein Rahmen den Switch über einen Access Port verlässt?
  3. Was ist das Native VLAN, und wie wird es auf dem Trunk übertragen?
  4. Schreibe die Befehle, um Gi0/24 als Trunk einzurichten, der nur die VLANs 20 und 30 erlaubt und VLAN 99 als Native VLAN nutzt.
  5. Die Drucker in VLAN 40 am Switch im Obergeschoss sind nicht erreichbar, der Trunk erlaubt aber nur die VLANs 10, 20 und 30. Was ist die Ursache und die Lösung?
  6. Wie groß ist ein Ethernet-Rahmen mit 1.500 Byte Nutzlast auf dem Trunk (mit Tag)?
  7. Nenne zwei Sicherheitsmaßnahmen für Switch-Ports.

Lösungen: (1) Access Port für den PC, Trunk Port für die Switch-Verbindung. (2) Der Switch entfernt den Tag, das Endgerät bekommt einen normalen Rahmen. (3) Das Native VLAN ist das VLAN, dessen Rahmen untagged über den Trunk laufen. Beide Enden müssen dasselbe Native VLAN eingestellt haben. (4) interface GigabitEthernet0/24, switchport mode trunk, switchport trunk allowed vlan 20,30, switchport trunk native vlan 99. (5) VLAN 40 fehlt in der Allowed-Liste des Trunks. Lösung: switchport trunk allowed vlan add 40 (oder die Liste auf 10,20,30,40 erweitern). (6) 1.518 Byte plus 4 Byte Tag = 1.522 Byte. (7) Zum Beispiel feste Porttypen ohne automatische Aushandlung, Trunks auf benötigte VLANs begrenzen, Native VLAN ändern, ungenutzte Ports abschalten.

Das solltest du dir merken

  • Ein Access Port gehört zu genau einem VLAN und führt Rahmen ohne Tag. Hier hängen Endgeräte.
  • Ein Trunk Port transportiert mehrere VLANs gleichzeitig. Jeder Rahmen trägt einen 802.1Q-Tag, außer im Native VLAN.
  • Der Switch fügt den Tag beim Eintritt in den Trunk ein und entfernt ihn beim Verlassen zum Endgerät.
  • Das Native VLAN muss an beiden Enden gleich sein und sollte nicht für Nutzdaten verwendet werden.
  • Auf dem Trunk sollten nur die benötigten VLANs erlaubt sein. Das VLAN muss auf beiden Switches angelegt sein.
  • Bei Fehlern hilft show interfaces trunk.

Mit VLANs und Trunks kannst du Netze sauber trennen. Eine Frage bleibt: Wie bekommen die Geräte darin ihre Adressen, ohne dass jemand sie von Hand einträgt? Das klärt der nächste Beitrag: DHCP verstehen.

Weiterlesen