Teknoloji dünyasından en güncel bilgiler, açık kaynak çözümler ve BT altyapı yönetimi hakkında uzman görüşleri
Spanning Tree Protokolü, switch ve bridge cihazları üzerinde 2. katmanda çalışan bir protokoldür. IEEE standardı ise 802.1d olarak tanımlanır. Ağ topolojinizde birden fazla yedekli yol varsa ağınız iki yol üzerinden istek yapan mac adresini isteyecektir ve bu istek bitmeyen bir döngüye ulaşacaktır. Spanning Tree protokolü ise Spanning Tree Algorithm (STA) algoritması ile hesaplama yaparak en iyi olan yolu seçerek diğer yol veya yolları bloklayarak bitmeyen döngünün oluşmasını engelleyecektir.
Spanning tree ilk aşamada merkezi bir switch seçer. Bu switchi seçerken öncelik değeri belirler. Öncelik değerleri aynı ise MAC adresleri hexadecimal rakamlarda düşük değere sahip olanı seçer. Bu switch'e Root Bridge denir. Root bridge seçimi yapıldıktan sonra switchler arasındaki bağlantı hızını baz alınarak en hızlı yolu seçer. Bu seçime Spanning Tree Algorithm (STA) isimli bir algoritmayla sağlar.
Spanning Tree algoritması en yakın ve düşük maaliyetli yolu seçer. 2 saniye aralıklarla switchler arası bağlantılarda BPDU paketi iletilir. BPDU paketi Root ID ve Root Bağlantısının maaliyet değeri (Root Path Cost) ve Bridge ID değerlerini iletir. Bu değerlere göre komşuluklar kurulur ve spanning tree ağacı oluşur. Spanning Tree Algorithm, Kruskal'ın MST algoritması üzerine kurgulanmıştır.
BPDU Nedir? (Bridge Protocol Data Unit)
BPDU ağaç hiyerarşisindeki cihazların birbirini tanıması için kullanılan bilgileri içerir. Root ID, Bridge ID ve Root Port Cost değeri iletilir. Bu değerler ile Root Bridge'in ID değeri, Bridge ID ve yol maaliyeti alınarak spanning tree algoritması için gerekli bilgileri iletir.
Paketin hedefe ulaşırken kullandığı yolların listesini çıkartır ve bant genişliğine göre bir maaliyet değeri verir. Kullanılan yolun toplam maaliyet değeri düşük olan seçilir. Aşağıdaki tabloda bant genişliğine göre maaliyet değerleri sunulmuştur.
Spanning Tree Port Durumları
Blocking State (20 Saniye)
Switch yeni açıldığında veya spanning tree ilk defa çalıştırıldığında switch üzerindeki tüm portlar bloklanır ve sadece BPDU paketleri dinlemeye başlar. Bu duruma blocking state denir. Bu işlem 20 saniye sürer. 20 saniye içinde topolojiyi oluşturacak komşu cihazları bpdu ile keşfeder. Komşu cihazlar keşfedildikten sonra ise listening duruma geçer.
Listening State (15 Saniye)
Bu durumda blocking state üzerinde dinlediği BPDU paketleri sayesinde Root Port ve Designated Port'ları seçer ve sadece root veya designated portlardan biri dinleme moduna geçer. İlgili portlar dışındaki tüm portlar bloke durumda kalıp, BPDU paketlerini dinlemeye devam edecektir. Topolojinin bu arada değişmemesini sağlamak için bu durumda 15 saniye boyunca hiçbir veri iletimi gerçekleşmez. Listening state 15 saniye tamamlanınca learning state yani öğrenme moduna geçer.
Learning State (15 Saniye)
Öğrenme durumunda, izleme durumu üzerinde topladığı BPDU paketlerini ve mac adreslerini işlemeye başlar. Komşu cihazlardan aldığı bilgileri mac adres tablosuna işler. 15 saniye sonra forwarding state'e geçer.
Forwarding State
İletim durumuna geçer. Port üzerinden veri iletimi başlar. İletim durumunda BPDU mesajlarını dinlemeye devam eder. MAC adres tablosunu aldığı veriler ile günceller.
Disabled State
Port, ağ yetkilisi tarafından devre dışı bırakılabilir. Devre dışı bırakıldığında BPDU paketi almayacak ve diğer bağlantılardan gelen bpdu paketlerini iletmeyecektir.
NOT: Spanning Tree iletim durumuna geçme süreci toplam 50 saniye sürmektedir.
Spanning Tree Port Rol ve Görevleri
STP Rolleri Ağ hiyerarşisini oluşturmak için portlara tanımlanan görevlerdir. STA algoritması ile BPDU paketlerini dinleyerek en yakın yol maaliyeti hesaplanır ve bu yol maaliyetine göre roller belirlenir. Root Bridge seçiminden sonra port rolleri oluşturulur.
Root Port
En iyi BPDU paketini alan port, root port olarak tanımlanır. Root Bridge'e yol maaliyeti olarak en kısa olan port'dur. Root Bridge, root port'u olmayan tek bridge'dir. Diğer tüm bridge'ler en az 1 portundan bpdu paketi alır.
Designated Port
En düşük maaliyete sahip bağlantı noktasıdır. Root port için belirlenmiş yoldur. Port forwarding (iletim) durumundadır.
Alternated Port
Farklı bridge'larda bulunan farklı seçimlerde bloklanır. Aktif bağlantının gitmesi durumunda forwarding moda geçer.
Disabled Port
Cihaz üzerinde yetkili tarafından kapatılmış olan portdur.
PortFast, listening ve learning durumlarını atlayarak STP üzerinde direkt forwarding moda geçmesini sağlar. Bu durum genellikle kenar portlar için kullanılır. Örnek bir kullanıcının portu Spanning Tree'ye dahil olmaz ve BPDU mesajları almaz veya iletmez. Bu kullanıcı portu için STP tarafındaki BPDU mesajlarını dinleme ve öğrenmeye gerekmez. Bu kullanıcının ilk kablo takıldığında veya cihaz switch'e dahil olduğunda IP almak veya internete çıkmak isteyecektir. Bu tip erişimler için spanning tree portfast diğer markalardaki adı ile edge port özelliği kullanılır.
BPDU Guard, STP topolojisini BPDU ile ilgili saldırılardan korumak için kullanılır. BPGD guard asla bpdu paketi alınmaması gereken portlar üzerinde etkinleştirilmelidir. BPDU Guard, aktif edilen portlar üzerinde BPDU paketlerini takip eder ve BPDU paketi gördüğünde portu errdisable moduna düşürür ve kapatır.
BPDU Filter, Portfast aktif olan portlarda bpdu paketlerini uç sisteme iletmesini engeller. Portfast etkileştirildiğinde STP algoritması, portfast etkin olduğunda bakmaksızın tüm portlardan bpdu gönderir. BPDU filter bu durumda devreye girer. BPDU paketinin iletimini engeller. Portfast aktif portlarda uygulanır.
Standart STP, ağ yöneticisine, switchlerde L2 topolojisini güvenli bir şekilde uygulatmak için herhangi bir yol sağlamaz. Spanning Tree Algoritmasına göre root bridge seçilir. STP öncelik değeri ve MAC adresine dayalıdır. Şartları daha iyi olan bir switch yapılandırmayı değiştirebilir. Bu duruma root guard devreye gidiyor. STP topolojisinde yeni bir cihaz kendini root olarak tanıttığında isteğini reddediyor ve root bridge olarak görevine devam ediyor.