Cumartesi, Aralık 19, 2020

Spanning Tree Protokolü

 

STP protokolü Layer 2 haberleşmede yaşanan sonsuz döngü anahtarlamanın önüne geçilmesi için tasarlanmış bir protokoldür. Eğer networkte switchler birbirine döngü (loop) oluşturacak şekilde bağlanırsa, Switch MAC tablosu dolup taşabilir, portlar sonsuz döngüye girmiş Ethernet trafiğiyle tıkanarak anahtarlamanın yapılması imkansız hale gelebilmektedir. 

Bunun için STP protokolünü iyi anlamak ve network tasarımı ve kurulumu yaparken buna dikkat etmek gerekmektedir.

Eğer ne yaptığınızı bilmiyorsanız Switchlerde STP protokolünün aktif olması tavsiye edilmektedir. Bazı üreticilerde varsayılan olarak STP aktiftir bazılarında değildir.

Yazıda bazen Bridge bazen Switch ifadesi kullanılmıştır. STP protokolü eski bir protokol olduğundan standartta Bridge ifadesi geçtiğinden bu yazıdaki Bridge ve Switch ifadesini aynı gibi varsayabilirsiniz.

Öncelikle kullanımda olan STP protokollerini sıralayalım: 

STP türleri:
  1. STP (802.1D): Orjinal STP protokolü (endüstri standardı)
  2. PVST+: Cisco tarafından geliştirilen ve her bir VLAN için STP protokolünün ayrı ayrı çalıştığı protokol.
  3. RSTP (802.1w): Hızlı converge (yakınsayan / toparlanan) geliştirilmiş STP protokolü (endüstri standardı)
  4. Rapid PVST+: Cisco tarafından geliştirilen ve her bir VLAN için RSTP özelliği getirilen protokol
  5. MSTP (802.1s): çoklu VLANlar bir spanning tree instance'a bağlanabilir. Bununla birlikte farklı spanning tree instace'ları diğer instance'lardan bağımsız olarak kendi topolojisini kullanabilir. (Endüstri standardı) [1]

Burada endüstri standardından kastımız protokolün belli bir üreticiye bağımlı olmamasıdır. Zaten tüm üreticiler hemen hemen tüm endüstri standardını desteklemektedir. Bu nedenle eğer birden fazla üreticinin cihazlarını kullanıyorsanız endüstri standartlarını seçmeniz tavsiye edilir. Ancak, bazı çok sevilen protokoller örneğin Cisco Discovery Protocol (CDP) bir çok üretici tarafından desteklenmektedir. Ben yine de eğer spesifik bir nedeniniz yoksa endüstri standardı protokolleri tercih etmenizi tavsiye ederim.

STP, switchler arasında iletilen BPDU (Bridge Protocol Data Unit) mesajlarıyla çalışmaktadır. BPDU mesajları içinde switchler kendi Bridge ID lerini yayımlarlar. [2]

STP'de rol ve port seçimi aşağıdaki adımlarla gerçekleşir.
  1. Root bridge seçimi
  2. Root interfaceleri forwarding state'e geçirilir.
  3. Root switch olmayan switchlerin root bridge giden root port seçimi.
  4. Root switch olmayan switch'in diğer portlarının designated port seçimi
  5. Designated olmayan portlar Blok durumuna geçer.

Port rolleri (Port Roles):
Forwarding port: bu isim trafik ileten portla karıştırılmamalıdır, bu port root seçilen bridge'in tüm portlarının aldığı STP rolüdür.
Root portlar: Root bridge giden en iyi port (maliyeti/cost'u en düşük port)
Designated port: başka bir bağlantı üzerinden root bridge'e ulaşan port
Non-designated port: Diğer tüm portlar blok durumuna geçmektedir.


Port durumları (Port States):
BPDU mesajı paylaşan portlar aşağıdaki gibi 5 durumda olabilir:
  1. Disabled: port kapatılmışsa
  2. Blocking: port trafiği blokluyorsa
  3. Listening: trafik iletmiyorsa ve mac adresi dinlemiyorsa
  4. Learning: trafik iletmiyor fakat MAC adresi öğreniyorsa
  5. Forwarding: trafiği normal bir şekilde iletiyor ve alıyorsa


Şimdi STP rol ve port seçim adımlarına geçelim.

  1. adım:
BID ye göre root bridge seçilir.

32769 default priority değeridir.
BID= priority + bridge MAC adress

BID'si en düşük olan bridge (switch) Root bridge seçilir
priorty sonradan değiştirilebilir. Böylece isterseniz Root Bridge'in hangi switch olacağına karar verebilirsiniz.


Aşağıdaki şekilde üstteki switch'in BID değeri en düşük olduğundan Root bridge olarak seçilmektedir. (çünkü hexadecimal değer olarak a değeri b değerinden daha düşüktür)

 *Şekiller kaynak [2]'den alınmıştır. 
  1. adım:
Root bridge seçilen switchin portları forwarding state'e geçirilir.

  1. adım:
Root Bridge olmayan Bridge'lerin root bridge'e giden root port seçimi:

Root port seçimi link maliyetine (cost) göre yapılmaktadır.
link maliyeti port hızlarına göre değişmektedir. 
 

 

Buna göre diğer switch'ten gelen link ve ilgili switch maliyetleri toplanır.




Örneğin root bridge bağlı switchte, root bridge bağlı olan link için, root bridgeden 0 maliyet, ilgili switchte link 1g ise 4+0=4 toplam maliyet bu link için 4 olmaktadır.

Root bridge bağlı olmayan ve diğer bridge'e (switch'e) giden hattı (link) ele aldığımızda karşıdan 4, ilgili switchten de 4 maliyet gelir eğer hatlar 1g ise, toplamda 8 maliyet elde edileceğinden root bridg'e doğrudan bağlanan hat root port olarak seçilir.

Daha sonra designated port seçimine geçilir.

  1. Adım: Designated Port seçimi.

Root bridge seçiminde olduğu gibi, root olmayan birdge'ler arasındaki hattın hangisinin Designated olacağı BID değerine bakarak karar verilir. BID değeri düşük olan bridge (switch)'in root port olmayan portları root olmayan bridge'e gidiyorsa o port designated olur. Aşağıdaki şekilde sol alttaki switchin bridge ID sağ alttaki switchten daha düşük olduğundan o switch'in root olmayan portu Designated olarak seçilir.



  1. Adım: Blocked port seçimi
Root port veya Designated olmayan tüm portlar Blocked port olur.

Convergence (yakınsama / toparlanma) süresi: port rol seçim sürelerinin tamamlanması.

Kaynaklar:
[2] Cert Bros YouTube eğitim videosu: Bu videodan çevirilmiştir,





Hiç yorum yok:

Yorum Gönder