# Ağ Döngülerini Önleme: Spanning Tree Protocol (STP/RSTP) Çalışma Mantığı ve Konfigürasyon Hataları

- Bağlantı: https://musti.org/cisco-switch/spanning-tree-protocol-stp-rstp/
- Yayımlanma: 2026-09-21T21:34:55+03:00
- Yazar: mmutlu

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ı

İki sorun diğerlerinden çok daha sık karşıma çıkıyor. Birincisi, 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.
İkincisi, root bridge’in yanlış cihaz olması — varsayılan ayarlarla en düşük MAC
adresine sahip switch otomatik olarak root olur, bu da 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
    ```

## Geçenlerde Yaşadığım 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ı.

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 önlem.
