In diesem Dokument werden die STP-Timer (Spanning Tree Protocol) und die Regeln beschrieben, die zur Timer-Optimierung befolgt werden müssen.
Hinweis: In diesem Dokument wird nur erläutert, wie STP-Timer für reguläre 802.1D-Spanning Tree eingestellt werden. In diesem Dokument wird das Rapid STP (RSTP)-Protokoll (IEEE 802.1w) oder das Multiple Spanning Tree (MST)-Protokoll (IEEE 802.1s) nicht behandelt. Weitere Informationen zu RSTP und MST finden Sie in den folgenden Dokumenten:
Dieses Dokument setzt ein gutes Verständnis von STP voraus. Weitere Informationen zum Betrieb von STP finden Sie unter Understanding and Configuring Spanning Tree Protocol (STP) on Catalyst Switches.
Vorsicht: Sie können dieses Dokument verwenden, um Ihnen bei der Behebung Ihrer Netzwerkprobleme zu helfen, jedoch nur, wenn Sie mit dem Vorgang vertraut sind oder wenn Ihnen jemand, der mit dem Vorgang vertraut ist, Anweisungen gegeben hat. Wenn Sie mit STP nicht vertraut sind, können von Ihnen vorgenommene Änderungen die folgenden Ereignisse verursachen:
Instabilitäten
Anwendungsverlangsamungen
CPU-Spitzen
LAN-Kernschmelze
Weitere Informationen finden Sie unter 802.1D - IEEE-Standards für LAN- und Metropolitan Area Networks: MAC-Bridges (Media Access Control) (Ziffer 8) für zusätzliche Details und Referenzen zu allen Parametern, die in diesem Dokument behandelt werden.
Dieses Dokument ist nicht auf bestimmte Software- und Hardwareversionen beschränkt.
Weitere Informationen zu Dokumentkonventionen finden Sie unter Cisco Technical Tips Conventions (Technische Tipps zu Konventionen von Cisco).
Wie die folgende Liste zeigt, gibt es mehrere STP-Timer:
hello - Die Hello-Zeit ist die Zeit zwischen jeder BPDU (Bridge Protocol Data Unit), die auf einem Port gesendet wird. Diese Zeit entspricht standardmäßig 2 Sekunden (Sek.), aber Sie können die Zeit auf 1 bis 10 Sek. einstellen.
Forward Delay (Vorwärtsverzögerung): Die Vorwärtsverzögerung ist die Zeit, die im Status "Zuhören" und "Lernen" verbringt wird. Diese Zeit entspricht standardmäßig 15 Sekunden, aber Sie können die Zeit auf 4 bis 30 Sekunden einstellen.
max age - Der maximale Zeitgeber steuert die maximale Zeitdauer, die vergeht, bevor ein Bridge-Port seine Konfigurations-BPDU-Informationen speichert. Diese Zeit ist standardmäßig 20 Sekunden, aber Sie können die Zeit auf 6 bis 40 Sekunden einstellen.
Jede Konfiguration BPDU enthält diese drei Parameter. Darüber hinaus enthält jede BPDU-Konfiguration einen weiteren zeitbezogenen Parameter, den so genannten "Message Age" (Nachrichtenalter). Das Nachrichtenalter ist kein fester Wert. Das Nachrichtenalter enthält die Zeitspanne, die vergangen ist, seit die Root-Bridge die BPDU ursprünglich erstellt hat. Die Root Bridge sendet alle BPDUs mit dem Nachrichtenalterwert 0, und alle nachfolgenden Switches fügen diesem Wert eine hinzu. Tatsächlich enthält dieser Wert Informationen darüber, wie weit Sie sich bei Erhalt einer BPDU von der Root Bridge entfernt befinden. Dieses Diagramm veranschaulicht das Konzept:
Wenn eine neue BPDU-Konfiguration empfangen wird, die mindestens den auf dem Port gespeicherten Informationen entspricht, werden alle BPDU-Informationen gespeichert. Der Zeitgeber für das Zeitalter beginnt zu laufen. Der Zeitgeber für das Zeitalter der Nachrichten, die in dieser Konfigurations-BPDU empfangen werden, beginnt. Wenn dieser Zeitgeber das maximale Alter erreicht, bevor eine andere BPDU empfangen wird, die den Zeitgeber aktualisiert, werden die Informationen für diesen Port ausgereift.
Das folgende Beispiel gilt für das Diagramm in diesem Abschnitt:
Die Switches B und C erhalten eine Konfigurations-BPDU von Switch A mit einem Nachrichtenalter von 0. Auf dem Port, der zu A führt, werden die Informationen in (max. Alter - 0) Sekunden ausgegeben. Diese Zeit ist standardmäßig 20 Sekunden.
Die Switches D und E erhalten die BPDU von Switch B mit einem Nachrichtenalter von 1. Auf dem Port, der A erreicht, werden die Informationen in (max. Alter - 1) Sek. Diese Zeit ist standardmäßig 19 Sekunden.
Switch F empfängt die BPDU vom Switch E mit einem Nachrichtenalter von 2. Auf dem Port, der zum E führt, werden die Informationen in (max. Alter - 2) Sekunden ausgegeben. Diese Zeit ist standardmäßig 18 Sekunden.
IEEE 802.1D definiert STP. Zusätzlich zu den Timern, die im Abschnitt Spanning Tree Protocol Timers beschrieben werden, definiert IEEE auch diese Parameter, die sich auf STP beziehen:
Durchmesser der STP-Domäne (dia): Dieser Wert ist die maximale Anzahl von Brücken zwischen zwei beliebigen Anschlusspunkten von Endstationen. Die IEEE-Empfehlung sieht die Berücksichtigung eines maximalen Durchmessers von sieben Brücken für die Standard-STP-Timer vor.
Bridge Transit Delay (Transitverzögerung) - Dieser Wert ist die Zeit zwischen dem Empfang und der Übertragung desselben Frames durch die Bridge. Dies ist logisch die Latenz durch die Bridge. Die IEEE-Empfehlung sieht vor, eine Sekunde als maximale Bridge-Transitverzögerung zu betrachten.
BPDU Transmission Delay (bpdu_delay) - Dieser Wert ist die Verzögerung zwischen dem Empfang einer BPDU an einem Port und dem tatsächlichen Übertragen der Konfigurations-BPDU an einen anderen Port. Die IEEE empfiehlt als maximale BPDU-Übertragungsverzögerung eine Sekunde.
Erhöhtes inkrementelle Nachrichtenalter (msg_overschätzung) - Dieser Wert ist der inkrementelle Wert, den jede Bridge dem Nachrichtenalter hinzufügt, bevor sie eine BPDU weiterleitet. Wie der Abschnitt Spanning Tree Protocol Timers besagt, fügen Cisco Switches (und wahrscheinlich alle Switches) dem Nachrichtenalter eine Sekunde hinzu, bevor die Switches eine BPDU weiterleiten.
lost message (lost_msg) - Dieser Wert ist die Anzahl der BPDUs, die verloren gehen können, wenn eine BPDU von einem Ende des Bridge-Netzwerks zum anderen übertragen wird. Die IEEE-Empfehlung sieht vor, drei BPDUs als Anzahl zu verwenden, die verloren gehen können.
Transmit Stopp Delay (Tx_Stopp_Delay): Dieser Wert ist die maximale Zeit, die eine Bridge benötigt, um einen Port nach der Feststellung, dass der Port blockiert werden muss, effektiv in den Blockierungsstatus zu verschieben. Die IEEE-Empfehlung lautet, für diesen Parameter eine Sekunde zu verwenden.
medium access delay (med_access_delay) - Dieser Wert ist die Zeit, die ein Gerät benötigt, um auf die Medien für die erste Übertragung zugreifen zu können. Es ist die Zeit zwischen der CPU-Entscheidung, einen Frame zu senden, und dem Zeitpunkt, zu dem der Frame effektiv beginnt, die Bridge zu verlassen. Die IEEE-Empfehlung sieht vor, als maximale Zeit 0,5 Sekunden zu verwenden.
Anhand dieser Parameter können Sie andere Werte berechnen. Diese Liste enthält die zusätzlichen Parameter und die Berechnungen. Bei den Berechnungen wird davon ausgegangen, dass Sie für alle Parameter die empfohlenen IEEE-Standardwerte verwenden.
End-to-End-BPDU-Übertragungsverzögerung: Dieser Wert ist die Zeitspanne, die eine BPDU benötigt, um von einem Ende des Netzwerks zum anderen zu gelangen. Nehmen wir an, ein Durchmesser von sieben Hops, drei BPDUs, die verloren gehen können, und eine Hello-Zeit von 2 Sek. In diesem Fall lautet die Formel:
End-to-end_BPDU_propa_delay = ((lost_msg + 1) x hello) + ((BPDU_Delay x (dia – 1)) = ((3 + 1) x hello) + ((1 x (dia – 1)) = 4 x hello + dia – 1 = 4 x 2 + 6 = 14 sec
Überschätzung des Nachrichtenalters - Der Zweck dieses Parameters besteht darin, das Alter der BPDU seit der Erstellung zu berücksichtigen. Nehmen Sie an, dass jede Bridge das Alter der BPDU-Nachricht um 1 Sekunde erhöht. Die Formel lautet:
Message_age_overestimate = (dia – 1) x overestimate_per_bridge = dia – 1 = 6
Maximale Frame-Lebensdauer - Dieser Wert ist die maximale Zeit, die ein Frame, der zuvor an das Bridge-Netzwerk gesendet wurde, im Netzwerk verbleibt, bevor der Frame dieses Ziel erreicht. Die Formel lautet:
Maximum_frame_lifetime = dia x transit_delay + med_access_delay = dia + 0.5 = 7.5 = 8 (rounded)
Maximum Transmission Stopp Delay (Maximale Verzögerung bei Anhalten der Übertragung): Dieser Wert ist die Zeit, die erforderlich ist, um einen Port effektiv zu blockieren, nachdem die Entscheidung zur Blockierung getroffen wurde. Das IEEE zählt 1 Sek. als Maximum für dieses Ereignis. Die Formel lautet:
Maximum_transmission_halt_delay = 1
In diesem Abschnitt wird beschrieben, wie Sie den Standardwert für das maximale Alter und die Vorwärtsverzögerung erreichen, wenn Sie für jeden Parameter den empfohlenen Wert verwenden. Die empfohlenen Werte sind ein Durchmesser von sieben und eine Hello-Zeit von 2 Sek.
Das maximale Alter berücksichtigt die Tatsache, dass der Switch am Rande des Netzwerks die Root-Informationen unter stabilen Bedingungen nicht auslöst (wenn der Root noch aktiv ist). Beim maximalen Alter muss die gesamte BPDU-Übertragungsverzögerung und die Überschätzung des Nachrichtenalters berücksichtigt werden. Die Formel für das maximale Alter lautet daher:
max_age = End-to-end_BPDU_propa_delay + Message_age_overestimate = 14 + 6 = 20 sec
Diese Berechnung zeigt, wie das IEEE den empfohlenen Standardwert für das maximale Alter erreicht.
Die Bewegung eines Ports in den Überwachungsstatus weist darauf hin, dass die aktive STP-Topologie geändert wird und dass ein Port von der Blockierung zur Weiterleitung übergeht. Daher müssen die Hör- und Lernzeiträume, in denen die Vorwärtsverzögerung abläuft, diesen aufeinander folgenden Zeitraum abdecken:
Zeit, ab der der erste Bridge-Port in den Listening-Status wechselt (und dort durch die nachfolgende Neukonfiguration verbleibt), bis die letzte Bridge im Bridge-LAN von der Änderung der aktiven Topologie Kenntnis erhält
Darüber hinaus müssen Sie dieselbe Verzögerung zählen, die Sie zum Berechnen des maximalen Alters verwenden (Überschätzung des Nachrichtenalters und Verzögerung der BPDU-Übertragung).
Die Zeit für die letzte Bridge, um die Weiterleitung von Frames zu beenden, die in der vorherigen Topologie empfangen wurden (maximale Verzögerung für die Übertragungsblockierung), bis der letzte Frame, der in der vorherigen Topologie weitergeleitet wurde (maximale Frame-Lebensdauer) verschwindet.
Dieser Zeitraum ist erforderlich, um sicherzustellen, dass keine doppelten Frames angezeigt werden.
Daher enthält die doppelte Vorwärtsverzögerung (Hörzeit + Lernzeit) alle diese Parameter. Die Formel lautet:
2 x forward delay = end-to-end_BPDU_propagation_delay + Message_age_overestimate + Maximum_frame_lifetime + Maximum_transmission_halt_delay = 14 + 6 + 7.5 + 1 = 28.5 forward_delay = 28.5 /2 = 15 (rounded)
Zu all diesen Parametern gehören die einzigen Parameter, die Sie einstellen können:
Hinweis: Die Möglichkeit zur Abstimmung dieser Parameter hängt vom Netzwerk ab.
hello - von 1 bis 6
Höchstalter
Vorlaufverzögerung
durchmesser - Dies hängt vom Netzwerk ab.
Ändern Sie keine der Werte in dieser Liste. Lassen Sie diese Werte mit dem empfohlenen IEEE-Wert unverändert:
Loss_msg = 3
tranet_delay = 1
bpdu_delay = 1
msg_overschätzung = 1
Tx_halt_delay = 1
med_access_delay = 0,5
maximum_transfer_halt_delay = 1
In einem modernen Netzwerk, in dem Sie wahrscheinlich nicht drei BPDUs verlieren oder eine Sekunde Latenz für einen Frame durch einen Switch haben, können diese Werte relativ konservativ erscheinen. Beachten Sie jedoch, dass diese Werte vorhanden sind, um STP-Schleifen zu verhindern, die unter Stressbedingungen auftreten können, z. B.:
Sehr hohe CPU-Auslastung
Ein überlasteter Port
Daher müssen Sie diese Parameter als feste Werte betrachten. Wenn Sie die Formeln verwenden, die im Abschnitt Standardwerte von Spanning Tree Protocol Timers angezeigt werden, haben Sie folgende Möglichkeiten:
max_age = End-to-end_BPDU_propa_delay + Message_age_overestimate = ((lost_msg + 1) x hello) + ((BPDU_Delay x (dia – 1)) + (dia – 1) x overestimate_per_ bridge = (4 x hello) + dia – 1 + dia – 1 = (4 x hello) + (2 x dia) – 2 forward_delay = (End-to-end_BPDU_propa_delay + Message_age_overestimate + Maximum_frame_lifetime + Maximum_transmission_halt_delay ) / 2 = ((lost_msg + 1) x hello) + ((BPDU_Delay x (dia – 1)) + ((dia – 1) x overestimate_per_bridge) + (dia x transit_delay) + med_access_delay + Maximum_transmission_halt_delay) / 2 = ((4 x hello) + dia – 1 + dia – 1 + dia + 0.5 + 1) / 2 = ((4 x hello) + (3 x dia) – 0.5) / 2
Diese Berechnungen lassen Sie mit den folgenden beiden abschließenden Formeln (wenn Sie den Wert 0,5 umrunden) auskommen:
max_age = (4 x hello) + (2 x dia) – 2 forward_delay = ((4 x hello) + (3 x dia)) / 2
Wenn Sie die STP-Timer einstellen möchten, um eine bessere Konvergenzzeit zu erzielen, müssen Sie diese beiden Formeln strikt befolgen.
Hier ein Beispiel. Wenn Sie einen Durchmesser von vier für ein überbrücktes Netzwerk haben, müssen Sie die folgenden Parameter verwenden:
hello = 2 (default) then max_age = 14 sec forward_delay = 10 sec If hello = 1 then max_age = 10 sec forward_delay = 8 sec
Hinweis: hello = 1 ist der niedrigste Wert. Es ist nicht möglich, diesen Parameter unter 10 Sek. für das maximale Alter und 8 Sek. für die Vorwärtsverzögerung anzupassen, wenn der Durchmesser 4 beträgt.
Eine Verringerung der Hello-Zeit auf 1 Sek. ist die einfachste und sicherste Möglichkeit, die STP-Parameter zu reduzieren. Denken Sie jedoch daran, dass Sie beim Verwerfen der Hello-Zeit von 2 Sekunden auf 1 Sekunde die Anzahl der BPDUs verdoppeln, die von jeder Bridge gesendet/empfangen werden. Dieser Anstieg verursacht eine zusätzliche Last für die CPU, die doppelt so viele BPDUs verarbeiten muss. Diese Last kann bei mehreren VLANs und Trunks ein Problem darstellen.
Der Durchmesser ist vollständig vom Netzwerkdesign abhängig. Der Durchmesser ist die maximale Anzahl von Switches, die Sie überqueren, um zwei Switches im überbrückten Netzwerk (einschließlich Quelle und Ziel) zu verbinden, wenn Sie von den schlimmsten Fällen ausgehen. Bei der Bestimmung des Durchmessers überqueren Sie nicht zweimal den gleichen Switch. Im Diagramm im Abschnitt Spanning Tree Protocol Timers dieses Dokuments sehen Sie, dass Sie einen Durchmesser von 5 (Pfad F-E-B-A-C) haben.
Sehen Sie sich nun das Diagramm in diesem Abschnitt an. Das Diagramm enthält einige Access Switches (Switches C, D und E), die mit zwei Distribution Switches (Switches A und B) verbunden sind. Zwischen den Distribution Switches und dem Core besteht eine Layer-3-Grenze (L3). Die überbrückte Domäne wird an den Distribution Switches angehalten. Der STP-Durchmesser beträgt 5:
C-A-D-B-E
D-A-C-B-E
Im Diagramm sehen Sie, dass es kein Switch-Paar gibt, das einen Durchmesser von mehr als 5 aufweist.
Wie im Abschnitt Spanning Tree Protocol Timers erwähnt, enthält jede BPDU die Hello-, die Weiterleitungsverzögerung und die STP-Timer für höchste Altersstufen. Eine IEEE-Bridge ist nicht von der lokalen Konfiguration des Timerwerts betroffen. Die IEEE-Bridge berücksichtigt den Wert der Timer in der BPDU, die die Bridge empfängt. Tatsächlich ist nur ein Timer wichtig, der auf der Root-Bridge des STP konfiguriert wird. Wenn Sie den Root verlieren, beginnt der neue Root, den lokalen Timer-Wert für das gesamte Netzwerk festzulegen. Selbst wenn Sie also nicht denselben Timer-Wert im gesamten Netzwerk konfigurieren müssen, müssen Sie zumindest Timer-Änderungen auf der Root-Bridge und der Backup-Root-Bridge konfigurieren.
Wenn Sie einen Cisco Switch verwenden, auf dem die Catalyst OS (CatOS)-Software ausgeführt wird, gibt es einige Makros, mit denen Sie den Root einrichten und die Parameter entsprechend der Formeln anpassen können. Geben Sie den Befehl set spantree root vlan dia durchmesser hello hello_time ein, um den Durchmesser und die Hello-Zeit festzulegen. Hier ein Beispiel:
Taras> (enable) set spantree root 8 dia 4 hello 2 VLAN 8 bridge priority set to 8192. VLAN 8 bridge max aging time set to 14. VLAN 8 bridge hello time set to 2. VLAN 8 bridge forward delay set to 10. Switch is now the root switch for active VLAN 8.
Wenn der STP-Netzwerkdurchmesser konfiguriert ist, wird der konfigurierte Durchmesser weder in der Konfiguration noch in der Ausgabe eines show-Befehls angezeigt.