8.5.2. SEA mit VLAN-Tagging

Werden VLANs verwendet, das dürfte der Standard sein, gibt es mehrere Möglichkeiten wie ein Shared Ethernet Adapter genau aussehen kann. Ein Trunking-Adapter unterstützt bis zu 20 VLANs neben der Port-VLAN-ID. Erst wenn mehr als 20 VLANs verwendet werden sollen, müssen zusätzliche Trunking-Adapter verwendet werden. Ein SEA kann bis zu 16 Trunking-Adapter besitzen. Wieviele Trunking-Adapter letztlich verwendet werden, hängt vom Administrator und der Anzahl der zu unterstützenden VLANs ab. Sollen z.B. 10 VLANs verwendet werden, können zwischen einem und zehn Trunking-Adapter verwendet werden. In der Praxis wird typischerweise eine kleinere Anzahl von VLANs auf einzelne Trunking-Adapter konfiguriert (typischerweise 3 bis 6 VLANs), das hängt aber stark von der Umgebung ab und soll hier nicht weiter betrachtet werden.

Jeder Shared Ethernet Adapter unterstützt maximal ein VLAN untagged. Typischerweise werden aber alle benötigten VLANs als tagged VLANs verwendet und für die notwendigen Port-VLAN-IDs der Trunking-Adapter werden unbenutzte VLANs verwendet. In vielen Umgebungen werden dafür einstellige und niedrige zweistellige VLAN-IDs reserviert, die dann nicht für VLANs verwendet werden.

Im folgenden wird ein weiterer Shared Ethernet Adapter angelegt, dieses Mal mit VLAN-Tagging und den VLANs 100, 110, 200, 205 und 210. Es sollen 2 Trunking-Adapter angelegt werden, einer mit den VLANs 100 und 110 und der zweite mit den VLANs 200, 205 und 210. Zunächst wird aber ein weiterer virtueller Switch für den neuen Shared Ethernet Adapter angelegt:

$ ms addvswitch ms05 ETHTEST2
$

Für die beiden Trunking-Adapter verwenden wir die beiden freien virtuellen Slots 61 und 62:

$ lpar addeth -t 1 -i -s ETHTEST2 ms05-vio1 61 1 100,110 
$ lpar addeth -t 1 -i -s ETHTEST2 ms05-vio1 62 2 200,205,210
$

Zur Kontrolle sind hier noch einmal die Kandidaten für einen weiteren SEA aufgelistet:

$ vios lssea -c ms05-vio1
NAME   STATUS     PHYSLOC                      PARENT  DESCRIPTION
ent3   Available  U78AA.001.VYRGU0Q-P1-C7-T4   pci1    4-Port Gigabit Ethernet PCI-Express Adapter (e414571614102004)
ent2   Available  U78AA.001.VYRGU0Q-P1-C7-T3   pci1    4-Port Gigabit Ethernet PCI-Express Adapter (e414571614102004)
ent39  Available  U8205.E6C.05E4E5Q-V1-C61-T1  vio0    Virtual I/O Ethernet Adapter (l-lan)
ent41  Available  U8205.E6C.05E4E5Q-V1-C62-T1  vio0    Virtual I/O Ethernet Adapter (l-lan)
$

Als physikalischen Adapter verwenden wir ent2 und als Trunking-Adapter die beiden gerade angelegten Adapter ent39 (Slot 61) und ent41 (Slot 62):

$ vios mksea ms05-vio1 ent2 ent39 ent41
SEA ent42 created
$

Anstelle der Gerätenamen kann auch der Physical Location Code (bzw. ein eindeutiger Suffix) angegeben werden:

$ vios mksea ms05-vio1 P1-C7-T3 C61-T1 C62-T1
SEA ent42 created
$

Alle Adapter eines SEAs lassen sich wie bisher mittels „vios lssea“ anzeigen:

$ vios lssea -a ms05-vio1 ent42
SEA    LNAGG  NAME   TYPE     STATUS  SPEED    VSWITCH   MODE  PHYSLOC
ent42  -      ent2   real     Up      1000 Mbps Full Duplex  -         -     U78AA.001.VYRGU0Q-P1-C7-T3
ent42  -      ent41  virtual  -       -        ETHTEST2  VEB   U8205.E6C.05E4E5Q-V1-C62-T1
ent42  -      ent39  virtual  -       -        ETHTEST2  VEB   U8205.E6C.05E4E5Q-V1-C61-T1
$

Die Verteilung der unterstützten VLANs des SEAs lässt sich mit der Option ‚-V‘ (VLANs) auflisten:

$ vios lssea -V ms05-vio1 ent42
SEA    LNAGG  NAME   TYPE     VSWITCH   MODE  ACTIVE  PRIORITY  PVID  VLAN_TAG_IDS
ent42  -      ent2   real     -         -     -       -         -     -
ent42  -      ent41  virtual  ETHTEST2  VEB   True    1         2     200,205,210
ent42  -      ent39  virtual  ETHTEST2  VEB   True    1         1     100,110
$

In Bild 8.4 ist der erzeugte Shared Ethernet Adapter dargestellt.

SEA with 2 trunking adapters and 5 VLANs.
Bild 8.4: SEA mit 2 Trunking Adaptern und 5 VLANs.

Im Folgenden wird der Weg eines Ethernet Frames von einer LPAR mit PVID 110 zu einem externen Host in einzelnen Schritten dargestellt:

1. Die LPAR versendet ein untagged Ethernet Frame über den virtuellen Ethernet Adapter ent0 (Bild 8.5a).

LPAR with PVID 110 sends Ethernet frames via the virtual Ethernet adapter ent0.
Bild 8.5a: LPAR mit PVID 110 versendet Ethernet Frames über den virtuellen Ethernet Adapter ent0.

2. Das Ethernet Frame wird an den angebundenen virtuellen Switch ETHTEST2 weitergeleitet und dort mit einem VLAN-Header versehen (Bild 8.5b). Die VLAN-ID ist die PVID des virtuellen Ethernet Adapters.

The Ethernet frame is passed on to the virtual switch ETHTEST2 and is tagged there with the VLAN ID 110 (PVID).
Bild 8.5b: Das Ethernet Frame wird an den virtuellen Switch ETHTEST2 weitergegeben und dort mit der VLAN-ID 110 (PVID) getagged.

3. Da das Ziel nicht direkt am virtuellen Ethernet Switch ETHTEST2 angebunden ist, verwendet der virtuelle Ethernet Switch ETHTEST2 den Trunking-Adapter für das VLAN 110 um den Frame weiterzuleiten. Der Trunking-Adapter für das VLAN 110 ist der Adapter ent39 (Bild 8.5c), der zum Shared Ethernet Adapter ent42 des dargestellten Virtual-I/O-Server gehört.

The Ethernet frame is forwarded from the virtual switch ETHTEST2 via the trunking adapter ent39 for the VLAN 110 to the SEA ent42.
Bild 8.5c: Das Ethernet Frame wird vom virtuellen Switch ETHTEST2 über den Trunking Adapter ent39 für das VLAN 110 an den SEA ent42 weitergeleitet.

4. Bild 8.5d zeigt schließlich wie der Shared Ethernet Adapter ent42 den Ethernet Frame über seinen physikalischen Adapter ent2 ins externe Netzwerk weiterleitet. Das Ethernet Frame ist immer noch mit der VLAN-ID 110 versehen. Die Switches im externen Netzwerk leiten dann das Ethernet Frame zum Zielsystem weiter. Im Bild ist angenommen das das Ziel-System selbst VLAN-Tagging unterstützt und das Frame mit VLAN-Header zugesendet bekommt, es ist aber auch möglich das das Ziel-System einen ungetaggten Port mit der PVID 110 verwendet und damit das Frame ohne VLAN-Header bekommt.

The SEA ent42 sends the Ethernet frame to the external network via the physical adapter ent2. There, it is forwarded to the target system.
Bild 8.5d: Der SEA ent42 sendet den Ethernet Frame über den physikalischen Adapter ent2 ins externe Netzwerk. Dort wird er dann an das Ziel-System weitergeleitet.

Nachfolgend sind die Schritte beim Transport eines Ethernet Frames von einem externen Host zu einer LPAR dargestellt:

1. Ein externer Host versendet ein Ethernet Frame in das VLAN 110 an eine LPAR (Bild 8.6a). Das Ethernet Frame wurde entweder vom externen Host selbst mit einem VLAN-Header versehen, oder der VLAN-Header wurde vom angebundenen Netzwerk-Switch in das Ethernet Frame eingefügt.

An external host sends an Ethernet frame into the connected network.
Bild 8.6a: Ein externer Host sendet ein Ethernet Frame ins angebundene Netzwerk.

2. Das Ethernet Frame wird in Richtung Ziel-LPAR an den physikalischen Adapter ent2 des Virtual-I/O-Servers weitergeleitet, der Bestandteil des Shared Ethernet Adapters ent42 auf dem Virtual-I/O-Server ist (Bild 8.6b).

The Ethernet frame is forwarded from the external switches to the physical adapter ent2 of the managed system. This is part of the SEA ent42 on a virtual I/O server.
Bild 8.6b: Das Ethernet Frame wird von den externen Switches an den physikalischen Adapter ent2 des Managed Systems weitergeleitet. Dieser ist Teil des SEAs ent42 auf einem Virtual-I/O-Server.

3. Der Shared Ethernet Adapter ent42 wählt den Trunking-Adapter ent39 für das Weiterleiten des Ethernet Frames an den virtuellen Switch ETHTEST2 aus, da der Adapter ent39 das VLAN 110 unterstützt (Bild 8.6c).

Since the Ethernet frame has the VLAN ID 110, the SEA ent42 forwards the frame to the virtual switch ETHTEST2 via the trunking adapter ent39.
Bild 8.6c: Da der Ethernet Frame die VLAN-ID 110 hat, gibt der SEA ent42 den Frame über den Trunking-Adapter ent39 an den virtuellen Switch ETHTEST2 weiter.

4. Der virtuelle Ethernet Switch ETHTEST2 leitet den Ethernet Frame über den Ziel-Port an den Adapter ent0 der Ziel-LPAR weiter, Bild 8.6d. Da der virtuelle Adapter das VLAN 110 als Port-VLAN-ID besitzt, wird beim Transport des Frames der VLAN-Header entfernt. Der Adapter ent0 bekommt den Ethernet Frame als ungetaggtes Frame.

The virtual Ethernet switch ETHTEST2 forwards the Ethernet frame to the adapter of the target LPAR, the VLAN header is removed in the process.
Bild 8.6d: Der virtuelle Ethernet Switch ETHTEST2 leitet den Ethernet Frame an den Adapter der Ziel-LPAR weiter, dabei wird der VLAN-Header entfernt.

Eine besondere Situation ergibt sich wenn eine LPAR eine der PVIDs der Trunking-Adapter als VLAN-ID verwendet. Bei dem oben angelegten SEA haben die beiden Trunking-Adapter die PVIDs 1 und 2. Wir schauen im Folgenden 2 LPARs an, welche die VLAN-IDs 1 bzw 2 verwenden. Zunächst schauen wir wieder den Weg von der LPAR zum externen Host an:

1. Die LPARs versenden je ein untagged Ethernet Frame über den virtuellen Ethernet Adapter ent0 (Bild 8.7a).

LPAR1 with PVID 1 and LPAR2 with PVID 2 each send an Ethernet frame via the virtual Ethernet adapter ent0.
Bild 8.7a: LPAR1 mit PVID 1 und LPAR2 mit PVID 2 versenden jeweils ein Ethernet Frame über den virtuellen Ethernet Adapter ent0.

2. Die beiden Ethernet Frames werden an den angebundenen virtuellen Switch ETHTEST2 weitergeleitet und dort mit einem VLAN-Header versehen (Bild 8.7b). Der Frame von LPAR1 bekommt die VLAN-ID 1 und der Frame von LPAR2 bekommt die VLAN-ID 2 als VLAN-Header.

The Ethernet frames are passed on to the virtual switch ETHTEST2 and are tagged there, with VLAN ID 1 respectively 2.
Bild 8.7b: Die Ethernet Frames werden an den virtuellen Switch ETHTEST2 weitergegeben und dort mit der VLAN-ID 1 bzw. 2 getagged.

3. Das Frame von LPAR1 mit der VLAN-ID 1 wird vom virtuellen Switch über den zugehörigen Trunking-Adapter ent39 an den SEA ent42 weitergeleitet. Da das VLAN 1 die PVID des Trunking-Adapters ist, wird der VLAN-Header dabei entfernt (Bild 8.7c). Das Frame von LPAR2 mit der VLAN-ID 2 wird ebenfalls an den SEA ent42 weitergeleitet. Allerdings ist hier der zugehörige Trunking-Adapter der Adapter ent41. Auch hier wird der VLAN-Header entfernt, da das VLAN 2 die PVID des Trunking-Adapters ent41 ist. Beide Frames sind jetzt untagged! Zu welchem VLAN die beiden Ethernet Frames ursprünglich gehört haben, ist nicht mehr erkennbar.

The two Ethernet frames are forwarded from the virtual switch ETHTEST2 via the trunking adapters ent39 respectively ent41 to the SEA ent42. The VLAN headers are removed.
Bild 8.7c: Die beiden Ethernet Frames werden vom virtuellen Switch ETHTEST2 über die Trunking-Adapter ent39 bzw. ent41 an den SEA ent42 weitergeleitet. Dabei werden die VLAN-Header entfernt.

4. Beide untagged Ethernet Frames werden vom Shared Ethernet Adapter ent42 über den physikalischen Adapter ent2 an das externe Netzwerk weitergeleitet (Bild 8.7d).

The SEA ent42 sends the Ethernet frame to the external network via the physical adapter ent2. There, it is forwarded to the target system.
Bild 8.7d: Der SEA ent42 leitet beide untagged Ethernet Frames über den physikalischen Adapter ent2 an das externe Netzwerk weiter.

5. Ob die Zielsysteme tatsächlich erreichbar sind, hängt davon ab ob diese mit untagged Frames von ent2 aus erreichbar sind. Für den physikalischen Adapter ent2 dürfte auf dem zugehörigen Switch-Port eine Port-VLAN-ID konfiguriert sein. D.h. untagged Frames die von ent2 ins externe Netzwerk gesendet werden, werden dieser Port-VLAN-ID zugeordnet.

Interessant ist der Weg eines Frames vom externen Netzwerk zur Client-LPAR für den Fall das das Frame keinen VLAN-Header besitzt:

1. Ein Ethernet Frame ohne VLAN-Header wird vom externen Netzwerk an den physikalischen Adapter ent2 des Managed Systems weitergeleitet (Bild 8.8a). Der physikalische Adapter ent2 gehört zum Shared Ethernet Adapter ent42 auf dem gezeigten Virtual-I/O-Server.

The external network sends an Ethernet frame without a VLAN header to the physical adapter ent2, which belongs to the SEA ent42.
Bild 8.8a: Das externe Netzwerk sendet ein Ethernet Frame ohne VLAN-Header an den physikalischen Adapter ent2, welcher zum SEA ent42 gehört.

2. Der Shared Ethernet Adapter ent42 muß das Ethernet Frame weiterleiten. Allerdings ergibt sich hier das Problem das nicht klar ist welcher der beiden Trunking-Adapter zu verwenden ist. Das Ethernet Frame gehört zu keinem VLAN, da es untagged ist. Beide Trunking-Adapter ent39 und ent41 können prinzipiell untagged Frames weiterleiten. Wird der Frame über ent39 weitergeleitet, wird das Frame mit der PVID 1 von ent39 getaggt. Wird der Frame über ent41 weitergeleitet, wird der Frame mit der PVID 2 von ent41 getaggt. Je nachdem welcher Trunking-Adapter verwendet wird, würde der Frame also einem anderen VLAN zugeordnet! Bei einem SEA mit den maximal möglichen 16 Trunking-Adapters gäbe es dann schon 16 verschiedene Möglichkeiten.

From the point of view of the SEA ent42, there are 2 different possibilities for forwarding the Ethernet frame: via ent39 (PVID 1) or ent41 (PVID 2).
Bild 8.8b: Aus Sicht des SEAs ent42 gibt es 2 verschiedene Möglichkeiten den Ethernet Frame weiterzuleiten, über ent39 (PVID 1) oder ent41 (PVID 2).

3. Über welchen Trunking-Adapter untagged Ethernet Frames von einem Shared Ethernet Adapter weitergeleitet werden, ist in der Konfiguration des SEAs festgelegt. Das entsprechende Attribut heisst pvid_adapter. Es kann beim Anlegen eines SEAs mit „vios mksea“ optional angegeben werden. Per Default wird der erste angegebene Trunking-Adapter verwendet. Wie Bild 8.8c zeigt, ist bei dem Shared Ethernet Adapter ent42 der Trunking-Adapter ent39 im Attribut pvid_adapter hinterlegt. Daher wird das untagged Frame über ent39 an den virtuellen Switch ETHTEST2 weitergeleitet, wobei ein VLAN-Header mit der PVID 1 von ent39 hinzugefügt wird. Der Wert von pvid_adapter lässt sich über das Kommando „vios lsattr“ einfach anzeigen:

$ vios lsattr ms05-vio1 ent42 pvid_adapter
value
ent39
$
The pvid_adapter attribute of the SEA ent42 determines to which trunking adapter untagged frames are forwarded, here to ent39 with PVID 1. The frame is tagged with the PVID 1 of ent39.
Bild 8.8c: Das Attribut pvid_adapter des SEA ent42 bestimmt an welchen Trunking-Adapter untagged Frames gehen, hier an ent39 mit der PVID 1. Das Frame bekommt die PVID 1 von ent39 als VLAN-ID.

4. Der virtuelle Switch ETHTEST2 leitet den Ethernet Frame an LPAR1 weiter, da der Frame zum VLAN 1 gehört und der virtuelle Adapter ent0 von LPAR1 diese VLAN-ID als PVID konfiguriert hat. (Natürlich muß auch die Ziel MAC-Adresse mit der MAC-Adresse von ent0 LPAR1 übereinstimmen, aber davon gehen wir aus.) Der VLAN-Header wird bei der Weiterleitung entfernt.

The Ethernet frame is delivered to the destination, LPAR1. Since VLAN ID 1 is configured as the port VLAN ID of the virtual Ethernet adapter ent0, the VLAN header is removed.
Bild 8.8d: Der Ethernet Frame wird an das Ziel, LPAR1, zugestellt. Da die VLAN-ID 1 als Port-VLAN-ID des virtuellen Ethernet Adapters ent0 konfiguriert ist, wird der VLAN-Header entfernt.

Hinweis: Es ist nicht möglich LPAR2 (VLAN 2) von einem externen System aus zu erreichen. Jedes von extern kommende Ethernet Frame ohne VLAN-Header wird vom Shared Ethernet Adapter ent42 immer an den Trunking-Adapter ent39 weitergeleitet, da dieser über das Attribut pvid_adapter konfiguriert ist. Damit werden externe, nicht getaggte, Frames immer dem VLAN 1 zugeordnet, da das die PVID des Trunking-Adapters ent39 ist.

Best Practice ist für die PVIDs der Trunking-Adapter nicht benutzte VLAN-IDs zu verwenden. Alle VLANs, die von Client-LPARs verwendet werden, sollten als zusätzliche VLAN-IDs auf den Trunking-Adaptern konfiguriert sein.