Dieses Dokument enthält die Theorie zum VLAN-Lastenausgleich zwischen Trunks und enthält außerdem Konfigurationsbeispiele für Switches, auf denen CatOS und Integrated IOS ausgeführt werden.
Weitere Informationen zu Dokumentkonventionen finden Sie unter Cisco Technical Tips Conventions (Technische Tipps von Cisco zu Konventionen).
Es sind keine besonderen Voraussetzungen erforderlich, um den Inhalt dieses Dokuments nachzuvollziehen.
Dieses Dokument ist nicht auf bestimmte Software- und Hardware-Versionen beschränkt.
Die in diesem Dokument verwendeten Befehle sind für die Catalyst 4000-, 5000- und 6000-Familien verfügbar, auf denen CatOS und Integrated IOS ausgeführt werden. Die theoretischen Abschnitte dieses Dokuments beziehen sich auf Spanning Tree Protocol (STP) und sind plattformunabhängig.
Die Konfiguration in Abbildung 1 unten, bei der zwei Switches direkt über mehr als einen Trunk verbunden sind, ist aus Redundanzgründen sehr häufig. Wenn eine der beiden Verbindungen ausfällt, steht die zweite bald für die Datenübertragung zur Verfügung. Wenn beide Verbindungen aktiv sind, deaktiviert der Spanning-Tree-Algorithmus (STA) eine dieser Verbindungen, um eine Bridging-Schleife zwischen den beiden Switches zu vermeiden.
In der obigen Abbildung 1-Konfiguration wählt das STP bei zwei FastEthernet-Trunks, die Catalyst R und Catalyst D verbinden, denselben Blockierungsport für alle konfigurierten VLANs aus. In diesem Fall ist Catalyst R die Root Bridge, und Catalyst D beschließt, Port D2 für VLAN 1 und VLAN 2 zu blockieren. Das Hauptproblem bei diesem Design besteht darin, dass die Verbindung R2-D2 einfach aufgegeben wird und zwischen den beiden Switches nur 100 Mbit/s verfügbar sind. Um beide Verbindungen nutzen zu können, können Sie die Konfiguration ändern und VLAN 1 nur für die Verbindung R1-D1 und VLAN 2 nur für die Verbindung R2-D2 zulassen.
Das resultierende Netzwerk, wie in Abbildung 2 dargestellt, verlor seine Redundanz. Sie haben nun beide Verbindungen zur gleichen Zeit weiterleiten und können praktisch 200 Mbit/s zwischen den beiden Switches verwenden. Fällt jedoch eine Verbindung aus, gehen die Verbindungen für ein VLAN vollständig verloren. Die ideale Lösung ist in Abbildung 3 beschrieben:
In Abbildung 3 behalten Sie die Trunks zwischen den beiden Switches bei, Port D1 blockiert jedoch VLAN 1 und leitet VLAN 2 weiter. Port D2 blockiert VLAN 2 und leitet VLAN 1 weiter. Dieses Design bietet die besten Merkmale von Abbildung 1 und Abbildung 2:
Beide Verbindungen leiten die Daten weiter und bieten eine Gesamtverbindung von 200 Mbit/s zwischen den beiden Switches.
Wenn eine Verbindung ausfällt, heben die verbleibenden Verbindungen das entsprechende VLAN auf und gewährleisten die Konnektivität für beide VLANs zwischen den Switches.
In diesem Dokument wird erklärt, wie eine solche Konfiguration erreicht wird, nachdem die STP-Vorgänge kurz erläutert wurden.
Die detaillierte Beschreibung der Funktionsweise der STA geht über den Rahmen dieses Dokuments hinaus. Es fasst jedoch kurz zusammen, wie der Algorithmus in diesem Fall entscheidet, ob ein Port blockiert oder weiterleitet. Der Schwerpunkt liegt dabei auf der einfachsten Konfiguration, die mit nur einem VLAN möglich ist. Catalyst R ist die Root Bridge in diesem VLAN, und Catalyst D verfügt über mehrere redundante Verbindungen zu Catalyst R. Catalyst D blockiert alle seine Ports für Catalyst R, jedoch nur den Root-Port. Wie wählt Catalyst D seinen Root-Port aus? BPDUs (Bridges), auf denen die STA Bridge Protocol Data Units (BPDUs) über die Links ausgeführt werden, können streng nach ihrem Inhalt klassifiziert werden. Eine BPDU ist höher als eine andere, wenn sie über Folgendes verfügt:
Eine niedrigere Root Bridge-ID.
Niedrigere Pfadkosten für die Root.
Eine niedrigere Sending Bridge-ID.
Eine niedrigere Port-ID für das Senden.
Diese vier Parameter werden in der Reihenfolge überprüft, d. h. Parameter 2 ist nur wichtig, wenn Parameter 1 in den beiden BPDUs, die Sie vergleichen, identisch ist. Der Port, der für Catalyst D als Root-Port gewählt wird, ist der Port, der die beste BPDU empfängt.
In diesem speziellen Fall haben in Abbildung 4 alle BPDUs, die von Catalyst R gesendet werden, dieselbe Root Bridge-ID, dieselben Pfadkosten für die Root und dieselbe Sending Bridge-ID. Der einzige Parameter, über den der beste ausgewählt werden kann, ist die Port-ID des Senders. Die Port-ID für das Senden ist ein 16-Bit-Parameter, der in zwei Felder unterteilt ist: die Port-Priorität und ein Port-Index. Der Standardwert für die Port-Priorität ist 32, und der Port-Index ist für jeden Port auf dem Switch eindeutig.
Port-Priorität | Port-Index | |
---|---|---|
Größe in Bit | 6 | 10 |
Standardwert | 32 | Fester eindeutiger Wert |
Abbildung 4 stellt den Port-ID-Parameter in den BPDUs dar. In diesem Fall wählt Catalyst D Port D1 als Root-Port, da der Port-Index R2 niedriger ist als R1. Wenn D2 irgendwann weitergeleitet werden soll, muss es als Root-Port erzwungen werden. Die einzige Möglichkeit hierfür besteht darin, den R2-Port-Prioritätswert zu reduzieren (oder den R1-Port-Prioritätswert zu erhöhen). Dies wurde in Abbildung 5 getan.
Um einen Lastenausgleich zwischen zwei Trunks zu erreichen, stimmen Sie auf VLAN-Basis die Port-Priorität auf Catalyst R ein.
Hier ist der aktuelle STP-Status für Catalyst R. Es ist die Root für VLAN 1 und 2, daher werden alle Ports weitergeleitet.
Catalyst_R> (enable) show spantree 3/1 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/1 1 forwarding 19 32 disabled 0 3/1 2 forwarding 19 32 disabled 0 Catalyst_R> (enable) show spantree 3/2 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/2 1 forwarding 19 32 disabled 0 3/2 2 forwarding 19 32 disabled 0 Catalyst_R> (enable)
Auf Catalyst D wird Port 5/2 wie erwartet für beide VLANs 1 und 2 blockiert.
Catalyst_D> (enable) show spantree 5/1 Port Vlan Port-State Cost Priority Fast-Start Group-Method --------- ---- ------------- ----- -------- ---------- ------------ 5/1 1 forwarding 19 32 disabled 5/1 2 forwarding 19 32 disabled Catalyst_D> (enable) show spantree 5/2 Port Vlan Port-State Cost Priority Fast-Start Group-Method --------- ---- ------------- ----- -------- ---------- ------------ 5/2 1 blocking 19 32 disabled 5/2 2 blocking 19 32 disabled Catalyst_D> (enable)
Sie verringern den Wert für die Port-Priorität für VLAN 1 an Port 3/2. Auf diese Weise empfängt der entsprechende Port 5/2 auf Catalyst D bessere BPDUs als diejenigen, die an Port 5/1 gesendet werden (der noch immer einen Port-Prioritätswert von 32 aufweist).
Catalyst_R> (enable) set spantree portvlanpri 3/2 16 1 Port 3/2 vlans 1 using portpri 16. Port 3/2 vlans 2-1004 using portpri 32. Port 3/2 vlans 1005 using portpri 4. Catalyst_R> (enable)
Sie können überprüfen, ob sich der Wert für die Port-Priorität für VLAN 1 geändert hat:
Catalyst_R> (enable) show spantree 3/1 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/1 1 forwarding 19 32 disabled 0 3/1 2 forwarding 19 32 disabled 0 Catalyst_R> (enable) show spantree 3/2 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/2 1 forwarding 19 16 disabled 0 3/2 2 forwarding 19 32 disabled 0 Catalyst_R> (enable)
Wie Sie auf Catalyst D sehen können, blockiert Port 5/1 nun für VLAN 1 und Port 5/2 leitet die Daten weiter, wie erwartet.
Catalyst_D> (enable) show spantree 5/1 Port Vlan Port-State Cost Priority Fast-Start Group-Method --------- ---- ------------- ----- -------- ---------- ------------ 5/1 1 blocking 19 32 disabled 5/1 2 forwarding 19 32 disabled Catalyst_D> (enable) show spantree 5/2 Port Vlan Port-State Cost Priority Fast-Start Group-Method --------- ---- ------------- ----- -------- ---------- ------------ 5/2 1 forwarding 19 32 disabled 5/2 2 blocking 19 32 disabled Catalyst_D> (enable)
Es gibt nur zwei mögliche Werte für die Port-VLAN-Priorität pro Trunk, und nur einer von ihnen kann mit dem Befehl portvlanpri konfiguriert werden. Es bedeutet, dass Sie auf einem bestimmten Trunk zwei Gruppen von VLANs haben:
Diejenigen, die den "globalen" Port-Prioritätswert haben (standardmäßig 32).
Diejenigen mit einem "benutzerdefinierten" Wert, der mit dem Befehl portvlanpri eingegeben wurde.
Ein Beispiel verdeutlicht dies. Erwägen Sie, im Beispiel ein drittes VLAN hinzuzufügen. Standardmäßig gehört dieses VLAN zur Gruppe, die den globalen Wert für die Port-Priorität (Standard 32) hat.
Catalyst_R> (enable) set vlan 3 Vlan 3 configuration successful Catalyst_R> (enable) show spantree 3/2 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/2 1 forwarding 19 16 disabled 0 3/2 2 forwarding 19 32 disabled 0 3/2 3 forwarding 19 32 disabled 0 Catalyst_R> (enable)
Ändern Sie die globale Priorität für den Port mithilfe des Befehls set spantree portpri:
Catalyst_R> (enable) set spantree portpri 3/2 48 Bridge port 3/2 port priority set to 48. Catalyst_R> (enable) show spantree 3/2 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/2 1 forwarding 19 16 disabled 0 3/2 2 forwarding 19 48 disabled 0 3/2 3 forwarding 19 48 disabled 0 Catalyst_R> (enable)
Beachten Sie, dass alle VLANs, die zur "globalen" Gruppe gehören, ihre Priorität auf 48 geändert haben. Weisen Sie der anderen "benutzerdefinierten" Gruppe von VLANs nun VLAN 3 zu, und erhalten Sie mit dem Befehl portvlanpri den Wert 8:
Catalyst_R> (enable) set spantree portvlanpri 3/2 8 3 Port 3/2 vlans 1,3 using portpri 8. Port 3/2 vlans 2,4-1004 using portpri 48. Port 3/2 vlans 1005 using portpri 4. Catalyst_R> (enable) show spantree 3/2 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/2 1 forwarding 19 8 disabled 0 3/2 2 forwarding 19 48 disabled 0 3/2 3 forwarding 19 8 disabled 0 Catalyst_R> (enable)
Beachten Sie, dass alle VLANs in der Gruppe "Benutzerdefiniert" ihre Priorität auf 8 geändert haben, nicht nur auf VLAN 3. Um VLAN 3 wieder in die Standardgruppe aufzunehmen, verwenden Sie den Befehl clear spantree portvlanpri:
Catalyst_R> (enable) clear spantree portvlanpri 3/2 3 Port 3/2 vlans 1 using portpri 8. Port 3/2 vlans 2-1004 using portpri 48. Port 3/2 vlans 1005 using portpri 4. Catalyst_R> (enable) show spantree 3/2 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/2 1 forwarding 19 8 disabled 0 3/2 2 forwarding 19 48 disabled 0 3/2 3 forwarding 19 48 disabled 0 Catalyst_R> (enable)
Es gibt eine letzte Einschränkung für diesen Befehl. Der der "globalen" Gruppe zugewiesene Wert muss dem Wert überlegen sein, der für die "benutzerdefinierte" Gruppe konfiguriert wurde.
Catalyst_R> (enable) set spantree portvlanpri 3/2 62 3 Portvlanpri must be less than portpri. Portpri for 3/2 is 48.
Zusammenfassung:
"global" | "custom"-Gruppe |
---|---|
Standardmäßig gehören alle VLANs zu dieser Gruppe. | Zu dieser Gruppe gehören VLANs, die mit dem Befehl set spantree portvlanpri ausgewählt wurden. |
Die Priorität für diese VLANs wird mithilfe des Befehls set spantree port priority festgelegt. | Der Prioritätswert für alle VLANs wird durch den Befehl set spantree portvlanpri festgelegt. |
Der für die "globale" Gruppe konfigurierte Prioritätswert muss dem für die "benutzerdefinierte" Gruppe konfigurierten Wert überlegen sein. | Das Clear Span Portvlanpri ermöglicht es Ihnen, ein VLAN dieser Gruppe in die andere zurückzusetzen. |
Hinweis: Dieses Konfigurationsbeispiel gilt für Switches mit IOS - Catalyst 2900/3500XL, Catalyst 2950, Catalyst 3550, Catalyst 4000 Supervisor III/IV und Catalyst 6000.
Hier ist der aktuelle STP-Status für Catalyst R. Es ist die Root für VLAN 1 und 2, daher werden alle Ports weitergeleitet.
Catalyst_R#show spanning-tree interface FastEthernet 3/1 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 128.129 P2p VLAN0002 Desg FWD 19 128.129 P2p Catalyst_R#show spanning-tree interface FastEthernet 3/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 128.130 P2p VLAN0002 Desg FWD 19 128.130 P2p
Auf Catalyst D wird Port 5/2 wie erwartet für beide VLANs 1 und 2 blockiert.
Catalyst_D#show spanning-tree interface FastEthernet 5/1 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Root FWD 19 128.129 P2p VLAN0002 Root FWD 19 128.129 P2p Catalyst_D#show spanning-tree interface FastEthernet 5/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Altn BLK 19 128.130 P2p VLAN0002 Altn BLK 19 128.130 P2p
Sie verringern den Wert für die Port-Priorität für VLAN 1 an Port 3/2. Auf diese Weise empfängt der entsprechende Port 5/2 auf Catalyst D bessere BPDUs als die, die an Port 5/1 gesendet werden (der noch immer einen Port-Prioritätswert von 128 aufweist).
Catalyst_R#config terminal Catalyst_R(config)#interface FastEthernet 3/2 Catalyst_R(config-if)#spanning-tree vlan 1 port-priority 64 Catalyst_R(config-if)#end Catalyst_R#
Sie können überprüfen, ob sich der Wert für die Port-Priorität für VLAN 1 geändert hat:
Catalyst_R#show spanning-tree interface FastEthernet 3/1 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 128.129 P2p VLAN0002 Desg FWD 19 128.129 P2p Catalyst_R#show spanning-tree interface FastEthernet 3/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 64.130 P2p VLAN0002 Desg FWD 19 128.130 P2p
Wie Sie auf Catalyst D sehen können, blockiert Port 5/1 nun für VLAN 1 und Port 5/2 leitet die Daten weiter, wie erwartet.
Catalyst_D#show spanning-tree interface FastEthernet 5/1 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Altn BLK 19 128.129 P2p VLAN0002 Root FWD 19 128.129 P2p Catalyst_D#show spanning-tree interface FastEthernet 5/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Root FWD 19 128.130 P2p VLAN0002 Altn BLK 19 128.130 P2p
Es gibt zwei Möglichkeiten, die VLAN-Port-Priorität zu definieren:
Der "globale" Port-Prioritätswert (standardmäßig 128), der über den Befehl port-priority pro Schnittstelle geändert werden kann.
Der Prioritätswert "pro VLAN", der pro Schnittstelle und pro VLAN mithilfe des Befehls VLAN-Port-Priority geändert werden kann.
Ein Beispiel verdeutlicht dies. Erwägen Sie, in diesem Beispiel ein drittes VLAN hinzuzufügen. Standardmäßig gehört dieses VLAN zur Gruppe, die den globalen Wert für die Port-Priorität (Standard 128) hat.
Catalyst_R#show spanning-tree interface FastEthernet 3/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 64.130 P2p VLAN0002 Desg FWD 19 128.130 P2p VLAN0003 Desg FWD 19 128.130 P2p
Ändern Sie die globale Priorität für den Port mithilfe des Schnittstellenkonfigurationsbefehls spanning-tree port-priority:
Catalyst_R(config)#interface FastEthernet 3/2 Catalyst_R(config-if)#spanning-tree port-priority 160 Catalyst_R# Catalyst_R#show spanning-tree interface FastEthernet 3/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 64.130 P2p VLAN0002 Desg FWD 19 160.130 P2p VLAN0003 Desg FWD 19 160.130 P2p
Beachten Sie, dass alle VLANs, die zur "globalen" Gruppe gehören, ihre Priorität auf 160 geändert haben. Weisen Sie VLAN 3 jetzt mit dem Schnittstellenbefehl "spanning-tree vlan port-priority" die eigene Priorität 48 zu:
Catalyst_R(config)#interface FastEthernet 3/2 Catalyst_R(config-if)#spanning-tree vlan 3 port-priority 48 Catalyst_R# Catalyst_R#show spanning-tree interface FastEthernet 3/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 64.130 P2p VLAN0002 Desg FWD 19 160.130 P2p VLAN0003 Desg FWD 19 48.130 P2p
Beachten Sie, dass nur VLAN 3 seine Priorität auf 48 geändert hat. Um VLAN 3 wieder in die Standardgruppe aufzunehmen, verwenden Sie den Schnittstellenbefehl no spanning-tree vlan port-priority (keine Spanning-Tree-VLAN-Portpriorität):
Catalyst_R(config)#interface FastEthernet 3/2 Catalyst_R(config-if)#no spanning-tree vlan 3 port-priority Catalyst_R# Catalyst_R#show spanning-tree interface FastEthernet 3/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 64.130 P2p VLAN0002 Desg FWD 19 160.130 P2p VLAN0003 Desg FWD 19 160.130 P2p
Die soeben abgeschlossene VLAN Load Balancing-Konfiguration optimiert die Verwendung redundanter Trunks zwischen zwei Catalyst-Switches.
Wenn die Standard-STP-Werte beibehalten werden, laufen alle redundanten Verbindungen zwischen den beiden Catalyst-Geräten im Blockierungsmodus ab. Durch die Einstellung der STP-Priorität können mehrere Links für verschiedene VLANs gleichzeitig verwendet werden. Dadurch wird die verfügbare Gesamtbandbreite zwischen den beiden Geräten erhöht. Bei einem Verbindungsausfall leitet der STP die VLANs bei der Neukonvergierung an die verbleibenden Trunks weiter.
Der einzige Nachteil dieses Designs besteht darin, dass der Datenverkehr nur auf VLAN-Basis ausgeglichen werden kann. Wenn im vorherigen Beispiel ein Datenverkehr mit 130 Mbit/s über VLAN 1 und nur 10 Mbit/s über VLAN 2 übertragen wurde, verwerfen Sie trotzdem Pakete im VLAN 1, obwohl es theoretisch 200 Mbit/s zwischen Catalyst R und Catalyst D gibt. Die EtherChanneling-Funktion trägt dieser Aufgabe Rechnung, indem sie auf Paketbasis Load Balancing zwischen mehreren Links bereitstellt. Wenn Ihre Hardware diese unterstützt, verwenden Sie FastEtherchannel (oder GigabitEtherChannel) anstelle der in diesem Dokument beschriebenen Konfiguration.
Überarbeitung | Veröffentlichungsdatum | Kommentare |
---|---|---|
1.0 |
02-Dec-2013 |
Erstveröffentlichung |