PortFast och BPDU Guard


När en enhet ansluts till en switchport, eller när en switch startar upp, måste porten enligt klassisk STP (IEEE 802.1D) gå igenom flera tillstånd innan den kan börja skicka trafik. Först kommer Listening, där porten förbereder sig, och därefter Learning där MAC-adresser lärs in.

Under dessa faser vidarebefordras ingen vanlig trafik.

Varje fas styrs av Forward Delay-timern, som är 15 sekunder. Eftersom både Listening och Learning måste genomföras blir den totala väntetiden cirka 30 sekunder innan porten når Forwarding-läge.

Den här fördröjningen kan orsaka problem i praktiken. En dator som startar skickar direkt ett DHCP Discover-meddelande för att få en IPv4-adress. Om porten fortfarande befinner sig i Listening- eller Learning-läge släpps inte detta paket igenom, vilket kan leda till att DHCP-processen misslyckas och klienten inte får någon giltig adress.

Det är intressant att jämföra med IPv6. Där är klienten inte lika beroende av DHCP, eftersom routrar kontinuerligt skickar ICMPv6 Router Advertisement-meddelanden. Även om det finns en fördröjning kan klienten ändå få information om hur adresskonfigurationen ska ske. Därför påverkas IPv6 i mindre grad av STP-fördröjningar.

PortFast – snabb aktivering av accessportar

För att lösa problemet med uppstartsdelay i klassisk STP används funktionen PortFast. När den aktiveras på en port hoppar porten direkt till Forwarding-läge utan att gå igenom Listening och Learning. Resultatet blir att enheter får omedelbar nätverksåtkomst, vilket är särskilt viktigt för exempelvis DHCP-klienter.

Det är viktigt att förstå att PortFast inte stänger av STP. Protokollet är fortfarande aktivt i bakgrunden, men porten behandlas som en så kallad edge port, det vill säga en port som ansluter till en slutenhet och inte till en annan switch.

Just därför ska PortFast endast användas på accessportar där man vet att det sitter slutanvändarenheter, som datorer eller skrivare. Om funktionen av misstag aktiveras på en port som är kopplad till en annan switch kan det uppstå en Layer 2-loop, eftersom porten börjar vidarebefordra trafik direkt utan att STP hinner ingripa.

BPDU Guard – skydd mot felkopplingar

För att minska risken för sådana fel som illustreras med bilden ovan används BPDU Guard. För att förstå funktionen behöver man känna till att switchar skickar BPDUs (Bridge Protocol Data Units) till varandra för att bygga upp och underhålla STP-topologin.

På en korrekt konfigurerad PortFast-port ska det aldrig komma några BPDUs, eftersom porten endast är tänkt för slutenheter. Om en BPDU ändå tas emot betyder det i praktiken att en annan switch har kopplats in där den inte ska vara.

När BPDU Guard är aktiverat reagerar switchen direkt på detta. Porten sätts omedelbart i ett error-disabled-läge, vilket innebär att den stängs ner för att skydda nätverket. På så sätt förhindras att en potentiell loop uppstår.

Porten återaktiveras normalt inte automatiskt, utan kräver att en administratör manuellt aktiverar den igen. Detta gör funktionen till ett effektivt skydd mot både felkopplingar och oavsiktliga konfigurationsmisstag.

Sammanfattning

PortFast och BPDU Guard används ofta tillsammans eftersom de kompletterar varandra. PortFast ger en snabb och smidig uppstart för slutenheter, medan BPDU Guard fungerar som ett säkerhetsnät som skyddar nätverket om något kopplas in fel.

I moderna nätverk med RSTP (802.1w) är konvergensen betydligt snabbare än i klassisk STP, och konceptet med edge-portar är inbyggt. Trots detta används PortFast och BPDU Guard fortfarande i stor utsträckning, eftersom de ger både tydlig kontroll och extra säkerhet i accesslagret.