Einleitung
In diesem Dokument werden die STP-Timer (Spanning Tree Protocol) und die für die Anpassung der Timer zu verwendenden Regeln beschrieben.
Hintergrund
In diesem Dokument wird nur erläutert, wie STP-Timer auf den regulären 802.1D Spanning Tree eingestellt werden. In diesem Dokument wird nicht auf das Rapid STP (RSTP)-Protokoll (IEEE 802.1w) oder das Multiple Spanning Tree (MST)-Protokoll (IEEE 802.1s) eingegangen.
Weitere Informationen zu RSTP und MST finden Sie in diesen Dokumenten:
Voraussetzungen
Anforderungen
In diesem Dokument wird von einem guten Verständnis von STP ausgegangen. Weitere Informationen zum Betrieb von STP finden Sie unter Verstehen und Konfigurieren des Spanning Tree Protocol (STP) auf Catalyst-Switches .
Vorsicht: Sie können dieses Dokument verwenden, um Ihre Netzwerkprobleme zu lösen, aber nur, wenn Sie mit dem Prozess vertraut sind oder wenn Sie von einer mit dem Prozess vertrauten Person angesprochen wurden. Wenn Sie mit STP nicht vertraut sind, können von Ihnen vorgenommene Änderungen folgende Ereignisse verursachen:
- Instabilitäten
- Verlangsamung von Anwendungen
- CPU-Spitzen
- LAN-Kernschmelze
Weitere Informationen finden Sie unter 802.1D - IEEE Standards for Local and Metropolitan Area Networks: MAC-Bridges (Media Access Control)
Verwendete Komponenten
Dieses Dokument ist nicht auf bestimmte Software- und Hardware-Versionen beschränkt.
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Konventionen
Weitere Informationen zu Dokumentkonventionen finden Sie unter Cisco Technical Tips Conventions (Technische Tipps von Cisco zu Konventionen).
Spanning Tree Protocol-Timer
Es gibt mehrere STP-Timer, wie die folgende Liste zeigt:
-
hello - Die Hello-Zeit ist die Zeit zwischen den einzelnen Bridge Protocol Data Units (BPDUs), die über einen Port gesendet werden. Diese Zeit entspricht standardmäßig 2 Sekunden (Sek.), kann jedoch auf einen Wert zwischen 1 und 10 Sekunden eingestellt werden.
-
forward delay (Weiterleitungsverzögerung) - Die Weiterleitungsverzögerung ist die Zeit, die im Listen- und Lernstatus verbracht wird. Diese Zeit entspricht standardmäßig 15 Sekunden, kann aber auf 4 bis 30 Sekunden eingestellt werden.
-
max age: Der Timer für das max age steuert die maximale Dauer, die vergeht, bevor ein Bridge-Port seine Konfigurations-BPDU-Informationen speichert. Diese Zeit beträgt standardmäßig 20 Sekunden, kann aber auf einen Wert zwischen 6 und 40 Sekunden eingestellt werden.
Jede Konfigurations-BPDU enthält diese drei Parameter. Darüber hinaus enthält jede BPDU-Konfiguration einen anderen zeitbezogenen Parameter, der als Meldungsalter bezeichnet wird.
Das Nachrichtenalter ist kein fester Wert. Das Nachrichtenseite enthält die Zeitspanne, die seit dem ursprünglichen Ursprung der BPDU durch die Root-Bridge vergangen ist.
Die Root-Bridge sendet alle BPDUs mit einem Wert für das Meldungsalter von 0, und alle nachfolgenden Switches addieren 1 zu diesem Wert.
Dieser Wert enthält Informationen darüber, wie weit Sie sich von der Root-Bridge entfernt befinden, wenn Sie eine BPDU erhalten. Dieses Diagramm veranschaulicht das Konzept:

Wenn eine neue Konfigurations-BPDU empfangen wird, die den auf dem Port aufgezeichneten Informationen entspricht oder diese übertrifft, werden alle BPDU-Informationen gespeichert.
Der Zeitgeber beginnt zu laufen. Der Age-Timer startet mit dem Nachrichtenalter, das in dieser Konfigurations-BPDU empfangen wird.
Wenn dieser Alter-Timer das maximale Alter erreicht, bevor ein anderes BPDU empfangen wird, das den Timer aktualisiert, werden die Informationen für diesen Port veraltet.
Das folgende Beispiel bezieht sich auf das Diagramm in diesem Abschnitt:
-
Die Switches B und C erhalten eine Konfigurations-BPDU von Switch A mit einem Meldungsalter von 0. An dem Port, der zu A wechselt, werden die Informationen in Sekunden abgelaufen (max. Alter - 0). Diese Zeit beträgt standardmäßig 20 Sekunden.
-
Die Switches D und E empfangen die BPDU von Switch B mit einer Nachricht vom Alter von 1. An dem Port, der zu B führt, werden die Informationen in (max. Alter - 1) Sekunden abgelaufen. Diese Zeit beträgt standardmäßig 19 Sekunden.
-
Switch F empfängt die BPDU von Switch E mit einer Nachricht vom Alter von 2. An dem Port, der zu E wechselt, werden die Informationen in (max. Alter - 2) Sekunden abgelaufen. Diese Zeit beträgt standardmäßig 18 Sekunden.
Andere Parameter des Spanning Tree Protocol
IEEE 802.1D definiert STP. Zusätzlich zu den Timern, die im Abschnitt Spanning Tree Protocol Timers beschrieben werden, definiert IEEE auch die folgenden Parameter, die sich auf STP beziehen:
-
Durchmesser der STP-Domäne (dia) — Dieser Wert gibt die maximale Anzahl von Brücken zwischen zwei beliebigen Befestigungspunkten von Endstationen an. Die IEEE-Empfehlung sieht einen maximalen Durchmesser von sieben Bridges für die STP-Standard-Timer vor.
-
Bridge-Transit-Verzögerung (Transit-Verzögerung) - Dieser Wert gibt die Zeit an, die zwischen dem Empfang und der Übertragung desselben Frames durch die Bridge vergangen ist. Hierbei handelt es sich logisch um die Latenz über die Bridge. Die IEEE-Empfehlung sieht eine Sekunde als maximale Bridge-Transit-Verzögerung vor.
-
BPDU-Übertragungsverzögerung (bpdu_delay) - Dieser Wert ist die Verzögerung zwischen dem Empfang einer BPDU an einem Port und dem Zeitpunkt, zu dem die Konfigurations-BPDU effektiv an einen anderen Port übertragen wird. Für die maximale BPDU-Übertragungsverzögerung empfiehlt das IEEE 1 Sekunde.
-
message age increment overestimation (msg_overestimation) - Dieser Wert ist der Inkrement-Wert, den jede Bridge zum Nachrichtenseite hinzufügt, bevor sie eine BPDU weiterleitet. Wie im Abschnitt Spanning Tree Protocol Timers (Spanning-Tree-Protokoll-Timer) angegeben, fügen Cisco Switches (und wahrscheinlich alle Switches) dem Nachrichtenalter 1 Sekunde hinzu, bevor die Switches eine BPDU weiterleiten.
-
lost message (lost_msg): Dieser Wert gibt die Anzahl der BPDUs an, die verloren gehen können, wenn eine BPDU von einem Ende des überbrückten Netzwerks zum anderen Ende verschoben wird. IEEE empfiehlt die Verwendung von drei als Anzahl der verlorenen BPDUs.
-
Transmit-Stopp-Verzögerung (Tx_halt_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 Blockzustand zu versetzen. IEEE empfiehlt, für diesen Parameter 1 Sekunde zu verwenden.
-
mittlere Zugriffsverzögerung (med_access_delay) — Dieser Wert ist die Zeit, die ein Gerät benötigt, um Zugang zu den Medien für die erste Übertragung zu erhalten. Dies ist die Zeit zwischen der CPU-Entscheidung, einen Frame zu senden, und dem Moment, in dem der Frame die Bridge tatsächlich verlässt. Die IEEE-Empfehlung sieht eine maximale Dauer von 0,5 Sekunden vor.
Aus diesen Parametern können Sie weitere Werte berechnen. Diese Liste enthält die zusätzlichen Parameter und die Berechnungen. Bei den Berechnungen wird davon ausgegangen, dass Sie die empfohlenen IEEE-Standardwerte für alle Parameter verwenden.
-
End-to-End-BPDU-Propagierungsverzögerung - Dieser Wert gibt die Zeit an, die ein BPDU benötigt, um von einem Ende des Netzwerks zum anderen Ende zu gelangen. Es wird von einem Durchmesser von sieben Hops, drei verlorenen BPDUs und einer Hello-Zeit von zwei Sekunden ausgegangen. 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 Meldungszeitpunkts - Dieser Parameter dient dazu, das Alter der BPDU seit ihrem Ursprung zu berücksichtigen. Es wird angenommen, dass jede Bridge das BPDU-Nachrichtenalter 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 gibt an, wie lange 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 zum Anhalten der Übertragung): Dieser Wert gibt die Zeit an, die erforderlich ist, um einen Port effektiv zu blockieren, nachdem die Entscheidung für die Blockierung getroffen wurde. Das IEEE-Gerät zählt für dieses Ereignis 1 Sekunde als Maximum. Die Formel lautet:
Maximum_transmission_halt_delay
= 1
Standardwerte der Spanning Tree Protocol-Timer
In diesem Abschnitt wird erläutert, wie Sie den Standardwert für das maximale Alter und die Weiterleitungsverzögerung erreichen, wenn Sie den empfohlenen Wert für die einzelnen Parameter verwenden.
Die empfohlenen Werte sind ein Durchmesser von sieben und eine Hello-Zeit von 2 Sekunden.
Höchstalter
Das maximale Alter berücksichtigt die Tatsache, dass der Switch, der sich an der Peripherie des Netzwerks befindet, die Root-Informationen nicht unter stabilen Bedingungen ausgibt (d. h. wenn der Root noch aktiv ist).
Der Wert für das maximale Alter muss die gesamte BPDU-Propagierungsverzögerung und die Überschätzung des Nachrichtenalters berücksichtigen. Daher lautet die Formel für das maximale Alter:
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.
forward delay (verzögerte weiterleitung)
Die Bewegung eines Ports in den Listen-Status zeigt an, dass sich die aktive STP-Topologie geändert hat und dass ein Port von Block zu Block weitergeleitet wird.
Daher müssen die Zeiträume des Zuhörens und Lernens, in denen die Vorwärtsverzögerung abläuft, diesen aufeinander folgenden Zeitraum abdecken:
-
Zeit vom Eintritt des ersten Bridge-Ports in den Listen-Status (und verbleibt dort bei der anschließenden Neukonfiguration) bis zum Erkennen der Änderung der aktiven Topologie durch die letzte Bridge im überbrückten LAN
Darüber hinaus müssen Sie die gleiche Verzögerung erfassen, mit der Sie das maximale Alter berechnen (Überschätzung des Nachrichtenalters und BPDU-Propagierungsverzögerung).
-
Zeit, die die letzte Bridge benötigt, um die Weiterleitung von Frames zu stoppen, die in der vorherigen Topologie empfangen wurden (maximale Übertragungsverzögerung), bis der letzte Frame, der in der vorherigen Topologie weitergeleitet wurde, verschwindet (maximale Frame-Lebensdauer)
Diese Zeit ist notwendig, um sicherzustellen, dass Sie keine duplizierten Frames erhalten.
Daher enthält die doppelte Zeit der 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)
Timer für das maximale Alter und die Vorwärtsverzögerung einstellen
Unter all diesen Parametern können Sie nur die folgenden Einstellungen vornehmen:
Anmerkung: Die Möglichkeit zur Anpassung dieser Parameter hängt vom Netzwerk ab.
Ändern Sie keinen der Werte in dieser Liste. Lassen Sie diese Werte bei dem empfohlenen IEEE-Wert:
Diese Werte können in einem modernen Netzwerk, in dem Sie wahrscheinlich nicht drei BPDUs verlieren oder über einen Switch 1 Sekunde Latenz für einen Frame haben, recht konservativ erscheinen.
Beachten Sie jedoch, dass diese Werte vorhanden sind, um STP-Schleifen zu verhindern, die unter Stressbedingungen auftreten können, wie 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 Default Values of Spanning Tree Protocol Timers (Standardwerte für Spanning Tree-Protokoll-Timer) 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 Ihnen diese beiden letzten Formeln (wenn Sie den Wert 0,5 runden):
max_age = (4 x hello) + (2 x dia) – 2
forward_delay = ((4 x hello) + (3 x dia)) / 2
Wenn Sie die STP-Timer anpassen möchten, um eine bessere Konvergenzzeit zu erzielen, müssen Sie diese beiden Formeln unbedingt verwenden.
Hier ein Beispiel. Wenn der Durchmesser eines überbrückten Netzwerks vier beträgt, 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
Anmerkung: hello = 1 ist der niedrigste Wert. Es ist unmöglich, diesen Parameter auf weniger als 10 Sekunden für das maximale Alter und auf 8 Sekunden für die Vorwärtsverzögerung einzustellen, wenn der Durchmesser gleich vier ist.
Verkürzung der Hello-Zeit auf 1 Sekunde
Eine Verringerung der Hello-Zeit auf 1 Sekunde ist der einfachste und sicherste Weg, die STP-Parameter zu reduzieren.
Denken Sie jedoch daran, dass Sie die Anzahl der BPDUs verdoppeln, die von jeder Bridge gesendet/empfangen werden, wenn Sie die Hello-Zeit von 2 Sekunden auf 1 Sekunde verwerfen.
Dieser Anstieg führt zu einer zusätzlichen Belastung der CPU, die doppelt so viele BPDUs verarbeiten muss. Diese Last kann ein Problem darstellen, wenn Sie mehrere VLANs und Trunks haben.
Den Durchmesser berechnen
Der Durchmesser ist vollständig vom Netzwerk-Design abhängig. Der Durchmesser ist die maximale Anzahl von Switches, die Sie überqueren, um zwei beliebige Switches im überbrückten Netzwerk (einschließlich Quelle und Ziel) zu verbinden, wenn Sie die schlimmsten Fälle annehmen. Sie überqueren nicht zweimal den gleichen Schalter, wenn Sie den Durchmesser bestimmen. Im Diagramm im Abschnitt Spanning Tree Protocol Timers dieses Dokuments können Sie sehen, dass Sie einen Durchmesser von 5 haben (Pfad F-E-B-A-C).
Schauen 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 Bridge-Domäne wird an den Distribution-Switches angehalten. Der STP-Durchmesser beträgt 5:

Wie Sie dem Diagramm entnehmen können, gibt es kein Switch-Paar, das einen Durchmesser von mehr als 5 ergibt.
Ändern der Spanning Tree Protocol-Timer
Wie im Abschnitt Spanning Tree Protocol Timers erwähnt, umfasst jede BPDU die hello-Timer, die Forward Delay-Timer und die Max-Age-STP-Timer.
Für eine IEEE-Bridge ist die lokale Konfiguration des Timer-Werts unbedenklich. Die IEEE-Bridge berücksichtigt den Wert der Timer in der BPDU, die die Bridge empfängt.
Effektiv ist nur ein Timer wichtig, der auf der Root-Bridge des STP konfiguriert ist. Wenn Sie den Root verlieren, beginnt der neue Root, dem gesamten Netzwerk seinen lokalen Timer-Wert aufzuzwingen.
Selbst wenn Sie also nicht den gleichen Timer-Wert im gesamten Netzwerk konfigurieren müssen, müssen Sie zumindest alle Timer-Änderungen auf der Root-Bridge und der Backup-Root-Bridge konfigurieren.
Wenn Sie einen Cisco Switch mit Catalyst OS-Software (CatOS) verwenden, gibt es einige Makros, mit denen Sie den Root einrichten und die Parameter entsprechend den Formeln anpassen können.
Geben Sie denset spantree root vlan dia diameter hello hello_time
Befehl 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 Sie den STP-Netzwerkdurchmesser konfiguriert haben, wird der konfigurierte Durchmesserwert weder in der Konfiguration noch in der Ausgabe einesshow
Befehls angezeigt.
Zugehörige Informationen