Inleiding
In dit document worden de functies van het Spanning Tree Protocol beschreven die bedoeld zijn om de netwerkstabiliteit van Layer 2 te verbeteren.
Voorwaarden
Vereisten
In dit document wordt ervan uitgegaan dat de lezer bekend is met de basiswerking van STP. Zie Spanning Tree Protocol (STP) op Catalyst-Switches begrijpen en configureren voor meer informatie.
Gebruikte componenten
Dit document is gebaseerd op Catalyst-switches, maar de beschikbaarheid van de beschreven functies kan afhankelijk zijn van de gebruikte softwarerelease.
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Conventies
Raadpleeg Cisco Technical Tips Conventions (Conventies voor technische tips van Cisco) voor meer informatie over documentconventies.
Achtergrondinformatie
Spanning Tree Protocol (STP) zet fysiek redundante topologieën om in lusvrije, topologieën met een boomstructuur. Het grootste probleem met STP is dat bepaalde hardwarestoringen ertoe kunnen leiden dat STP mislukt.
Bij deze fout ontstaan doorstuurlussen (STP-lussen). STP-lussen kunnen grootschalige netwerkuitval veroorzaken.
In dit document wordt de STP-functie voor lusbewaking beschreven die is bedoeld om de stabiliteit van de Layer 2-netwerken te verbeteren.
In dit document wordt ook de scheefdetectie van de Bridge Protocol Data Unit (BPDU) beschreven. BPDU-scheefdetectie is een diagnostische functie die syslog-berichten genereert wanneer BPDU's niet op tijd worden ontvangen.
Beschikbaarheid van functies
Cisco IOS
STP-poortrollen
Intern wijst STP aan elke bridge (of switch) poort een rol toe die is gebaseerd op de configuratie, topologie, relatieve positie van de poort in de topologie en andere overwegingen.
De poortrol definieert het gedrag van de poort vanuit het STP-oogpunt. Op basis van de poortrol verzendt of ontvangt de poort STP-BPDU's en stuurt of blokkeert het gegevensverkeer door.
Deze lijst geeft een korte samenvatting van elke STP-poortrol:
-
Aangewezen—Per link (segment) wordt één aangewezen poort geselecteerd. De aangewezen haven is de haven die het dichtst bij de root-brug ligt. Deze poort stuurt BPDU's op de link (segment) en stuurt het verkeer naar de root-brug. In een STP-geconvergeerd netwerk bevindt elke aangewezen poort zich in de status STP-doorsturen.
-
Root: De brug kan maar één root-poort hebben. De root poort is de poort die naar de root-brug leidt. In een STP-geconvergeerd netwerk bevindt de hoofdpoort zich in de status STP-doorsturen.
-
Alternate—Alternate poorten leiden naar de root-brug, maar zijn geen root poorten. De alternatieve poorten behouden de status STP-blokkering.
-
Back-up—Dit is een speciaal geval wanneer twee of meer poorten tussen dezelfde switches met elkaar zijn verbonden, rechtstreeks of via gedeelde media. In dit geval wordt één haven aangewezen en worden de rest van de havens geblokkeerd. De rol voor deze poort is back-up.
STP Loop Guard
Functiebeschrijving
Loop Guard, de functie voor bescherming tegen STP-lussen, biedt extra bescherming tegen Layer 2-doorstuurlussen (STP-lussen). Er wordt een STP-lus gemaakt wanneer een STP blokkerende poort in een redundante topologie abusievelijk de doorstuurtoestand krijgt.
Dit gebeurt doorgaans omdat een van de poorten van een fysiek redundante topologie (niet noodzakelijkerwijs de STP blokkerende poort) geen STP-BPDU's meer ontvangt. Voor de werking is STP afhankelijk van de voortdurende ontvangst of verzending van BPDU's op basis van de poortrol.
De aangewezen poort verzendt BPDU's, de niet-aangewezen poort ontvangt BPDU's.
Wanneer een van de poorten in een fysiek redundante topologie geen BPDU's meer ontvangt, gaat STP ervan uit dat de topologie geen lussen bevat. Uiteindelijk wordt de blokkerende poort van de alternatieve of back-uppoort aangewezen en krijgt deze een doorstuurtoestand. Deze situatie leidt tot een lus.
Loop Guard voert extra controles uit. Als BPDU’s niet op een niet-aangewezen poort worden ontvangen en Loop Guard wordt ingeschakeld, krijgt die poort de voor STP-lussen inconsistente blokkeertoestand in plaats van de luister-, leer- of doorstuurtoestand.
Zonder de functie Loop Guard neemt de poort de rol van aangewezen poort aan. De poort krijgt de STP-doorstuurtoestand en maakt een lus.
Wanneer de lusbescherming een inconsistente poort blokkeert, wordt dit bericht geregistreerd:
-
Cisco IOS
%SPANTREE-2-LOOPGUARD_BLOCK: Loop guard blocking port FastEthernet0/24 on VLAN0050.
Zodra de BPDU is ontvangen op een poort in een lus-inconsistente STP-status, gaat de poort over naar een andere STP-status. Voor de ontvangen BPDU betekent dit dat de terugvordering automatisch is en dat interventie niet nodig is. Na herstel wordt dit bericht geregistreerd:
-
Cisco IOS
%SPANTREE-2-LOOPGUARD_UNBLOCK: Loop guard unblocking port FastEthernet0/24 on VLAN0050.
Beschouw dit voorbeeld om dit gedrag te illustreren:
Switch A is de switch. Switch C ontvangt geen BPDU's van switch B vanwege een storing in de unidirectionele koppeling op de koppeling tussen switch B en switch C.
Mislukte unidirectionele verbinding
Zonder lusbewaking gaat de STP-blokkeringspoort op switch C over naar de STP-luistertoestand wanneer de max_age-timer verloopt en vervolgens gaat deze over naar de doorstuurtoestand in twee keer de forward_delay-tijd.
Deze situatie leidt tot een lus.
Loop wordt gemaakt
Met lusbescherming ingeschakeld, gaat de blokkeerpoort op switch C over in STP-lus-inconsistente status wanneer de max_age-timer verloopt.
Een poort in STP-lus-inconsistente status geeft geen gebruikersverkeer door, dus er wordt geen lus gemaakt. (De lus-inconsistente toestand is effectief gelijk aan de blokkerende toestand.)
Loop Guard ingeschakeld voorkomt lus
Configuratieoverwegingen
De functie voor lusbeveiliging is per poort ingeschakeld. Zolang de poort echter op STP-niveau wordt geblokkeerd, blokkeert loop guard inconsistente poorten per VLAN (vanwege STP per VLAN).
Dat wil zeggen dat als er voor slechts één bepaald VLAN geen BPDU's worden ontvangen op de trunkpoort, alleen dat VLAN wordt geblokkeerd (verplaatst naar een lus-inconsistente STP-status).
Om dezelfde reden wordt, indien ingeschakeld op een EtherChannel-interface, het hele kanaal geblokkeerd voor een bepaald VLAN, niet slechts één koppeling (omdat EtherChannel vanuit STP-oogpunt als één logische poort wordt beschouwd).
Op welke poorten is de loopbescherming ingeschakeld? Het meest voor de hand liggende antwoord is op de blokkerende poorten. Dit is echter niet helemaal juist.
Loop guard moet worden ingeschakeld op de niet-aangewezen poorten (meer bepaald op root en alternatieve poorten) voor alle mogelijke combinaties van actieve topologieën.
Zolang de loopguard geen functie per VLAN is, kan dezelfde (trunk) poort worden aangewezen voor het ene VLAN en niet voor het andere.
Ook moet rekening worden gehouden met de mogelijke failoverscenario's.
Voorbeeld
Poorten met Loop Guard ingeschakeld
Standaard is lusbescherming uitgeschakeld. Dit commando wordt gebruikt om loop guard in te schakelen:
-
Cisco IOS
spanning-tree guard loop
Router(config)#interface gigabitEthernet 1/1
Router(config-if)#spanning-tree guard loop
In feite kan lusbescherming worden ingeschakeld op alle point-to-point-koppelingen. De point-to-point link wordt gedetecteerd door de duplexstatus van de link. Als de duplex vol is, wordt de link als punt-tot-punt beschouwd. Het is nog steeds mogelijk om globale instellingen per poort te configureren of te overschrijven.
Geef deze opdracht op om loop guard wereldwijd in te schakelen:
-
Cisco IOS
Router(config)#spanning-tree loopguard default
Geef deze opdracht op om loop guard uit te schakelen:
-
Cisco IOS
Router(config-if)#no spanning-tree guard loop
Geef deze opdracht op om loop guard globaal uit te schakelen:
-
Cisco IOS
Router(config)#no spanning-tree loopguard default
Geef deze opdracht op om de status van de lusbeveiliging te controleren:
-
Cisco IOS
show spanning-tree
Router#show spanning-tree summary
Switch is in pvst mode
Root bridge for: none
EtherChannel misconfig guard is enabled
Extended system ID is disabled
Portfast Default is disabled
PortFast BPDU Guard Default is disabled
Portfast BPDU Filter Default is disabled
Loopguard Default is enabled
UplinkFast is disabled
BackboneFast is disabled
Pathcost method used is short
Name Blocking Listening Learning Forwarding STP Active
---------------------- -------- --------- -------- ---------- ----------
Total 0 0 0 0 0
Loop Guard versus UDLD
Loop guard en Unidirectional Link Detection (UDLD) functionaliteit overlappen elkaar, deels in de zin dat beide beschermen tegen STP storingen veroorzaakt door unidirectionele links. Deze twee functies verschillen echter in functionaliteit en hoe ze het probleem benaderen.
Deze tabel beschrijft de functionaliteit voor lusbescherming en UDLD:
Functionaliteit |
Loop Guard |
UDLD |
Configuratie |
Per-poort |
Per-poort |
Actiegranulariteit |
Per-VLAN |
Per-poort |
Automatisch herstellen |
Ja |
Ja, met de functie voor het uitschakelen van een fout |
Bescherming tegen STV-storingen veroorzaakt door unidirectionele koppelingen |
Ja, wanneer ingeschakeld op alle root- en alternatieve poorten in redundante topologie |
Ja, wanneer ingeschakeld op alle koppelingen in redundante topologie |
Bescherming tegen STV-storingen veroorzaakt door problemen in de software (aangewezen switch verzendt geen BPDU) |
Ja |
Nee |
Bescherming tegen onjuiste bedrading. |
Nee |
Ja |
Op basis van de verschillende ontwerpoverwegingen kunt u kiezen voor UDLD of de functie voor lusbescherming. Wat STP betreft, is het meest opvallende verschil tussen de twee functies de afwezigheid van bescherming in UDLD tegen STP-fouten veroorzaakt door problemen in software.
Als gevolg hiervan verzendt de aangewezen switch geen BPDU's. Dit type storing is echter (in orde van grootte) zeldzamer dan storingen veroorzaakt door eenrichtingsverbindingen. In ruil daarvoor kan UDLD flexibeler zijn in het geval van unidirectionele links op EtherChannel.
In dit geval schakelt UDLD alleen mislukte koppelingen uit en kan het kanaal functioneel blijven met de koppelingen die overblijven. Bij een dergelijke storing brengt de lusbeschermer het in een lus-inconsistente toestand om het hele kanaal te blokkeren.
Bovendien werkt loop guard niet op gedeelde links of in situaties waarin de link sinds de koppeling eenrichtingsverkeer is geweest. In het laatste geval ontvangt de poort nooit BPDU en wordt deze aangewezen.
Omdat dit gedrag normaal zou kunnen zijn, wordt dit specifieke geval niet gedekt door loopguard. UDLD biedt bescherming tegen een dergelijk scenario.
Zoals beschreven, wordt het hoogste beschermingsniveau geboden wanneer u UDLD en lusbescherming inschakelt.
Interoperabiliteit van Loop Guard met andere STP-functies
Root Guard
De root guard is wederzijds exclusief met de loop guard. De root guard wordt gebruikt op aangewezen poorten, en het is niet mogelijk dat de poort niet-aangewezen geworden.
De lusbeschermer werkt op niet-aangewezen poorten en staat niet toe dat de poort wordt aangewezen door het verstrijken van max_age. De root guard kan niet worden ingeschakeld op dezelfde poort als de loop guard.
Wanneer de loopbescherming op de poort is geconfigureerd, wordt de op dezelfde poort geconfigureerde rootbescherming uitgeschakeld.
Uplink snel en backbone snel
Zowel uplink fast als backbone fast zijn transparant voor de lusbeschermer. Wanneer max_age wordt overgeslagen door backbone fast op het moment van reconvergentie, activeert het niet de loopguard.
Voor meer informatie over uplink fast en backbone fast, raadpleegt u deze documenten:
PortFast- en BPDU-bewaking en dynamisch VLAN
Loop Guard kan niet worden ingeschakeld voor poorten waarop PortFast is ingeschakeld. Aangezien de BPDU-bewaker werkt op poorten die geschikt zijn voor portfast, gelden er enkele beperkingen voor de BPDU-bewaker.
Loop guard kan niet worden ingeschakeld op dynamische VLAN-poorten omdat deze poorten portfast hebben ingeschakeld.
Gedeelde links
Loop Guard mag niet worden ingeschakeld op gedeelde koppelingen. Als u lusbeveiliging inschakelt op gedeelde koppelingen, kan verkeer van hosts die zijn verbonden met gedeelde segmenten worden geblokkeerd.
Multiple Spanning Tree (MST)
Loop guard functioneert correct in de MST-omgeving.
Gerelateerde informatie