STP (Spanning Tree Protokolü) IEEE 802.1 standardıdır. Ağ içerisinde bulunan switchlerin birbirleriyle haberleşmesi sırasında oluşabilecek sonsuz döngüleri (loop) önlemek için keşfedilmiş bir protokoldür. Ancak sadece loop önlemekle kalmaz, aynı zamanda veri iletiminin gerçekleştirileceği en iyi yol seçimini yapar. OSI Referans Modeli’nin 2. Katmanı üzerinde çalışır.
Yedekliliğin büyük öneme sahip olduğu ve yönlendirici cihazlar üzerinde fazla fiziksel bağlantının bulunduğu geniş topolojilerde loop oluşumu muhtemeldir. Spanning Tree Protocol kullanılmayan ağlarda, yedek hatların kullanılabilirliği garanti altında değildir. STP ile hatlar yedekli hale gelir, sonsuz döngü oluşumu engellenir ve aktif link kesintiye uğradığında yedek yol aktif hale geçer.
Ağ içerisinde kaynak ve hedef adresi belli olmayan paketler switche geldiğinde, hedefin bulunabilmesi için flood edilir. Flood, kaynak ve hedef adresi bilinmeyen bir paketin, bulunduğu cihaz üzerinde, cihazın bağlantısı olan tüm arayüzler üzerinden bağlı cihazlara iletilmesi olayıdır. Gönderilen paketin sahibini bulamaması ve aynı cihazlara tekrar tekrar iletilmesi de sonsuz bir döngü oluşturur. Sonsuz döngüye giren unknown frame, ağ içerisinde Broadcast Storm denilen bir probleme sebep olur. Broadcast Storm, switchin her bir portunun kendine gelen broadcast paketini yayınlaması durumudur ve ağdaki kaynakların tüketilmesine sebep olur. Böylece bant genişliği işgal edilir ve ağ kullanılamaz hale gelir.
İki switch arasında birden fazla kablo ile bağlantıları sağlanan ve Etherchannel yapılmamış yapılarda da loop oluşumu kaçınılmazdır. Bu döngü cihaz kapatılana dek artarak devam eder. Sonsuz döngü cihazın kapanmasına sebep olur. Kapanan cihazlarda döngüye sebep olan eski paketler kaybolacağı için yeni bir loop oluşana dek problem kısa süreli ortadan kalkar.
Katman 2 iletişimlerde STP, Katman 3 IPv4 iletişimlerde TTL değeri ve Katman 3 IPv6 iletişimlerde Hop Limit ile loop oluşumları engellenebilir. Ethernet paket başlıklarında TTL değeri bulunmaz. TTL (Time to Live) değeri, ağda iletilen verilerin ömrünün sınırlanmasını sağlayan bir mekanizmadır. Paket başlığı içerisinde TTL değeri bulunan paketler, yönlendirici cihazlar arasında paket iletimi sağlandıkça, TTL değeri birer birer azalır. TTL değeri sıfırlandığı zaman paket drop edilir ve paket kaybı olarak nitelendirilir. Bir cihazdan başka bir yönlendirici cihaza iletilen paket, bir hop atlamış olur. Hop count, bir paketin iletim esnasında kaç farklı noktadan geçtiğini belirtir. IPv6 iletişimlerde, belirli bir iletim sayısının, yani hop limitin aşılması veya aynı cihaza aynı paketin tekrar tekrar gelmesi sonucunda paket yine drop olur ve kayıp olarak nitelendirilir.
Cisco marka switchlerde STP özelliği, varsayılanda aktif olarak gelir ve oluşabilecek sonsuz döngüleri engellemek için bazı portlar otomatik olarak bloklanır. Switchler, oluşan döngüleri keşfetmek ve kendi aralarında haberleşmek için birbirlerine BPDU (Bridge Protocol Data Unit) mesajları yollarlar. BPDU paketinin içerisinde Bridge ID, MAC adresi, Port ID gibi bilgiler bulunur.

Katman 2 hesaplamalarında genellikle küçük değere sahip olan özellikler kazanırken, Katman 3 hesaplamalarında yüksek değere sahip özellikler kazanır. Bu sebeple, Bridge ID değeri en düşük cihaz ortamda Root Bridge olarak atanır. Bridge ID hesaplamaları için cihazların öncelikle priority değerleri karşılaştırılır, eğer priority değerleri birbirleri ile aynı ise MAC adresleri arasında bir karşılaştırma yapılır. MAC Adresi küçük değere sahip olan cihaz, Root Bridge olarak seçilir.
Ek olarak, Convergence Time, STP’nin çalışmaya başlayıp, bütün seçimlerin ve atamaların tamamlandığı süre boyunca geçen çalışma süresidir. Bu sürecin sonunda Root Bridge seçimi yapılmış, portlar iletime uygun veya blok duruma gelmiş olur. Convergence Time süresince veri iletişimi gerçekleştirilemez.

Root Bridge: STP çalıştırılan ağlarda, STP algoritmasına göre ağ içerisinde bir cihaz Root Bridge seçilir. Root Bridge, ağ içerisinde sonsuz döngü oluşumunu önlemek için, STP algoritması ile seçilmiş referans noktası, lider yönlendirici cihaz konumundadır. Root Bridge seçilen cihaz üzerinde, ağdaki tüm switchlerden BPDU mesajları toplanmaya başlanır. Portların durumları, toplanacak ve dağıtılacak BPDU mesajları aracılığı ile kararlaştırılır.
Başlangıçta tüm cihazlar kendisini Root Bridge belirleyerek bağlı olduğu tüm cihazlara BPDU mesajları yollamaya başlarlar. İletilen BPDU mesaj içeriğinde Bridge ID bulunmaktadır. Bridge ID, yönlendirici cihazın sahip olduğu “Priority” (öncelik) değeri ve “MAC” adresini içerir.
” Bridge ID (BID) = Priority + MAC Adres “
Bridge ID’si düşük olan cihaz Root Bridge olmaya hak kazanır. Yani düşük priority’e sahip olan switch Root Bridge olur. Eğer priority değerleri manuel olarak konfigüre edilmediyse aynı üreticiye ait cihazların priority değerleri genellikle birbirleri ile aynı değere sahiptir. Priority değerleri eşit olan cihazlar için bir sonraki aşamada MAC adresleri karşılaştırılır. Sayısal değeri en düşük MAC adresine sahip switch Root Bridge seçilir. Root Bridge olarak seçilen cihaz, Superior BPDU yollamaya başlar.
Root Port: Root Port, sonsuz döngü oluşumunu engellemek için seçilmiş olan Root Bridge’in paket iletimindeki ilk referans noktalarıdır. Genellikle Root Bridge seçilen cihaza en yakın veya direkt bağlı olduğu cihazların üzerinde bulunan düşük cost sahibi uplink portlardan atanır. Çünkü Superior BPDU paketini alan portlar Root Port olarak atanmak zorundadır.
Ayrıca, Root Port seçiminde cost değeri öne çıkar. Cost, bir noktadan başka bir noktaya giderken harcanacak olan genel maliyettin hesaplanmış halidir. Bant genişliği, hop sayısı ve benzeri tüm durumlar cost değerini etkiler. Yüksek bandwidth, düşük cost anlamına gelmektedir. Yani bandwidth değeri yüksek olan (cost değeri düşük olan) kazanır. Root Port için seçim yapılırken 3 kritere dikkat edilir:
-Düşük Kümülatif Cost
-Düşük Upstream BID
-Düşük Port ID
Designated Port: Sonsuz döngü oluşumunu engellemek için STP tarafından seçilen Root Bridge üzerinde bulunan bütün portlar Designated Port olarak etiketlenir. Root Port dışında kalan portlar için yeni bir eleme algoritması başlatılır. Root Bridge’e giden yollar incelenir ve en düşük cost sahibi olan portlar Designated Port olarak adlandırılır. Çünkü Superior BPDU paketini gönderen portlar, Designated Port olmak zorundadır. Root Bridge’in portları asla Blocked duruma düşemez.
Blocked Port: Designated Port seçimi yapılırken en yüksek cost sahibi olan olan port Blocked Port olarak atanır. Blocked Port, herhangi bir değişiklik olmadıkça sonsuz döngüyü engellemek için bloklanmış (down) durumda kalır. Desginated Port ve Root Port dışında kalan, sonsuz döngüye sebep olabilecek portlar blocked port olarak etiketlenir.
Alternate Port: Alternate Port bir nevi bloklanmış port görevi görür. Designated Port seçimi yapılırken seçim sırasında Alternate Port durumunda beklerler. Root Port için yedek durumundadır. RSTP’de bloklanmış halde olan ancak özel durumlara sahip olan port tipleri Alternate Port olarak etiketlenir.
Edge Port: Edge Port adı verilen ek bir port tanımı vardır. Uç bağlantı noktaları, bilgisayar, sunucu gibi cihazlara bağlanan bağlantı noktalarıdır. Bu nedenle Edge Port, STP hesaplamalarına katılmaz. Edge Port, BPDU paketlerini almaz.
Backup Port: RSTP’de bloklanmış halde bulunan port tipleri Backup Port olarak etiketlenir. Diğer bir deyişle yedek olan porttur.
NOT: Herhangi bir Designated Port’un kopması, iptal olması vb. durumlarda yeniden bir STP hesaplaması yapılır ve yedekte bekleyen portlar arasında seçim yapıldıktan sonra yeni Designated Portlar belirlenir. Topolojide yaşanacak olan kopma durumlarında sistem her seferinde STP hesaplamalarını yeniden yapacaktır ve her seferinde başka seçimler gerçekleşebilir. Port altında yazılacak bazı komutlar sayesinde sistem sabitlenebilir. Çünkü her seferinde Root Bridge, Root Port vs. değişmesi istenilen bir durum değildir. Bu komutlar aşağıda belirtilmiştir:
- Uplink-Fast → Uplink Fast, Cisco için 802.1D standardında çalışan algoritmadır. Root Bridge’e giden portlar hiçbir zaman blok durumda olmaz. Root Port arızalanmasından önce root bridge için alternatif yolların bulunmasını sağlar. Root Port down olduğu zaman Root Port’dan sonra cost değeri düşük olan ikincil link hemen devreye girer.
- Port Fast → Port Fast komutu ile Convergence Time azalır, böylece ağ kaynaklarına erişim hızı artar. Fakat bu porta herhangi bir switch takılabilir ve STP hesaplamalarını bozabilir.
- BPDU Guard → Port-Fast aktif edilen porttan BPDU paketinin gelmesi, STP hesaplamalarını bozacaktır. BPDU Guard aracılığı ile, Port-Fast aktif edilen porta BPDU paketi geldiği zaman, port otomatik olarak kapatılır. Bu sebeple Port-Fast aktif edildikten sonra STP hesaplarının bozulmaması için mutlaka BPDU guard aktif edilmelidir.
- Root Guard → Root Switch’in üzerindeki Designated Portlara root guard komutunun girilmesi ile birlikte, bir daha hiçbir switch root olamaz. Çünkü Root Switch, TCN (Topology Change Notification) yapar.
- Loop Guard → Yazılımsal hatalar için kullanılır. Bu komutun uygulandığı port BPDU paketlerini alması gerekirken, BPDU paketlerini almayı bırakırsa, port Forwarding State durumuna geçmektense Inconsistence durumuna geçer. Tekrar BPDU paketi alana dek Inconsistence durumunda kalır.
- UDLD (Unidirectional Link Detection) → Karşılıklı gönderilen Hello paketlerinin iletilememesi durumunda, Katman 1 üzerinde problem yaşanmış olabilir. Fiziksel katmanda yaşanabilecek donanımsal hatalar için kullanılır, sadece fiber bağlantıya sahip portlarda kullanılabilir. Yapısal olarak Loop Guard’dan farklı olduğu için Loop Guard ile birlikte kullanılmalıdır. Normal ve Agresif olmak üzere iki farklı modda çalışır. Normal mod içerisinde Hello paketleri alınmamaya başlanır ise port Undetermined duruma geçer. Agresif mod içerisinde Hello paketler alınamamaya başlanır ise port Error-Disabled duruma geçer.
STP ÇEŞİTLERİ
1. STP (SPANNING TREE PROTOCOL)
STP, IEEE 802.1D endüstri standardıdır. Sonsuz döngü oluşumlarını önlemek için geliştirilmiş olan ilk protokoldür. STP’nin çalışması sırasında gerçekleştirdiği işlemleri tamamlamasüresi (convergence time) yaklaşık 50 saniyedir. Bu süre zarfında gerçekleşen işlemler sırasıyla aşağıdaki gibidir:
Root Port’ ta herhangi bir kesinti oluşması durumunda yeniden Root Port seçimi yapılması için rota hesaplanmasına ihtiyaç duyulur. Portun Blok durumdan dinlemeye (Listen State) geçişi 20 saniye, dinlemeden öğrenmeye (Learning State) geçiş süresi 15 saniye, öğrenmeden yönlendirmeye (Forwarding) geçiş süresi ise ortalama 15 saniyedir. Böylece ortalama 50 saniyelik hesaplama süresi mevcuttur. Bu süre içerisinden hiçbir cihaz veri iletişimi gerçekleştiremez. Zaman duyarlı, kritik öneme sahip uygulamaların çalıştığı ağlarda istenilen bir durum değildir. Tek bir “instance” ile tüm VLAN’ların kullanılması sağlanır.
Forwarding -> RP ve DP iletişim başlar. |
Learning -> Tüm bilgiler bridgeler tarafından öğrenilir. |
Listening -> Root bridge, root port seçilir. |
Blocking -> BPDU mesaj trafiği olur ama iletişim olmaz. |
Disabled -> Her port ilk başta disable durumda olur. |
2. RSTP (RAPID SPANNING TREE PROTOCOL)
RSTP, IEEE 802.1W standardıdır. RSTP işlemi STP’ye benzer yapıda çalışmaktadırır. STP’den farklı olarak, çalışması sırasında gerçekleştirdiği işlemler ve bu işlemleri tamamlama süresi (convergence time) STP’ye göre çok daha azdır. İşlem süresinin tolere edilemediği ve 50 saniyeden az olması istenilen topolojilerde kullanılmak için geliştirilmiştir. STP’de yapılan rota hesaplamaları 5 adımda gerçekleşirken, RSTP’de yapılan rota hesaplamaları 3 adımda gerçekleştirilir. Böylece STP’den daha hızlı çalışır. Çalışma prensibi STP’den farklı olarak bir portu bloklamak yerine discard etme (yok etme) işlemi kullanılır. Port modu Blok olarak görüntülenebilir ancak bu port, Alternate Root Port. Root Port üzerinde oluşan herhangi bir arızada, Designated Port devreye girmektedir. RSTP’nin çalışması sırasında gerçekleşen işlemler sırasıyla aşağıdaki gibidir:
Forwarding-> İletişim başlar. | |
Learning-> STP Learning+ STP Listening | |
Discarding -> BPDU mesaj trafiği başlar. |

3. MSTP (MULTIPLE SPANNING TREE PROTOCOL)
MSTP, IEEE 802.1S standardıdır. RSTP gibi çalışmaktadır, hesaplamaların tamamlanma süresi (convergence time) STP’ye kıyasla çok daha kısa sürmektedir. Ama RSTP’de portlarda bloklama işlemi gerçekleştirilirken, MSTP’de port bloklama işlemi gerçekleştirilmez. MSTP’de, belirli VLAN grupları için “instance” oluşturulur. Çalışma sırasında gerçekleşen işlemler için yapılan tüm hesaplamalar birden fazla VLAN içeren “instance” bazında yapılır. Bağlı olduğu her linkten farklı VLAN geçişi sağlar. Belirli bir grup VLAN için özel konfigüre edilmiş “instance” değerleri kullanılır. Genellikle VPLS yapılarında tercih edilir. Böylece “Load Balance (Yük Dengeleme)” sağlanır. Bununla birlikte farklı STP “instace”ları diğer “instance”lardan bağımsız olarak kendi topolojisini kullanabilir.
4. PVST (PER VLAN SPANNING TREE PROTOCOL)
PVST, Cisco tarafından geliştirilen ve her bir VLAN için ayrı ayrı “instance” oluşturularak, STP’nin ayrı ayrı çalıştırıldığı protokoldür. Genellikle MSTP ile karıştırılır. Fakat PVST, her VLAN için bir instance oluşturulur. MSTP de ise çoklu VLAN grupları için bir instance oluşturulur. Böylece PVST sayesinde her VLAN’a ayrı bir instance olacağından daha ölçeklenebilir bir topoloji elde edilebilir.
SELÇUK KARAARSLAN
7 Aralık 2021 — 21:59
Çok faydalı bir paylaşım mükemmel emeğinize sağlık hocam