Spanning Tree Protokolü (STP)

Eyl 07, 2013

Spanning Tree Protokolü (STP), bir IEEE 802.1 standardı olup anahtarlayıcı da dahil olmak üzere tüm köprü (bridge) cihazlarında yazılım bazında spanning-tree algoritması kullanarak herhangi bir LAN segmenti (çarpışma etki alanı) arasında sadece tek bir aktif bağlantı kalması için bazı portları bloklar. Aynı zamanda duraklar arasında birden çok aktif yol bulunmasıyla meydana gelebilecek döngüleri de engeller.

Spanning-tree algoritması, köprü ve anahtarlayıcı temelli ağlarda kullanılır ve trafiğin kaynaktan hedefe giderken geçebileceği en iyi yola karar verir. Bu algoritma tüm yedek yolları da göz önünde bulundurup, herhangi bir anda bunlardan yalnızca birini aktif hale getirir.

Spanning-tree Protokolü'nün aktif olarak kullanıldığı ağlarda her bir ağ başına bir tane kök köprü (root bridge), her bir kök olmayan köprüde (non-root bridge) bir tane kök portu (root port), ve her bir parçada trafiğin geçmesi için bir tane atanmış port (designated port) bulunur.

Bazı Spanning Tree Terimleri 

  • Köprü kimliği (Bridge ID): Anahtarlayıcının MAC adresi onun köprü ID(kimliği)dir. Ağda kök köprü seçimi için önemlidir.
  • Kök Olmayan Köprü (Non-root bridge): Kök köprü hariç diğer tüm köprüler kök olmayan köprüdür.
  • Kök portu (Root port): Kök bağlantı noktası, her zaman kök köprüye direk bağlı olan veya en yakın olan bağlantı noktasıdır.
  • Bağlantı Noktası Maliyeti (Designated port cost): İki anahtarlayıcı arasında birden çok kök olmayan bağlantı varsa göz önünde bulundurulur. Bant genişliğine bakarak hesaplanır.
  • Köprü Protokolü Veri Birimi (Bridge Protocol Data Unit-BPDU): Aynı yerel ağdaki (LAN) spanning-tree protokolüne dahil tüm anahtarlayıcılar ve köprüler, birbirleriyle BPDU mesajlarıyla haberleşirler. BPDU'lar; anahtarlayıcının önceliği, port önceliği, port değeri, MAC adresi gibi bilgileri içerir. Spaning-tree protokolü de bu bilgileri kök köprüyü, kök portunu ve atanmış portu seçerken kullanır.
  • Yakınsama (Convergence): Yakınsama, anahtarlayıcıların ve köprülerin tüm bağlantı noktalarının bloklama durumundan iletim durumuna geçerken oluşur. Yakınsama tamamlanana kadar veri iletilmez. Tekrar veri iletilmeden önce tüm cihazların güncellenmesi gerekir. Yakınsama, tüm cihazların aynı veri tabanına sahip olduğuna emin olabilmek için önemlidir, fakat biraz zaman kaybettirir.

Kök Köprü seçimi

Kök köprü, anahtarlanmış ağlarda (switched networks) spanning-tree topolojisinin mantıksal merkezidir. Topoloji üzerindeki her köprü birbirine "hello BPDU" denen mesajları göndererek kendisinin kök olduğunu iddia eder. Bu mesajlarda;

  • Kök köprünün kimliği (BID): Başlangıçta her köprünün kendini kök köprü olarak gösterdiği için bu değer kendi ID’sidir .
  • Öncelik: Kök köprüye aittir. Yine her köprü kendini kök köprü olarak gösterdiği için bu değer kendi önceliğidir.
  • Köke ulaşmanın maliyeti: Başlangıçta sıfırdır.

Kök köprü seçme sürecinde en düşük önceliğe sahip olan kök olur. Eğer öncelikler eşitse en düşük ID'ye sahip olan kök olcaktır.

 Ağdaki diğer tüm anahtarlayıcılar ve köprüler kök olmayan köprü olarak adlandırılır.
 

Bandwidth   STP Maliyeti
 4 Mbps  250
 10 Mbps  100
 16 Mbps  62
 45 Mbps  39
 100 Mbps  19
 155 Mbps  14
 622 Mbps  6
 1 Gbps  4
 10 Gbps  2

Ağ Değişimine Verilen Tepkiler

Kök köprüler, çalışır durumda olduklarını belirtmek için göndermiş oldukları "hello" BPDU'larını iki saniyede bir gönderirler. Diğer tüm anahtarlayıcılar ve köprüler bu BPDU'ları alırlar. Eğer "Hello"lar, verilerin taşındığı yoldan geliyorsa köke giden yol hala ayakta demektir. "Hello" ların alınmasında bekleme olursa Spanning-tree işlemi tekrar başlar. "Hello" BPDU, köprülerin ağ değişimine tepki verirken beklemeleri gereken süreleri tanımlar. Bu süreler; "Hello Time", en uzun bekleme süresi (max age), ve iletim gecikmesidir (forward delay).

  • "Hello Time": Kökün ardarda köprü/anahtarlayıcılar tarafından iletilecek olan periyodik "hello" BPDU'ların tarafından ne kadar sıklıkla göndereceğini belirtir. Varsayılan süresi 2 saniyedir.
  • En uzun bekleme süresi: Anahtarlayıcı/köprülerin "hello"ları duymamasından sonra STP topolojisini değiştirmesi için beklemesi gereken süredir. Varsayılan süresi 20 saniyedir.

  • İletim gecikmesi: Arabirim (interface) bloklama durumundan (blocking state) iletim durumuna (forwarding state) gelmesi için geçmesi gereken süre.

Kararlı bir ağda STP işlemi şu şekilde çalışır:

  1. Kök, tüm arabirimlerinden "hello" BPDU'larını göderir. (Bu BPDU'ların maliyeti 0'dır.)
  2. Komşu anahtarlayıcı/köprüler, "hello" BPDU'ları kök olmayan atanmış bağlantı noktalarından (non-root designated port) maliyetine kendi maliyetlerini de ekleyip iletirler.
  3. Ağdaki her anahtarlayıcı/köprü "hello" BPDU aldığında aşama 2'yi tekrarlar.
  4. Her köprü her "hello time" da aşama 1'i tekrarlar
  5. Eğer bir köprü/anahtarlayıcı "hello time" süresi içerisinde "hello" BPDU almadıysa, en uzun bekleme süresi boyunca normal çalışmasına devam eder, hala BPDU almadıysa STP topolojisini değiştirmek için tepki verir.

Spanning Tree Protokolü'nin Görevi
Spanning-tree algoritması her köprü ve anahtarlayıcı portunu bloklama ya da iletim durumlarından birine getirir. Bu port durumları;

  • Bloklama Durumu (Blocking state):  Portlardan çerçeve gönderilemez veya alınamaz sadece BPDU'ları dinler. Bu durumun amacı döngülerin oluşmasını engellemektir. Anahtarlayıcılar çalıştırıldığında tüm portlar varsayılan olarak bloklama durumundadır.

  • Dinleme Durumu (Listening State): Bağlantı noktaları, ağda döngü oluşmadığına emin olmak için çerçeveleri geçirmeden önce BPDU'ları dinler. Bağlantı noktaları bu durumdayken MAC adresi tablosunu hazırlamadan veri iletmeye hazırlanır.
  • Öğrenme Durumu (Learning State): Bağlantı noktaları BPDU'ları dinler ve ağdaki tüm yolları öğrenir. Bu durumdaki bağlantı noktaları, MAC adres tablosunu oluşturmaya başlar ama henüz çerçeve iletmez.
  • İletim Durumu (Forwarding State): Portların etkin spanning-tree içinde bulundukları düşünülür. İletim portlarının tümü çerçeve alabilir ve gönderebilirler. 





  • Edilgenleştirilmiş Durum (Disable State): Edilgenleştirilmiş (idari bakımdan) durumdaki bağlantı noktası çerçeve iletimine ve STP'ye katılmaz.

Spanning Tree Bağlantı Noktası Durumları

STP çalıştıran Köprü ve anahtarlayıcılar üzerindeki bağlantı noktaları, beş farklı durum arasında geçiş yapar.

  • Öbek Durumu (Blocking State): Öbek durumundaki bağlantı noktası, çerçeve iletmez sadece BPDU'ları dinler. Bu durumun amacı döngülerin oluşmasını engellemektir. Anahtarlayıcılar çalıştırıldığında tüm bağlantı noktaları varsayılan olarak öbek durumundadır.
  • Dinleme Durumu (Listening State): Bağlantı noktaları, ağda döngü oluşmadığına emin olmak için çerçeveleri geçirmeden önce BPDU'ları dinler. Bağlantı noktaları bu durumdayken MAC adresi tablosunu hazırlamadan veri iletmeye hazırlanır.
  • Öğrenme Durumu (Learning State): Bağlantı noktaları BPDU'ları dinler ve ağdaki tüm yolları öğrenir. Bu durumdaki bağlantı noktaları, MAC adres tablosunu oluşturmaya başlar ama henüz çerçeve iletmez.
  • İletme Durumu (Forwarding State): Bağlantı noktası tüm veri çerçevelerini hem gönderir hem de alır.
  • Edilgenleştirilmiş (Disable): Edilgenleştirilmiş (idari bakımdan) durumdaki bağlantı noktası çerçeve iletimine ve STP'ye katılmaz.

Anahtarlayıcı bağlantı noktaları genel olarak ya iletim durumundadır ya da bloklama durumundadır. Sadece ağ topolojisi değiştiğinde (yeni anahtarlayıcı eklendiğinde veya bağlantı koptuğunda olur), bağlantı noktaları dinleme ve öğrenme durumunda olabilir.

 Durum  Veri Çerçeveleri İletilir mi?  Alınan Çerçevelerden MAC Adresi Öğrenilir mi?  Geçici mi yoksa Kararlı Bir Durum mudur?
 Bloklama  Hayır  Hayır  Kararlı
 Dinleme  Hayır  Hayır  Geçici
 Öğrenme  Hayır  Evet  Geçici
 İletim  Evet  Evet  Kararlı