Bir ağda iki switch arasında yanlışlıkla (veya yedeklilik amacıyla) birden fazla fiziksel bağlantı olduğunda, döngü (loop) oluşur. Sonuç genellikle dramatiktir: broadcast storm — ağın saniyeler içinde kullanılamaz hale gelmesi. Spanning Tree Protocol (STP), tam olarak bunu önlemek için tasarlandı.
STP Nasıl Çalışır?
STP, switch’ler arasında mesajlaşarak (BPDU – Bridge Protocol Data Unit) ağ topolojisini haritalar ve döngüye neden olabilecek fazla bağlantıları mantıksal olarak bloke eder (fiziksel bağlantı kalır, ancak trafik o port üzerinden geçmez). Bu süreçte üç temel port durumu ortaya çıkar:
- Root Port: Kök switch’e (root bridge) en kısa yoldaki port
- Designated Port: Bir segmentte trafiği ileten aktif port
- Blocking Port: Döngüyü önlemek için trafiği engelleyen, yedek olarak bekleyen port
Klasik STP’nin Yavaşlığı ve RSTP Çözümü
Orijinal STP (802.1D), bir bağlantı koptuğunda yeniden yakınsama (convergence) için 30-50 saniye gibi kabul edilemez bir süre gerektirir. Bu süre boyunca ağ bölümleri birbirine erişemez. RSTP (802.1w – Rapid Spanning Tree), bu süreyi birkaç saniyeye indirerek modern ağların standardı haline geldi.
Switch(config)# spanning-tree mode rapid-pvst
Sahada En Sık Karşılaşılan STP Sorunları
- Yanlışlıkla oluşturulan döngüler: Bir kullanıcının iki network kablosunu aynı switch’in iki farklı portuna takması (örn. bir switch’i çoğaltmak isterken). STP olmadan bu, tüm ağı çökertebilir.
- Root Bridge’in yanlış cihaz olması: Varsayılan ayarlarla, en düşük MAC adresine sahip switch otomatik olarak root olur — bu genellikle en eski/en zayıf switch’tir! Root bridge’i bilinçli olarak omurga (core) switch’e sabitlemek gerekir.
Switch(config)# spanning-tree vlan 10 root primary
Kritik Bir Koruma: BPDU Guard
Son kullanıcı portlarına (access port) yanlışlıkla bir switch bağlanması, beklenmedik STP yeniden hesaplamalarına yol açabilir. BPDU Guard, bu tür portlarda BPDU alındığında portu otomatik olarak devre dışı bırakarak ağın geri kalanını korur:
Switch(config-if)# spanning-tree portfast Switch(config-if)# spanning-tree bpduguard enable
Sahadan Bir Vaka
Bir ofiste periyodik, açıklanamayan ağ kesintileri yaşanıyordu. show spanning-tree çıktısını incelediğimde, root bridge’in sürekli değiştiğini (topology change) gördüm. Kök neden, bir çalışanın kendi küçük ev tipi switch’ini (STP desteği olmayan) iki farklı prize bağlayarak yanlışlıkla bir döngü oluşturmasıydı. BPDU Guard’ın access portlarında aktif olmaması, bu sorunun günlerce fark edilmemesine yol açmıştı.
Sonuç
STP/RSTP, çoğu zaman “arka planda sessizce çalışan ve fark edilmeyen” bir protokoldür — ta ki yanlış yapılandırıldığında tüm ağı felç edene kadar. Root bridge’i bilinçli belirlemek ve access portlarında BPDU Guard kullanmak, sahada en çok değer gördüğüm iki basit önlemdir.