Was ist ein VLAN? 802.1Q-Tag, Access- und Trunk-Port
Ein VLAN teilt einen Switch per 4-Byte-Tag in getrennte Netze. Wie 802.1Q funktioniert, Access- vs. Trunk-Port, das Native-VLAN-Risiko, mit echten Mitschnitten.
- Was ist ein VLAN? Ein Switch, mehrere Netze
- Was ginge ohne VLANs kaputt?
- Was ist 802.1Q? Wo der Tag im Frame sitzt
- Access-Port oder Trunk-Port
- VLAN-Typen: Daten, Sprache, Management und VLAN 1
- Voice-VLAN: zwei Geräte, eine Netzwerkdose
- Warum VLAN 1 Ärger macht
- Was ist ein Native VLAN?
- VLAN anlegen und Access-Ports zuweisen
- Wohin mit ungenutzten Ports? Das Blackhole-VLAN
- Muss ich jeden Switch von Hand konfigurieren?
- Labor: zwei VLANs auf einem Kabel
- Warum die Befehlsreihenfolge beim Trunk entscheidet
- Die VM bekommt ein getaggtes Interface
- Was hat der Switch gesehen?
- Warum Sie den Tag nicht sehen: zwei Fallen beim Mitschneiden
- Falle 1: Der Mitschnittfilter hat die getaggten Frames verworfen
- Falle 2: Auf dem Rückweg wird der Tag entfernt
- Was Segmentierung still kaputt macht: ein Zeitserver, der ins Leere lief
- VLAN-Fehlersuche: Link da, Gerät da, trotzdem nicht erreichbar
- Warum Inter-VLAN-Routing einen Router braucht
- VLAN-Sicherheit: Native-VLAN-Risiko und VLAN Hopping
- Am Provider-Übergang: Access oder Trunk?
- Fazit: ein kleiner Tag mit großen Folgen
Stellen Sie sich eine große Fachmesse vor. Am Empfang bekommen Sie ein Namensschild, und darauf steht, welche Halle Sie betreten dürfen. Ein Gebäude, gemeinsame Gänge, gemeinsame Aufzüge. Was Sie von den anderen Besuchern trennt, ist keine Wand. Es ist das Schild um Ihren Hals.
Ein Switch macht dasselbe. Ein VLAN (Virtual Local Area Network) teilt einen physischen Switch in mehrere logisch getrennte Netze, und zwar nicht durch neue Kabel, sondern durch eine kleine Markierung, die an jeden Frame geheftet wird. Dieser Artikel gehört zum Leitfaden Netzwerksegmentierung und verfolgt diese Markierung durch das ganze Netz: wo sie im Frame sitzt, welcher Port sie schreibt, welcher sie transportiert und wie sie in einem echten Mitschnitt von einem echten Switch aussieht.
Alle Befehle und Ausgaben stammen aus dem Labor des Autors (Domäne ad.sercebilisim.com); Adressen und Namen sind so belassen, wie sie gemessen wurden. Wenn Sie nur den Unterschied der beiden Port-Typen suchen, springen Sie zu Access-Port oder Trunk-Port. Haben Sie ein Gerät, das im Netz auftaucht, aber nicht erreichbar ist, gehen Sie direkt zur Fehlersuche.
Was ist ein VLAN? Ein Switch, mehrere Netze
Ein VLAN ist eine logische Trennung, die Gruppen von Geräten am selben physischen Switch voneinander isoliert. Der Rechner der Buchhaltung und ein Smartphone im Gastnetz können an zwei Ports desselben Switches hängen und sich trotzdem nie hören.
Der Fachbegriff für das, was ein VLAN aufteilt, ist die Broadcast-Domäne. Wenn ein Gerät alle anderen im Netz anruft, etwa um die Hardware-Adresse eines Nachbarn zu finden oder eine IP-Adresse anzufordern, hört das nur sein eigenes VLAN. Das VLAN zieht die Grenze dieser Domäne.
Was ginge ohne VLANs kaputt?
Nehmen Sie ein flaches Netz mit 200 Benutzern, 40 Servern und 60 IP-Telefonen: 300 Geräte in einer Broadcast-Domäne. Jedes ruft regelmäßig alle anderen an, um Nachbarn zu finden, Adressen zu erneuern und sich zu melden. Jeder dieser Broadcasts erreicht jede Netzwerkkarte im Gebäude und unterbricht kurz jede CPU, ob gefragt oder nicht.
Die zweite Last ist die schwerere: die Sicherheit. Ein Gerät in derselben Broadcast-Domäne lernt die anderen kennen, ohne zu fragen. Ein Laptop im Gastnetz findet die Adresse des Buchhaltungsservers ohne jedes Hindernis. In einem unsegmentierten Netz heißt „ein Unbefugter ist drin“ immer „ein Unbefugter ist überall drin“.
VLANs senken beides zugleich: Sie halten Broadcasts innerhalb einer Gruppe und zwingen den Verkehr zwischen Gruppen durch eine Kontrollstelle.
Was ist 802.1Q? Wo der Tag im Frame sitzt
802.1Q ist der IEEE-Standard, der die VLAN-Zugehörigkeit direkt in den Ethernet-Frame schreibt, indem er einen 4 Byte großen Tag einfügt. Der Tag sitzt direkt hinter der Quell-MAC-Adresse und vor dem Feld, das den Typ des Frames angibt.
Der Tag wird also weder vorn noch hinten angeklebt. Er wird in die Mitte eingefügt, so wie ein Namensschild an einen Besucher geklemmt wird, ohne dass sich der Besucher ändert. Am Eingang wird zuerst das Schild geprüft.
Die 4 Byte teilen sich in vier Felder:
| Feld | Größe | Inhalt |
|---|---|---|
| TPID | 16 Bit | Fester Wert 0x8100: „dieser Frame ist getaggt“ |
| PCP | 3 Bit | Priorität 0 bis 7, für Sprache und Video |
| DEI | 1 Bit | Ob der Frame bei Überlast verworfen werden darf |
| VID | 12 Bit | Die VLAN-ID: zu welchem VLAN der Frame gehört |
Entscheidend ist die VID, und ihre Größe setzt eine harte Grenze: 12 Bit ergeben 4.096 Werte. Der Standard reserviert 0 und 4.095, nutzbar sind also 1 bis 4.094.
Das ist die Lehrbuchantwort. Ein echtes Gerät kann enger sein: Der Laborswitch dieses Artikels meldet seinen zulässigen Bereich als <1-4093> und behält die letzte Nummer für sich. Das spürt niemand, erinnert aber daran, dass die Obergrenze am Gerät abgelesen wird, nicht im Standard.
Durch den Tag wächst die maximale Frame-Größe von 1.518 auf 1.522 Byte. Normalerweise merken Sie davon nichts. Berücksichtigt ein Gerät im Pfad diese 4 Byte aber nicht, verwirft es getaggte Frames stillschweigend, und ein Teil der Störungen, die im Alltag als „große Pakete kommen nicht durch“ beschrieben werden, beginnt genau hier.
Access-Port oder Trunk-Port
Ein Switch-Port spielt gegenüber VLANs eine von zwei Rollen, und der Unterschied passt in eine Zeile: Ein Access-Port versteckt den Tag, ein Trunk-Port transportiert ihn.
Auf der Messe sind das der Empfang und der Hauptgang.
- Der Access-Port ist der Empfang. Das angeschlossene Gerät weiß nichts von Tags und sendet einen gewöhnlichen, ungetaggten Frame. Der Port nimmt ihn an, schreibt den Tag seines eigenen VLANs darauf und reicht ihn in den Switch. In Gegenrichtung entfernt er den Tag, bevor der Frame beim Gerät ankommt.
- Der Trunk-Port ist der Hauptgang. Verkehr aus mehreren VLANs läuft gleichzeitig darüber, und jeder Frame behält seinen Tag. Am anderen Ende sitzt ein Gerät, das Tags versteht: ein weiterer Switch, ein Router, ein Virtualisierungshost oder ein entsprechend konfiguriertes Betriebssystem.
Die Frage, die es entscheidet: Versteht das Gerät am anderen Ende VLANs?
| Eigenschaft | Access-Port | Trunk-Port |
|---|---|---|
| Transportierte VLANs | Eines | Mehrere |
| Tag beim Verlassen | Entfernt | Bleibt |
| Gerät am anderen Ende | Kennt keine Tags | Versteht Tags |
| Typischer Anschluss | PC, Drucker, IP-Telefon, Kamera | Switch, Router, Server, Access Point |
Ein PC an einem Trunk-Port bekommt ein Schild, das er nicht lesen kann: Jeder eingehende Frame beginnt mit 4 Byte, die er nicht versteht, und die meisten Betriebssysteme verwerfen solche Frames. Ein Switch an einem Access-Port ist der umgekehrte Fall: Sie verengen den Hauptgang auf einen einzigen Empfang, und der Verkehr aller anderen Hallen verschwindet auf diesem Kabel.
Kurz gesagt: An Access-Ports hängen Endgeräte, Trunks sind die Wege zwischen den Geräten, die Verkehr weiterleiten. Die Regel für die Praxis: Jedes Endgerät landet im Normalfall in genau einem VLAN. Entweder kommt es ungetaggt an einem Access-Port an und wird dessen VLAN zugeordnet, oder es kann seine Frames selbst taggen und verlässt einen Trunk in das VLAN seiner Wahl. Letzteres ist die Ausnahme, und genau die baut der Laborabschnitt unten.
VLAN-Typen: Daten, Sprache, Management und VLAN 1
Die „Typen“ von VLANs sind technisch keine verschiedenen VLANs. Alle nutzen denselben 802.1Q-Tag, und der Switch behandelt sie gleich. Unterschiedlich ist die Rolle, die Sie vergeben. Alle Schilder kommen aus demselben Drucker; nur der Aufdruck ändert sich.
- Daten-VLAN: Arbeitsplatzrechner, Drucker, gewöhnlicher Geschäftsverkehr. Die meisten VLANs sind von dieser Art.
- Voice-VLAN: reserviert für IP-Telefonie, mit einem Verhalten, das einen eigenen Abschnitt verdient.
- Management-VLAN: die Verwaltungsoberflächen von Switches, Routern und Access Points. Es wird nicht aus Leistungsgründen getrennt, sondern zur Zugriffskontrolle: Niemand, der sich ins Netz steckt, muss die Anmeldeseite eines Switches sehen.
- VLAN 1 (Default-VLAN): das VLAN, zu dem ab Werk jeder Port gehört.
Voice-VLAN: zwei Geräte, eine Netzwerkdose
Das Voice-VLAN ist die häufigste Form von „zwei VLANs an einem Port“, und Sie sind vermutlich schon daran vorbeigelaufen. Das Tischtelefon steckt in der Wanddose, der PC im zweiten Anschluss auf der Rückseite des Telefons. Ein Kabel, zwei Geräte.
Der Switch-Port ist so eingestellt, dass der Verkehr des PCs ungetaggt ins Daten-VLAN geht, während das Telefon getaggt ins Voice-VLAN sendet. Das Telefon schreibt den Tag selbst, weil es Tags versteht; der PC merkt davon nichts.
Der Grund ist nicht Bequemlichkeit. Sprachverkehr verträgt weder Verzögerung noch Jitter und muss priorisiert werden, und die Priorität steckt bereits im Tag: Genau dafür gibt es das PCP-Feld aus der Tabelle oben. Das p 0 im Mitschnitt weiter unten kennzeichnet gewöhnlichen Verkehr; ein Sprach-Frame trägt einen höheren Wert.
Warum VLAN 1 Ärger macht
VLAN 1 ist das VLAN, dem auf einem unkonfigurierten Switch jeder Port angehört, und zwei Eigenschaften machen es riskant: Es lässt sich nicht löschen, und es ist standardmäßig überall.
Die VLAN-Liste des Laborswitches zeigt es:
VLAN Name Ports Type
----- --------------- ------------- --------------
1 default Po1-64, Default
Gi1/0/25-48,
Te1/0/1-4
5 YONETIM Gi1/0/1-24 Static
30 LAB-VLAN30 Gi1/0/3 StaticDrei Dinge sind hier abzulesen:
- Die Portliste in der Zeile
1 defaultenthält jeden Port, den niemand von Hand zugewiesen hat:Gi1/0/25-48und die ungenutzten Link-Aggregation-Gruppen. Jede freie Dose ist Mitglied von VLAN 1. DefaultgegenüberStaticin der SpalteTypezeigt, dass VLAN 1 mit dem Gerät kam, nicht mit einer Konfiguration.5 YONETIM(türkisch für „Verwaltung“) und30 LAB-VLAN30wurden von Hand angelegt. Namen sind optional, aber sechs Monate später oft der einzige Hinweis für die nächste Person, die den Portplan liest.
Die praktische Folge: Wer sich in eine freie Dose steckt, landet ohne weiteres in VLAN 1. Deshalb nutzt man VLAN 1 weder für Benutzerdaten noch als Management-VLAN, und freie Ports werden abgeschaltet oder in ein VLAN verschoben, in dem niemand wohnt.
Was ist ein Native VLAN?
Das Native VLAN ist das VLAN, dem ungetaggte Frames auf einem Trunk-Port zugeordnet werden. Ein Trunk erwartet, dass alles getaggt ist; kommt ein ungetaggter Frame an, verwirft er ihn nicht, sondern steckt ihn ins Native VLAN.
Auf der Messe ist das der Besucher ohne Schild. Der Sicherheitsdienst wirft ihn nicht hinaus, sondern schickt ihn in den allgemeinen Bereich. Welcher Raum das ist, legt die Hausordnung fest, und steht dort das Falsche, landet der Besucher, wo er nicht hingehört.
Zwei Eigenschaften unterscheiden das Native VLAN, und beide laden zu Fehlern ein:
- Sein Verkehr läuft ungetaggt. Frames im Native VLAN überqueren den Trunk ohne Tag, bewusst so vom Standard vorgesehen, für ältere Geräte ohne Tag-Verständnis.
- Es muss an beiden Enden übereinstimmen. Sagt ein Ende Native 5 und das andere Native 1, landet ein ungetaggter Frame auf der anderen Seite in einem völlig anderen VLAN. Zwei Netze sind verbunden, und niemand bemerkt es.
Das Zweite heißt Native-VLAN-Mismatch, und die meisten Organisationen haben die Voraussetzung dafür ab Werk: Das Native VLAN ist bei den meisten Switches standardmäßig VLAN 1.
Die Regel daraus ist einfach: Lassen Sie das Native VLAN nie auf dem Standardwert. Vergeben Sie eine ungenutzte VLAN-Nummer, an der nichts hängt, und setzen Sie sie an beiden Trunk-Enden gleich. Dann landet ein ungetaggter Frame nicht versehentlich am richtigen Ort, sondern nirgendwo.
VLAN anlegen und Access-Ports zuweisen
VLAN-Konfiguration besteht aus zwei getrennten Schritten, und wer sie verwechselt, erlebt das klassische „VLAN angelegt, funktioniert aber nicht“: Zuerst wird das VLAN angelegt, dann werden Ports ihm zugewiesen. Das Zweite geht nicht ohne das Erste, und das Erste nützt nichts ohne das Zweite. Eine Halle zu eröffnen, ohne Schilder dafür zu drucken, lässt sie leer.
Schritt eins: das VLAN anlegen. Es bekommt eine Nummer; ein Name ist optional, in der Praxis aber Pflicht:
vlan 30
name "LAB-VLAN30"
exitSchritt zwei: den Port zuweisen. Ports für Endgeräte gehen in den Access-Modus:
interface Gi1/0/1
switchport access vlan 5Diese zwei Zeilen machen den Port zum Empfang von VLAN 5: Das Gerät spricht ungetaggt, der Port setzt und entfernt den Tag selbst. Am Gerät ist nichts einzustellen, und es sollte auch nichts eingestellt werden. Für mehrere Ports gibt es einen Bereich:
interface range Gi1/0/10-12
switchport access vlan 30Um einen Port aus einem VLAN zu nehmen, gibt es kein Löschen; der Port kehrt zum Standard zurück, also zu VLAN 1:
interface Gi1/0/10
no switchport access vlanDas übersieht man leicht, und die Folge betrifft die Sicherheit: Wenn Sie glauben, einen Port „geparkt“ zu haben, haben Sie ihn tatsächlich in das VLAN zurückgeschickt, in das jeder fällt.
Wohin mit ungenutzten Ports? Das Blackhole-VLAN
Der richtige Ort für einen ungenutzten Port ist ein VLAN, das nirgendwohin führt, in der Praxis Blackhole-VLAN genannt. Eine VLAN-Nummer wird reserviert, aber nichts lebt darin, nichts routet es, und kein Trunk transportiert es. Ein Frame, der dort landet, erreicht niemanden. Die Reihenfolge ist dieselbe, nur wird der Port zusätzlich abgeschaltet:
vlan 999
name "BLACKHOLE"
exit
interface Gi1/0/10
switchport access vlan 999
shutdownWarum beides? Weil jedes allein unvollständig ist. Schalten Sie den Port nur ab, fällt er beim Wiedereinschalten ins Default-VLAN zurück. Verschieben Sie ihn nur ins Blackhole, bleibt er elektrisch aktiv und ein Gerät bekommt zumindest einen Link. Zusammen ist die Tür verschlossen und dahinter ist nichts. Danach sieht der Port so aus:
Port: Gi1/0/10
VLAN Membership Mode: Access Mode
Access Mode VLAN: 999
Trunking Mode Native VLAN: 1 (default)
Trunking Mode VLANs Enabled: AllDie letzten beiden Zeilen überliest man leicht, und sie sind wichtig: Der Port ist im Access-Modus, doch seine Trunk-Einstellungen existieren weiter, mit Standardwerten. Wird er je zum Trunk, ist sein Native VLAN 1 und er erlaubt alle VLANs. Genau deshalb funktioniert das Switch Spoofing aus dem Sicherheitsabschnitt: Die Einstellungen sind nicht gelöscht, nur ruhend.
Muss ich jeden Switch von Hand konfigurieren?
Bei zehn Switches stellt sich die Frage, ob dieselbe VLAN-Liste zehnmal eingetippt werden muss. In den meisten Organisationen lautet die Antwort ja, und das ist eine bewusste Entscheidung, keine Lücke.
Es gibt Protokolle, die die VLAN-Liste automatisch verteilen. Ciscos proprietäres heißt VTP (VLAN Trunking Protocol); das IEEE-Pendant ist GVRP, inzwischen durch MVRP ersetzt. Die Idee ist dieselbe: Ein auf einem Switch angelegtes VLAN verbreitet sich über die Trunks. Der Preis dieser Bequemlichkeit wurde im Feld teuer gelernt: Diese Protokolle verbreiten auch Löschungen. Ein Switch mit scheinbar neuerer Datenbankrevision kann der ganzen Domäne seine Liste aufzwingen und funktionierende VLANs mitnehmen. Statt zu raten, habe ich den Laborswitch gefragt:
console#show vtp status
^
% Invalid input detected at '^' marker.
console#show gvrp configuration
Global GVRP Mode: DisabledZwei Zeilen, zwei Fakten: VTP gibt es auf diesem Gerät nicht, erwartungsgemäß, denn VTP ist Cisco-spezifisch und der Laborswitch stammt von einem anderen Hersteller. Und GVRP ist vorhanden, aber ab Werk aus, was genau zum Risiko oben passt. Mein Rat: Ist die Zahl der VLANs von Hand beherrschbar, lassen Sie die automatische Verteilung aus. Schalten Sie sie ein, leeren Sie vor dem Anschließen die VLAN-Datenbank jedes neuen Switches.
Labor: zwei VLANs auf einem Kabel
Alles bisher Gesagte lässt sich messen. Der Aufbau: ein verwalteter Switch, ein Arbeitsplatzrechner an einem einzigen Kabel und eine Linux-VM, die per Bridge an der Netzwerkkarte dieses Rechners hängt. Zwei Geräte, ein physischer Port.
Ausgangspunkt war genau das Problem, das zu diesem Artikel führte: Der Port stand im Access-Modus auf switchport access vlan 5. Ein Access-Port trägt ein VLAN, also konnten Rechner und VM nicht in verschiedene VLANs. Beide betraten dieselbe Halle mit demselben Schild. Das Ziel: den Port zum Trunk machen, den Rechner ungetaggt im Native VLAN 5 lassen und die VM getaggt in VLAN 30 schicken. Ein Kabel, zwei VLANs, keine zusätzliche Hardware.
Warum die Befehlsreihenfolge beim Trunk entscheidet
Hier lässt sich etwas verlieren. Sobald Sie den Befehl geben, der den Port zum Trunk macht, landet sein ungetaggter Verkehr im Native VLAN. Das ist standardmäßig 1, die Management-Adresse des Switches liegt aber in VLAN 5. Falsche Reihenfolge, und die Sitzung, in der Sie tippen, schneidet sich selbst ab. Deshalb wird das Native VLAN vor dem Moduswechsel festgelegt:
interface Gi1/0/3
switchport trunk native vlan 5
switchport trunk allowed vlan 5,30
switchport mode trunkDie Reihenfolge ist bewusst verkehrt herum. Die ersten zwei Zeilen schreiben Trunk-Parameter auf einen Port, der noch im Access-Modus ist, und ändern nichts. Wechselt die dritte Zeile den Modus, ist das Native VLAN schon 5, und der ungetaggte Management-Verkehr bleibt, wo er ist. Der Port danach:
Port: Gi1/0/3
VLAN Membership Mode: Trunk Mode
Trunking Mode Native VLAN: 5
Trunking Mode Native VLAN Tagging: Disabled
Trunking Mode VLANs Enabled: 5,30VLAN Membership Mode: Trunk Mode: Der Port ist jetzt Gang, nicht Empfang.Trunking Mode Native VLAN: 5: Alles Ungetaggte zählt als VLAN 5. Diese Zeile hält die Sitzung am Leben.Native VLAN Tagging: Disabled: Das Native VLAN verlässt den Port ohne Tag; mit Tag würde der Rechner es nicht verstehen.VLANs Enabled: 5,30: Nur diese zwei Hallen dürfen den Gang nutzen.
Die VM bekommt ein getaggtes Interface
Die Switch-Seite steht. Nun muss die VM getaggte Frames erzeugen, denn VLAN 30 ist nicht native und der Trunk erwartet dafür einen Tag. Unter Linux legt man dafür ein VLAN-Subinterface auf das physische Interface:
ip link add link ens33 name ens33.30 type vlan id 30
ip addr add 192.168.30.15/24 dev ens33.30
ip link set ens33.30 upDie Maschine hat nun zwei Interfaces auf derselben Karte:
ens33 UNKNOWN 192.168.1.15/24
ens33.30@ens33 UP 192.168.30.15/24ens33 spricht ungetaggt und landet im Native VLAN 5. ens33.30 versieht jeden Frame mit dem Tag für VLAN 30. Dieselbe Karte, dasselbe Kabel, zwei Hallen.
Was hat der Switch gesehen?
Die übliche Antwort im Feld lautet, ein Port gehöre zu einem VLAN, und die meisten Portpläne sind so gezeichnet. Die MAC-Adresstabelle des Switches:
Vlan Mac Address Type Port
-------- --------------------- ----------- ---------------------
1 F48E.381B.184D Management Vl1
5 000C.29A0.719A Dynamic Gi1/0/3
5 5811.22B1.0E54 Dynamic Gi1/0/3
5 F48E.381B.184D Management Vl5
30 000C.29A0.719A Dynamic Gi1/0/3
30 F48E.381B.184D Management Vl305 ... 5811.22B1.0E54 ... Gi1/0/3: die Karte des Arbeitsplatzrechners, ungetaggt, also im Native VLAN 5.5 ... 000C.29A0.719A ... Gi1/0/3: die Karte der VM auf ihrem ungetaggten Interface, ebenfalls in VLAN 5.30 ... 000C.29A0.719A ... Gi1/0/3: dieselbe MAC-Adresse, derselbe Port, ein anderes VLAN.
Die dritte Zeile ist der Kern dieses Artikels. Eine Hardware-Adresse ist an einem physischen Port Mitglied zweier VLANs. Der Switch hat nicht anhand der MAC-Adresse entschieden, sondern anhand des Tags am Frame. Mit Schild in Halle 30, alle anderen in den allgemeinen Bereich.
Warum Sie den Tag nicht sehen: zwei Fallen beim Mitschneiden
Einen getaggten Frame mitzuschneiden war schwieriger, als ihn zu konfigurieren, und zwar aus Gründen, die nichts mit VLANs zu tun haben: Die Voreinstellungen der Mitschnitt-Werkzeuge machen den Tag unsichtbar. Der erste Versuch ergab:
vlan 30 etiketli: 0
etiketsiz : 31Das Zählskript gab seine Ergebnisse auf Türkisch aus: etiketli heißt „getaggt“, etiketsiz „ungetaggt“. Einunddreißig Frames, keiner getaggt, während der Switch zur selben Zeit MAC-Adressen in VLAN 30 lernte. Widersprechen sich zwei Messungen, ist eine davon falsch.
Falle 1: Der Mitschnittfilter hat die getaggten Frames verworfen
Der Mitschnitt lief mit dem Filter arp or icmp. Er wirkt harmlos und war das ganze Problem: Das Primitiv arp erkennt keinen 802.1Q-getaggten ARP-Frame. Der Filter prüft das Typfeld an Byte 12; im getaggten Frame steht dort die Tag-Markierung 0x8100, nicht ARP. Der Filter greift nicht, und der Frame wird nie in die Datei geschrieben. Die pcap-Datei enthielt also überhaupt keine getaggten Frames, und die spätere Suche nach vlan 30 durchsuchte eine leere Datei. Ohne Filter erschien der Tag:
00:0c:29:a0:71:9a > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46:
vlan 30, p 0, ethertype ARP (0x0806), Request who-has 192.168.30.1 tell 192.168.30.15Diese Zeile ist die Feldtabelle von oben, auf der Leitung eingefangen:
ethertype 802.1Q (0x8100): die TPID, der feste Wert, der den Frame als getaggt kennzeichnet.vlan 30: die VID, 12 Bit, die Hallennummer.p 0: die PCP, 3 Bit, Priorität null, gewöhnlicher Verkehr.ethertype ARP (0x0806): das eigentliche Typfeld, jetzt hinter dem Tag. Hier sehen Sie, dass der Tag eingefügt wurde.
Falle 2: Auf dem Rückweg wird der Tag entfernt
Mit korrigiertem Filter zeigte sich ein zweites, interessanteres Problem. Der ausgehende Frame war getaggt, die Antwort des Switches 1,1 Millisekunden später kam aber ungetaggt:
17:14:44.396425 00:0c:29:a0:71:9a > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 46: vlan 30, p 0, ethertype ARP (0x0806), Request who-has 192.168.30.1 tell 192.168.30.15
17:14:44.397569 f4:8e:38:1b:18:4d > 00:0c:29:a0:71:9a, ethertype ARP (0x0806), length 60: Reply 192.168.30.1 is-at f4:8e:38:1b:18:4dDie beiden Zeilen unterscheiden sich in einem Feld: In der zweiten fehlt 802.1Q. Die Antwort kam aus VLAN 30, der Switch schickte sie getaggt über den Trunk, doch bei der VM war der Tag verschwunden. Das Ergebnis ließ sich direkt messen: Die Nachbartabelle des getaggten Interfaces blieb leer.
192.168.30.1 INCOMPLETEDie Antwort kam an und steht im Mitschnitt, aber ens33.30 erkannte sie nicht als die eigene, weil darauf nicht mehr VLAN 30 stand. Ein ungetaggter Frame wurde dem ungetaggten Interface zugestellt, wo nichts auf ihn wartete.
Die Lehre für die Praxis: Ein VLAN-Pfad kann nur in eine Richtung funktionieren. Zu sehen, dass Verkehr hinausgeht, und „Tagging läuft“ zu erklären, genügt nicht; der Rückweg muss den Tag ebenfalls behalten, und das sehen Sie nur, wenn beide Richtungen im selben Mitschnitt stehen. Für beidseitige Tests mit Tags ist ein physisches Gerät direkt am Switch die sicherere Wahl als eine VM hinter einer Bridge.
Was Segmentierung still kaputt macht: ein Zeitserver, der ins Leere lief
Ein Host, der in ein neues VLAN wandert, verliert nicht nur Erreichbarkeit. Er verliert still jede Abhängigkeit, die das flache Netz nebenbei erfüllt hatte, und meldet es selten. Dasselbe Labor lieferte ein sauberes Beispiel, das im türkischen Original dieses Artikels nicht vorkommt.
Die Linux-VM im Labor ist zugleich der Zeitserver des Labors. Als der Bridge-Port sie auf eine Insel setzte, riss die Abhängigkeitskette Glied für Glied, und jedes Glied wurde gemessen:
- Die Maschine konnte die Hardware-Adressen ihres Routers und des DNS-Servers
192.168.1.10nicht mehr auflösen; die ARP-Einträge wurden nie vollständig. - Ohne DNS ließen sich die per Hostname konfigurierten NTP-Server nicht auflösen.
- Ohne auflösbare Server war chronys Quellenliste leer.
- chrony fiel auf seine lokale Referenz zurück und lieferte weiter Zeit mit Stratum 10, ohne einen Fehler, den jemand gesehen hätte.
Beunruhigend ist die letzte Zeile: Die Uhr ging weiterhin richtig, innerhalb etwa einer Sekunde zum Host, weil der Hypervisor sie auf Kurs hielt. Nichts sah kaputt aus. Ein Zeitserver ohne vorgelagerte Quelle beantwortete weiter Anfragen, und sein einziges Symptom war eine leere Liste, die niemand prüft, der nicht danach sucht.
Genau das heißt „flache Netze verstecken Abhängigkeiten“. Prüfen Sie vor und nach dem Umzug eines Servers in ein neues VLAN, was er bisher umsonst bekam:
- Gateway und DNS auf Schicht 2: Hat die ARP-Tabelle vollständige Einträge für Standard-Gateway und DNS-Server?
- Namensauflösung: Lösen sich die Hostnamen in seiner Konfiguration noch auf?
- Zeit: Zeigt
chronyc sources(unter Windowsw32tm /query /status) eine echte Quelle und keinen lokalen Rückfall? - Adressvergabe: Hängt das VLAN an DHCP, gibt es ein Relay zum DHCP-Server?
VLAN-Fehlersuche: Link da, Gerät da, trotzdem nicht erreichbar
VLAN-Fehler haben eine gemeinsame Signatur: Alles sieht richtig aus. Kabel steckt, LED leuchtet, Subnetz stimmt, Gateway ist gesetzt. Trotzdem ist das Gerät nicht erreichbar. Ping allein sagt hier nichts, denn ein stummer Ping hat Dutzende möglicher Ursachen. Auf der Messe ist der Besucher im Gebäude, läuft durch den Gang, alle sehen ihn. Aber die Halle, zu der er will, öffnet sich nicht. Das Problem ist nicht das Gebäude, sondern das Schild.
Aussagekräftig ist die ARP-Tabelle. Drei Einträge derselben VM, drei Ziele im scheinbar selben Adressblock:
192.168.1.2 lladdr f4:8e:38:1b:18:4d STALE
192.168.30.1 FAILED
192.168.1.1 FAILED| Ziel | ARP-Status | Ping | Diagnose |
|---|---|---|---|
192.168.1.2 | Aufgelöst | Funktioniert | Selbes VLAN, kein Problem |
192.168.30.1 | FAILED | Scheitert | Anfrage geht raus, Antwort kommt nicht an. Einbahnpfad |
192.168.1.1 | FAILED | Scheitert | Andere Broadcast-Domäne; Ziel ist gar nicht in diesem VLAN |
Die zweite und dritte Zeile sehen von außen gleich aus: Ping scheitert, ARP scheitert. Die Ursachen sind völlig verschieden, und nur ein Mitschnitt trennt sie. Im zweiten Fall gibt es eine Antwort auf der Leitung, die die Maschine nicht erkannt hat; im dritten gibt es gar keine, weil die Frage die Broadcast-Domäne des Ziels nie erreicht hat. Daraus folgt eine praktische Reihenfolge:
- Erst die ARP-Tabelle, nicht Ping. Entsteht kein Eintrag, liegt das Problem auf Schicht 2, und die Suche in Routing, Firewall oder Diensten ist verlorene Zeit.
- Dann die MAC-Tabelle des Switches. Erscheint die MAC des Geräts im erwarteten VLAN? Wenn nicht, stimmt Port-Modus oder Tagging nicht; erscheint sie im falschen, prüfen Sie das Native VLAN.
- Zuletzt mitschneiden, und zwar ohne Filter. Wenn Sie filtern müssen, stellen Sie sicher, dass der Filter keine getaggten Frames verwirft.
Warum Inter-VLAN-Routing einen Router braucht
Zwei Geräte in verschiedenen VLANs erreichen sich nicht direkt, auch nicht am selben Switch; dazwischen muss etwas auf Schicht 3 sitzen. Das ist keine Einschränkung, sondern das Wesen eines VLANs. Ein Switch leitet nach MAC-Adresse weiter und sucht sie innerhalb des VLANs: Jeder Eintrag der MAC-Tabelle trägt eine VLAN-Nummer, wie die Tabelle oben zeigt. Für einen Frame in VLAN 5 werden die Einträge von VLAN 30 nie herangezogen.
Drei Aufbauten übernehmen die Aufgabe:
- Router-on-a-Stick: ein Trunk zu einem Router, ein Subinterface pro VLAN. Verbreitet in kleinen Umgebungen, aber der gesamte Inter-VLAN-Verkehr teilt sich diese eine Leitung.
- Layer-3-Switch: Der Switch routet selbst, mit einem virtuellen Interface pro VLAN. Schnell, weil der Verkehr das Gerät nicht verlässt.
- Firewall: die Wahl, wenn der Verkehr zwischen VLANs gegen Regeln geprüft werden soll. Nicht langsam, sondern bewusst neugierig.
Jedes VLAN braucht seinen eigenen Adressbereich, und diese dürfen sich nicht überlappen.
Eine Verkehrsart braucht an der VLAN-Grenze eine Sonderbehandlung: die Adressvergabe. Ein Gerät, das eine IP-Adresse anfordert, sendet einen Broadcast, der an der VLAN-Grenze endet; ein DHCP-Server in einem anderen VLAN hört ihn nie. Die Standardlösung ist ein DHCP-Relay auf dem Router oder Layer-3-Switch, das die Anfrage als gewöhnlichen Unicast weiterreicht.
VLAN-Sicherheit: Native-VLAN-Risiko und VLAN Hopping
VLANs werden als Sicherheitsmechanismus eingesetzt, bieten aber keine kryptografische Garantie: Der Tag ist eine unbeglaubigte Markierung. Es gibt eine Tür, die Schilder prüft, aber das Schild selbst ist nicht signiert. Aus dieser Lücke wachsen zwei Angriffe, beide über das Native VLAN.
Double Tagging. Der Angreifer setzt zwei Tags auf einen Frame. Der äußere ist sein eigenes Native VLAN, der innere das Ziel-VLAN. Der erste Switch entfernt den äußeren Tag nach der Regel, dass Native-VLAN-Verkehr ungetaggt über Trunks geht, und schickt den Frame weiter. Der zweite Switch liest den verbliebenen inneren Tag und stellt den Frame im Ziel-VLAN zu. Keine Tür wurde aufgebrochen; die eigene Hausordnung wurde genutzt. Der Angriff funktioniert nur in eine Richtung, aber eine Richtung genügt, um etwa einen Neustartbefehl zu senden.
Switch Spoofing. Auf manchen Switches werden Ports automatisch zu Trunks, wenn sich die Gegenseite als Switch ausgibt. Der Angreifer tut genau das, der Port wird Trunk, und ab dann kommt der Verkehr jedes VLANs bei ihm an. Auf der Messe hieße das, am Empfang „ich gehöre zum Personal“ zu sagen. Prüft der Empfang nicht, bekommt der Besucher nicht das Schild einer Halle, sondern den Schlüssel zum Gang, den alle Hallen teilen.
Drei Maßnahmen schließen beide Angriffe:
- Native VLAN auf eine ungenutzte Nummer legen. Hängt nichts daran, führt der Schritt „äußeren Tag entfernen“, auf dem Double Tagging beruht, ins Nichts.
- Trunks von Hand festlegen. Automatische Trunk-Aushandlung abschalten; ein Port wird nur Trunk, weil Sie es so konfiguriert haben.
- Benutzerports auf Access festnageln und nur das nötige VLAN erlauben. Es gibt keinen legitimen Grund, warum eine Dose am Schreibtisch mehr als ein VLAN sehen sollte.
Die skalierbare Antwort auf „wer weist welchem Port welches VLAN zu“ läuft über Authentifizierung: Ein Gerät weist beim Verbinden seine Identität nach und bekommt sein VLAN entsprechend zugewiesen (802.1X mit einem RADIUS-Server). Der Vorteil: Niemand muss den Portplan von Hand aktuell halten.
Am Provider-Übergang: Access oder Trunk?
Auf der Leitung zu Ihrem Provider kostet der Unterschied zwischen Access und Trunk mehr als im eigenen Netz, denn eine Korrektur bedeutet, auf das Wartungsfenster der Gegenseite zu warten.
Was ich in der Zusammenarbeit mit Providern in Rechenzentren gelernt habe: Solange Ihre Topologie nicht wirklich groß und komplex ist, verlangen Sie vom Router des Providers ein Access-VLAN. Diese Leitung transportiert Verkehr zwischen Ihnen und dem Provider, und Komplexität an dieser Grenze bringt nichts. Der Provider liefert ungetaggten Verkehr, Sie stecken ihn in einen Port Ihres Geräts, fertig. Im eigenen Netz bauen Sie Access- und Trunk-Konfigurationen selbst, und dort haben Sie die Komplexität im Griff: Ein Fehler, und Sie verbinden sich mit Ihrem Gerät und nehmen ihn zurück, ohne Termin.
Die entscheidende Frage ist betrieblich, nicht technisch: Wer repariert diesen Port, wenn er ausfällt? Sind nicht Sie es, halten Sie ihn so einfach wie möglich. Einen Trunk vom Provider zu nehmen lohnt sich nur, wenn Sie über dieselbe physische Verbindung wirklich mehrere Dienste beziehen.
Fazit: ein kleiner Tag mit großen Folgen
Das ganze VLAN beruht auf einem 4-Byte-Tag, der mitten in einen Frame geschoben wird. Zwölf seiner Bits sagen, zu welcher Halle Sie gehören; der Rest trägt Priorität und kennzeichnet den Tag. Die Einfachheit täuscht: Dieses kleine Feld lässt einen Switch Dutzende Netze beherbergen, die sich nie hören.
Das Labor hat vier Dinge gemessen, und sie zeigen in dieselbe Richtung. Dieselbe MAC-Adresse erschien an einem Port in zwei VLANs, weil der Switch nach dem Tag entscheidet, nicht nach der MAC. Der Tag war in Mitschnitten aus zwei Gründen unsichtbar, die nichts mit VLANs und alles mit dem Messwerkzeug zu tun hatten. Ein VLAN-Pfad funktionierte nur in eine Richtung, also ist „Verkehr geht raus“ nicht dasselbe wie „Verbindung steht“. Und ein Server auf eigenem Segment lief still auf einem Rückfall weiter, weil die Abhängigkeiten fehlten, die das flache Netz umsonst geliefert hatte.
Eine Gewohnheit spart bei VLAN-Fehlern am meisten Zeit: Schauen Sie in die ARP-Tabelle, nicht auf Ping. Wird Ping stumm, ist die Liste der Ursachen lang; wird ARP stumm, liegt das Problem auf Schicht 2, und die Suche wird sofort enger.
Fragen zu VLANs
Dieser Artikel ist eine Adaption eines Leitfadens, den der Autor zuerst auf Türkisch auf sercebilisim.com veröffentlicht hat: VLAN Nedir? 802.1Q Etiketi, Access ve Trunk Farkı
Geschrieben von
İlker PehlivanNetzwerk- und Systemadministrator, Gründer von Serçe Bilişim
Ich betreue die Netzwerke und Server, von denen die Arbeit anderer Menschen abhängt. Vor der Gründung meiner eigenen Beratung habe ich das Backbone-Netz, die Firewalls und die Kernsysteme einer großen Organisation mit vielen Standorten und mehreren tausend Nutzern administriert. Ich schreibe über das, was tatsächlich ausgefallen ist.
Auf dieser Seite
Teil dieses Leitfadens
Netzwerksegmentierung: VLANs, Schichten und Zugang