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.
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).
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.
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.
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.
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.
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).
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).
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.
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).
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.
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.
4. Beide untagged Ethernet Frames werden vom Shared Ethernet Adapter ent42 über den physikalischen Adapter ent2 an das externe Netzwerk weitergeleitet (Bild 8.7d).
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.
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.
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
$
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.
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.
Du muss angemeldet sein, um einen Kommentar zu veröffentlichen.