VLAN – oder wie 802.1Q die Welt verwirrt…

Begriffe der VLAN-Technik

Dieser Beitrag sollte eigentlich „PVID und PPVID / VID / native VLAN und untagged VLAN / C-Tag und S-Tag“ heißen. Daran sieht man schon, wie ein zu lasch formulierter Standard zu einem Wildwuchs an Begriffen bei den Herstellern führt. Leider hat es die IEEE in ihrem Standard 802.1Q versäumt alle Begrifflichkeiten fest zu bestimmen.

 

Access- / Trunk- / Hybrid-Port

  • Access-Port
    • es wird nur eine VLAN-ID definiert
    • untagged egress wie ingress (PVID = Native-VLAN)
  • Trunk-Port
    • es können mehrere tagged VLAN-IDs definiert werden (egress und ingress)
    • PVID kann ingress untagged sein (PVID = egress Native-VLAN)
      • PVID kann ingress aber auch tagged sein (PVID = egress tagged VLAN-ID)
    • optional: es muss nur die PVID konfiguriert werden (kein Native-VLAN)
  • Hybrid-Port
    • es können mehrere tagged VLAN-IDs definiert werden (egress und ingress)
    • PVID muss ingress untagged sein (PVID = egress Native-VLAN)
      • es können egress untagged mehrere VLAN-IDs für asymmetrischen VLAN-Szenarien, siehe Annex F, IEEE 802.1Q, definiert werden
    • optional: es können mehrere PPVIDs konfiguriert werden (ingress untagged)
    • optional: es muss nur die PVID konfiguriert werden (kein Native-VLAN)

 


 

C-Tag und S-Tag

Der, der VLAN-Technik zugrunde liegende IEEE -Standard 802.1Q nennt sich „IEEE Standard for Local and Metropolitan Area Networks — Bridges and Bridged Networks“. Daraus ergibt sich die Unterscheidung zwischen Local Area Networks (LAN) und Metropolitan Area Networks (MAN).

Die Bezeichnungen:

  • C-Tag (Customer = LAN)
  • S-Tag (Service = MAN)

Service-Tags oder S-Tags werden in MAN-Umgebungen gebraucht, wo Customer-VLANs (mit C-Tag) über die Infrastruktur eines Service-Providers übertragen werden. Dieses auch Q-in-Q-Tagging genannte Verfahren wird z. B. genutzt, um Standorte innerhalb einer MAN-Umgebung anzubinden. Der äußere S-Tag wird innerhalb des MAN-Netzes zum Forwarding genutzt, der innere C-Tag innerhalb der LAN-Umgebung des Kunden. Die beiden Verfahren haben auch je einen unterschiedlichen EtherType:

  • C-Tag = 0x8100
  • S-Tag = 0x88a8 (alt 0x9100)

Wird nicht mit MAN-Netzen oder Service-Providern gearbeitet, bezieht sich C-Tag immer auf den „normalen“ LAN-internen VLAN-Typ (0x8100).

 


 

PVID und PPVID

Die PVID und PPVID beziehen sich immer auf die Klassifizierung von ingress untagged Frames!

  • PVID = Port VLAN-ID (i. d. R. untagged ingress [implementationsabhängig auch tagged ingress möglich])
  • PPVID = Port and Protocol VLAN-ID (untagged ingress)

Die PVID wird für alle VLAN-fähige Geräte vom 802.1Q-Standard vorgeschrieben. Die PVID klassifiziert i. d. R. Frames ohne VLAN-Tag mit der entsprechend definierten PVID-VID des Ports. Welchem VLAN werden also z. B. die Frames eines VLAN-unaware Gerätes zugewiesen.

Implementationsabhängig kann bei Trunk-Ports eine PVID auch für eingehende (ingress) Frames mit Tag gesetzt werden. Dies entspricht aber nicht dem normalen Verhalten, da der Standard jedoch eine PVID zwingend vorschreibt (jedoch nicht definiert, dass ausschließlich untagged Frames damit gemeint sind), kommen die Hersteller so ihrer PVID-Pflicht nach (IEEE 802.1Q, 6.9, d).

Native VLAN (hier PVID) = ingress tagged

 

6.9 Support of the EISS
[…]
Each Bridge Port shall support the following parameters for use by these functions:
[…]
d) A PVID parameter for Port-based VLAN classification – Quelle: IEEE 802.1Q

 

Optional ist die Funktion der PPVID, also der Kombination aus Port und Protokoll (EtherType). Wird ein Frame ohne VLAN-Tag aber mit dem definierten Protokoll empfangen, wird die entsprechende PPVID zugewiesen.

 

6.9 Support of the EISS
[…]
Each Bridge Port may support the following parameters:
e) A VID Set for Port-and-Protocol-based classification (6.12)
[…] – Quelle: IEEE 802.1Q

 


 

VID

  • VID = VLAN Identifier

Die VLAN-ID ist 12 Bit lang. Dies entspricht 4096 [2^12] VLAN-IDs.
Genau sind (implementationsabhängig maximal) 2^12 – 2 = 4094 frei konfigurierbare VLAN-IDs.

VLAN-ID im TCI (Tag Control Information) Feld
LSB (Least-Significant Bit) First
Quelle: IEEE 802.1Q

VLAN-ID 0 und 4095 (4096 bei Zählweise ab 1) sind reserviert:

Quelle: IEEE 802.1Q

 


 

Native-VLAN und Untagged VLAN

Den Begriff des „Native-VLAN“ kennt 802.1Q nicht.
Mit dem Begriff wird jedoch oft* jenes VLAN beschrieben, welches auf einem Trunk- oder Hybrid-Port untagged (egress) gesendet wird. In der Regel entspricht die Native-VLAN-ID der PVID.

In Szenarien mit asymmetrischen VLANs gibt es mehrere VLAN-IDs die untagged (egress) übertragen werden, hierbei spricht man aber nicht mehr von „Native-VLANs“.

Hier finden sich in IEEE 802.1Q folgende Aussagen:

5.4 VLAN Bridge component requirements
[…]
m) Support the following on each Port that supports untagged and priority-tagged frames:
[…]
2) Configuration of at least one VID whose untagged set includes that Port (8.8.2)
[…] – Quelle: IEEE 802.1Q

 

Unter Punkt 8.8.2 wird noch detaillierter beschrieben:

8.8.2 Static VLAN Registration Entries
[…]
A separate Static VLAN Registration Entry with a distinct Port Map may be created for each VID. All Bridges shall be capable of supporting all values for each control element for all Static VLAN Registration Entries; however, the ability to support more than one untagged VID on egress on any given Port is optional (see 5.4).

NOTE 1 — In other words, it is possible to configure any VID as untagged on egress, but it is not necessarily possible to configure more than one VID as untagged on egress. It is an implementation option about whether only a single untagged VID per Port on egress is supported or whether multiple untagged VIDs per Port on egress are supported. When a single untagged VID per Port is supported, that VID is not necessarily the same as the PVID. – Quelle: IEEE 802.1Q

 

Ebenso kennt der Standard kein „Utagged VLAN“ oder „UVID“. Implementationsabhängig ist hier ebenfalls das gemeint, was gemeinhin unter „Native-VLAN“ bekannt ist.

 


 

SVL – IVL – SVL/IVL

SVL = Shared VLAN Learning (A type of Bridge that supports only SVL)

MAC-Adressen die in einem VLAN (VID) gelernt werden, stehen allen (weiteren) VIDs zur Verfügung (ein gemeinsamer FID).
Wird für asymmetrischen VLAN-Szenarien, nach Annex F, IEEE 802.1Q, benötigt!

 

IVL = Independent VLAN Learning (A Bridge that supports only IVL)

MAC-Adressen die in einem VLAN (VID) gelernt werden, stehen nur dieser VID zur Verfügung (pro VID ein eigener FID).
Wird für identische MAC-Adressen die in unterschiedlichen VLANs vorkommen benötigt!

 

SVL/IVL = Shared VLAN Learning / Independent VLAN Learning (A type of Bridge that simultaneously supports both SVL and IVL)

MAC-Adressen die in einem VLAN (VID) gelernet werden, stehen zeitgleich entweder einer Gruppe von VIDs (gemeinsamer FID) zur Verfügung oder nur der eigenen VID (pro VID ein eigener FID). Dies kann bei entsprechenden Bridges entweder administrativ konfiguriert werden oder ergibt sich aus dem – implementationsabhängigen – Verhalten der jeweiligen Bridge.

 

Andere Begriffe die oft synonym verwendet werden:

  • FDB = Filtering Database
  • FID = Filtering Database Identifier innerhalb der FDB
  • SAT = Source Address Table = FDB
  • CAM-Table = Content-Addressable Memory (FDB bzw. die verwendete Speicherart der FDB)
  • MAC-Table = FDB
  • FIB = Forwarding Information Base = FDB

 


 

Zusammenfassung

 

  • Access-Port = 1 untagged VLAN-ID (PVID = UVID)
  • Trunk = mehrere tagged VLAN-IDs / 1 untagged VLAN-ID optional möglich (PVID = UVID)
  • Hybrid = mehrere tagged VLAN-IDs / mehrere untagged VLAN-IDs möglich (1x PVID + PPVIDs / UVIDs)

 

  • C-Tag = Customer-Tag (LAN-interner VLAN-Tag bzw. EtherType)
  • S-Tag = Service-Tag (MAN-internen VLAN-Tag bzw. EtherType)

 

  • PVID = klassifiziert untagged (ingress) Frames
  • PPVID = klassifiziert untagged (ingress) Frames zusätzlich in Abhängigkeit vom Protokoll (EtherType)

 

  • VID = 12^2 Bit langer VLAN-Identifier eines IEEE 802.1Q-Frames
  • VLAN-ID = siehe „VID“

 

  • Native-VLAN = welche VLAN-ID wird untagged (egress) übermittelt
  • Untagged VLAN = siehe „Native-VLAN“
  • UVID = siehe „Native-VLAN“

 

  • SVL = Shared VLAN Learning (ein FID für alle VIDs)
  • IVL = Independent VLAN Learning (ein FID pro VID)
  • SVL/IVL = Shared VLAN Learning / Independent VLAN Learning (gleichzeitig ein FID für mehrere VIDs und mehrere FIDs für andere VIDs)

 


 

Kurioses…

Begriffsschöpfungen von Herstellern:

  • PVID = untagged ingress
  • UVID = untagged egress
  • 4096 = da einzig eine untagged VLAN-ID übetragen wird, wird hier „4096“ als Wildcard ausgegeben, nur bei Trunks wird das korrekte „Native VLAN“ angezeigt

 

* Ein weiteres schönes Beispiel, hier wird die Bedeutung des „Nativ VLANs“ verdreht:

  • Native-VLAN = PVID (untagged ingress)
  • Untagged VLAN = das (normalerweise) Native VLAN (untagged egress)

 

Ein Blick in die CLI verrät, dass das „Native VLAN“ in der GUI doch die „PVID“ ist:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert