STP(Spanning Tree Protocol)
Last updated
Last updated
Networkün sürdürülebilirliğini sağlayan , yedek yol oluşturarak haberleşmenin kesilmemesini amaçlayan yapılar kullanılmaktadır. Bu yapılar aynı zamanda trafiğin yükünü paylaşabilir ve kapasiteyi artırabilir.Bu olumlu yönlerinin yanı sıra broadcast storm, dublicate unicast frames gibi problemlere de yol açabiliyor.
Bu problemleri inceleyecek olursak ilki Broadcast Storm (Yayın fırtınası) bütün bant genişliğini saniyeler içinde tüketebilir. Çünkü aynı network içinde aynı subneti paylaşan cihazlar düzenli olarak birbirlerine broadcast paketleri gönderiyorlar. Broadcast Storm’a Network yönetimin zayıf olması, ucuz cihazlar kullanılması,konfigurasyonların yanlış yapılması gibi etkenler yol açabilmektedir.
A switchine bağlı B düğümü, B switchien bağlı A düğümü ile iletişim kurmak istiyor SwitchA bu sırada A düğümünü bilmiyor ve doğal olarak diğer switchlere paket gönderiyor. Bu sayede SwitchB ve SwitchC B düğümünü Mac adres adres tablolarına CAM table’a ekliyorlar. Ama hala A düğümünün adreslerini bilmedikleri için paketi tüm portlarından gönderiyorlar.
Her switch diğer switchlerden gelen paketleri alıyorlar ve tekrar tüm portlarından bu paketler gönderiliyor. Hala A düğümünün adresi bilinmiyor, SwitchA aldığı paketi tekrar gönderiyor.
Switching döngülerine gelecek olursak 2-3 nokta arasında birden fazla 2.katman yolunun bulunması olarak özetleyebiliriz.
Katman 2 paketleri TTL yani Time to live değerini desteklemediği için paketler döngüye girmiş bir topolojiye gönderildiğinde sonsuza kadar dönebilir.
STP sayesinde bu problemler çözüme kavuşturulmuştur.
STP, 2.katmanda gerçekleşen Switching döngülerinin sebep olduğu broadcast fırtınalarını önlemek amacıyla 1985 yılında IEEE 802.1d ile standartıze edilen STP döngü oluşturabilecek portları belirleyip bu portları blokluyor. Ve diğer bir portun kullanılamaz hale gelmesi durumunda bloklanan portu tekrar açıyor.
Yani döngüye neden olabilecek portları kasten engelleyerek ağdaki tüm hedefler arasında tek bir mantıksal yol olmasını sağlıyor.
Stp ye katılan switchler bir harita ya da topoloji oluşturuyor. STP switchleri topoloji veritabanını oluşturmak amacıyla BPDU gönderiyorlar. (Bridge Protocol Data Unit)
Varsayılan her 2 snde tüm portlardan gönderilen BPDU’lar bir çoklu gönderim adresi olan ve sırf bu işlem için ayrılan şekildeki adrese gönderilmektedir.
Bir STP topolojisi oluşturmak için şekildeki adımlar işletilmektedir.
Ve bu işlem her vlan yani subnet için ayrı ayrı yapılmaktadır.
1)Kök Köprü(Root Bridge) seçilir.
2)Kök portlar(Root Port) belirlenir 3)Designated portlar belirlenir.
4)Döngüleri önlemek amacıyla bloklu olması gereken portlar belirlenir.
Root Bridge topolojinin mantıksal merkezidir ve topoloji üzerindeki her Bridge 2 snde bir PDU mesajı göndererek kendisinin Root Bridge olduğunu ilan eder.
Root Bridge belirlenmesinden sonra diğer switchler sadece dinleyici olurlar. Root Bridge belirlemede Bridge Id önemlidir.
Bridge Id en düşük olan switch en iyi kabul edilir ve Root Bridge olur. Bridge Id şekildeki gibi hesaplanmaktadır.
STP topolojisini kullanan genişletilmiş bir yerel ağ içerisinde switchler arasında takas edilen veri iletileridir.
BPDU paketleri , bağlantı noktaları ,adresler, priority maaliyet (path cost ) hakkında bilgi içerir.
BPDU iletileri bir ağ topolojisinde döngüleri algılamak için köprüler arasında gönderilirler.
İnferior BPDU Az daha değersiz topoloji kurulurken ya da ortaman yeni bir switch eklendiğinde topolojinin tekrar converge (yakınsama) ‘sı için BPDU alışverişi yapılırken bu BPDU’lar taşıdıkları öncelikli değerlerine göre kıyaslanır. Daha yüksek öncelik değerine sahip BPDU’lar interior olarak değerlendirilir. Yani STP’de daha düşük değerler daha iyidir.. Bu sayede Switchler kendi arasında BPDU kıyaslamasına göre atamalarını düzenler ve paketler için en iyi yolu hesaplar .
Superior BPDU Üst bpdu, daha düşük köprü kimliği yani bridge idsine sahiptir bu tek bir bpdu bazında değerlendirilemez. Sadece karşılaştırmada biri daha yüksek veya daha düşük olarak kabul edilebilir.
Bir switch ast bir bpdu alırsa hiçbir şey değişmez,fakat üst bpdu olmak stp topolojisini yeniden oluşturmasına sebep olacaktır.
Priority değeri düşük olan Root Bridge olur ve eğer öncelik değeri eşitse mac adresi düşük olan Root Bridge olur
Varsayılan priority 32.768
Bir switchin Root Bridge en yakın olan portu Root port olarak belirlenir. Yakınlığın ölçütü olarak Path Cost yani rota maliyeti değerine bakılmaktadır.
Her switchin sadece bir tane Root Portu olabilir. Root Bridge’nin Root Portu olamıyor zaten amaç Root Bridge’e en yakın portu belirlemektir.
Rota Maliyeti bağlantı hızına dayanılarak hesaplanır ve düşük olan rota maliyeti tercih edilir.
Bir ağ segmentinde mutlaka ve sadece bir tane (designated) atanmış port olmalıdır. İki tane olursa döngüye sebep olabilir. Atanmış portlar rota maliyetine göre belirlenir ve bu portlar hiçbir şekilde blok durumda olmaz. Bir port hem Root hem de Designated olamaz.
Port ID :> Rota maliyeti ve Bridge ID eşit olduğu durumlarda 4 bitlik port önceliği(priority) ve 12 bitlik port numarasından oluşan port id değerine bakılır.
Port önceliği varsayılan olarak 128dir.
Stp port rollerin birincisi Path Cost (Rota Maliyeti), ikincisi Bridge Id(köprü kimliği) ve son olarak port id sırasıyla belirler.
Blocking durumunda paketler yönlendirmez ve mac adreslerini öğrenmez ama switching topolojisindeki değişiklikleri öğrenmek adına BPDU’ları dinlemeye devam eder. Blocking durumundan sonra Listening (dinleme) durumuna geçer.
Dinleme durumundaki portlar paketleri iletmiyor ve mac adresi öğrenmiyor ama BPDU’ları gönderiyor ve dinliyor.Dinleme durumundaki port Root veya Designated olarak seçilirse Learning durumuna geçmektedir
Listening’den Learninge geçmeden önce Forward Delay geçmesi bekleniyor. BPDU’ları dinlemeye ve göndermeye devam ediyor.
CAM tablosuna Mac adresleri eklemeye başlıyor; paketleri yönlendiremiyor Learning durumundaki bir port Forward durumuna geçmeden önce, forward delay vakti kadar bekliyor. Forward durumundaki port BPDU alıp gönderiyor ve paketleri yönlendirebiliyor. Disabled durumu ise yönetici tarafından kapatılma (shutdown) halinde ortaya çıkıyor. Paketleri yönlendiremiyor ve STP sürecine katılamıyor.
STP nin blocking durumunda başlaması; olası loopları önlemek için herhangi bir trafik oluşmadan ve paketler yönlendirilmeden önlem almak amaçlıdır.
Stp zamanlayıcılarından bahsetmek olursak Hello Time Switchin ne sıklıkla BPDU gönderdiğini belirtir. Varsayılan 2 snde bir gönderilir ve değiştirilir. Forward Delay zamanlayıcısı Listening ve Learning durumlarının ne kadar zaman harcanacağını belirtir.
Max Age zamanlayıcısı Switchin komşu swithcten gelen BPDU düşürmeden önce ne kadar tutacağına dair bilgi verir. Max Age periyodunda BPDU alamazsa topolojide bir değişiklik olduğunu kabul ediyor ve o komşu switchin BPDU bilgisini siliyor. Varsayılanda Max Age zamanlayıcısı 20 sndir .
Bu zamanlayıcı değerleri değitirilebiliyor fakat bu az ihtiyaç duyulan bir şey ve STPnin performansını kötü etkiliyor.
Zamanlayıcılar değiştirilecekse de Root Bridge üzerinde değiştirilmeli ve Root Bridge daha sonra bu değişikliği BPDU’lar kullanarak diğer switchlere aktarmalıdır. Root olmayan swithcler yerel değişiklikleri tanımıyor
Stp topoloji değişikliklerinden bahsedecek olursak Topoloji oluştururken veya ayağa kaldırırken switchler 2 türlü BPDU gönderirler. Bir konfiguration ikincisi ise topoloji değişiklik bildirimleri
30 snlik converge time (yakınsama süresi) bazı topolojilerde çok bulunuyor. Bu sebeple belli başlı teknoljiler geliştiriliyor.
PortFast, UplinkFast, BackboneFast bunlara örnek verilebilir.
STP güvenliği ; BPDU guard, Root Guard, BPDU Filter gibi teknolojiler geliştirilerek STPnin olası tehlikelerden korunması amaçlanmıştır.
Bu korumalar port bazında yapılandırılır ve varsayılan olarak kapalı gelmektedir.
Root Guard :>Bir switchin kendisini Root Bridge ilan etmesini önlüyor.
BPDU Guard :>PortFast son kullanıcıya bağlı portlarda etkinleştirildiğiinden bu port BPDU almamalıdır. Bu durumda BPDU guard ve portfast birlikte çalışmalı diyebiliriz.
BPDU Filtering :>PortFast ile işbirliği içinde çalışabilecek bir diğer araçtır ve BPDU’ları çift yönlü olarak engeller. Hangi modda konfigure edildiğine göre tepkisi değişmektedir.
RSTP De 4 port Rolü
Root port :>Root Bridge giden en iyi rota maliyetine sahip porttur.
Alternate (alternatif) port :> Yedek Root Port Daha yüksek rota maliyeti
Designated (atanmış) Port :>Her network segmentindeki en iyi rota maliyetine sahip Root olmayan port
BackUp (Yedek) Port :> Atanmış portun yedeği
RSTP'deki 3 Port Durumu Başlangıçta port discarding durumda, yani paketler yönlendirmiyor ve Mac adreslerini öğrenmiyor, BPDU'ları dinliyor. Alternate ve Backup portlar discarding durumda kalmaya devam ederler.
RSTP dinleme durumuna ihtiyaç duymaz. Bir port kök veya atanmış olarak belirlenirse direkt öğrenme durumuna geçiyor. Mac adreslerini CAM Table'a eklemeye başlıyor ama paketleri henüz yönlendiremiyor.
Öğrenme durumundaki port iletime geçince BPDU'ları alabiliyor ve iletebiliyor, MAC adreslerini öğrenebilir, paketleri yönlendirebiliyor.
1)Tek bir fiziksel ağdaki her Vlan için birden çok kapsayan ağaç oluşturur.
2)Her VLAN'ın yapılandırılmış bir kök köprüsüne ve yönlendirme topolojisine sahip olmasını sağlar.
3) BPDU sayısını ve ağ cihazlarının CPU üzerindeki baskılarını azaltır
4) MSTP, RSTP'nin bir uzantısıdır.
5) MSTP, her Vlan grubu için ayrı bir kapsayan ağaç yapılandırır ve her bir kapsayan ağaçtaki olası alternatif yollardan biri hariç tümünü engeller.
6) MSTP, birden çok MST örneğini (MSTI) çalıştırabilen Çoklu Genişleyen Ağaç (MST) bölgelerininin oluşturulmasına izin verir.
Belirtilen örnek için kök köprüsünün köprü önceliği ve MAC adresi
Belirtilen örneğin kök bağlantı noktası. Kök bağlantı noktası, anahtarın kök köprüye ulaşmak için kullandığı tek bağlantı noktasıdır. Buna, temel köprüye en düşük yol maliyetine sahip bağlantı noktasına göre karar verilir. Bu değer sıfırsa, anahtar kök köprüdür.
MST örneği için anahtarın kök yolu maliyeti. Yol maliyeti, anahtar ile ağdaki bir sonraki cihaz arasındaki bağlantının hızıyla tanımlanır. Kök yol maliyeti, anahtardan kök köprüye giden yol maliyetlerinin kümülatif toplamıdır. Bu değer sıfırsa, anahtar kök köprüdür.
Belirtilen örnek için anahtarın köprü önceliği ve Mac adresi
Bir sonraki hedefe kadar olan atlama sayısı.
Belirtilen bağlantı noktasının mevcut durumu
Disabled(Devre Dışı) : STP bağlantı noktasında devre dışı bırakılır. Bağlantı noktası trafiği yönlendirir ve Mac adresini öğrenir.
Blocking(Engelleme): Bu, bağlantı noktasının trafiği iletmesine veya MAC adreslerini öğrenmesine izin verilmediği anlamına gelir. Ancak bağlantı noktası BPDU paketlerini iletebilir.
Listening(Dinleme): Bağlantı noktası dinleme modundadır. Bu, bağlantı noktasının trafiği iletmesine izin verilmediği ve MAC adreslerini öğrenemediği anlamına gelir.
Learning(Öğrenme): Bu bağlantı noktasının trafiği iletimesine izin verilmediği, ancak yeni MAC adreslerini öğrenmesine izin verildiği anlamına gelir.
Forwarding(Yönlendirme): Bu bağlantı noktasının trafiği iletmesine izin verildiği ve yeni MAC adreslerini öğrenebildiği anlamına gelir.
MSTP tarafından STP yollarını sağlamak için atanan bağlantı noktası veya LAG'ın rolü
Root (Kök): Paketleri kök cihaza iletmek için en düşük maliyetli yolu sağlayan bağlantı noktasıdır.
Designated(Belirlenmiş): Köprünün LAN'a bağlandığı bağlantı noktası. Bu, MST örneği için LAN'dan Kök Köprüye en düşük kök yolu maliyetini sağlar.
Alternate(Alternatif): Bağlantı noktası, kök arayüzden kök aygıta giden alternatif bir yol sağlar.
Backup(Yedekleme): Bağlantı noktası, kapsama ağacına doğru belirlenen bağlantı noktası yoluna bir yedekleme yolu sağlar. Bunun nedeni,iki bağlantı noktasının bir noktadan noktaya bağlantı ile bir döngü içinde bağlandığı bir yapılandırmadır. Bir LAN, ağın paylaşılan bir kesimine iki veya daha fazla bağlantıya ihtiyaç duyduğunda yedek bağlantı noktaları kullanabilirler.
Disabled(Devre Dışı): Bağlantı noktası kapsayan ağacın parçası değildir.
Sonsuz döngüye sebep olabilecek. Aradaki kabloyu kırıyor. Arada kablo yokmuş gibi davranıyor. Portu komple kapatmıyor. Trafiğin geçmesini izin vermiyor. Eğer aradaki kablolardan birisi koparsa Trunk 3 veya Trunk 1. Stp protokolü bunu otomatik olarak algılıyor ve bloklamayı kaldırıyor Trunk 2 den ve trafiğin geçmesine izin veriyor. Her şey otomatik.
A Layer 2 loop can be result in MAC address table instability, link saturation, and high CPU utilization on switches and end devices,resulting in network becoming unusuable.
Switchlerden bir tanesi loop olduğunu anlıyor. Ağaç gibi düşünürsek bir tane kök (root ) bridge (switch'in eski adı) olacak. Stp protokolü çercevesinde her switch bir isme sahip olur bu isme Bridge ID deniliyor.
Bridge ID; 2 parçadan oluşan sayısal bir değer. Ön tarafı priority no, sonrada switch'in mac adresinden oluşuyor. Her yönetilebilir swithin kendisine ait mac adresi vardır. öncelikNo.MacAddres Öncelik numarası ile 16 bitlik sayısal bir değer. Yani 0-65535 arasında değer alan bir kısım. Default olarak 32768'dir. Bridge ID denilen Bridge ismine bakılarak kararlar veriliyor. Bu defaul değeri küçültebiliyorsun büyütebiliyorsun. Yani yöneticiye hak vermişler. Hiçbir şey ellemesen kabloları tak STP çalışır. (Plug and Play)
Mac adresi eşsiz olduğu için tüm Switchlerin mac adresi birbirlerinden farklı olur.
Path cost değeri, Routing protokollerinde metric denilen bir değer vardır. Metric bir hattın ne kadar kaliteli olduğunu tarif etmek için kullanılan bir parametre.STP protokolü de mümkün olduğunca en kaliteli hat ayakta kalsın. Kalitesiz daha yavaş, daha düşük hızlı hatlar bloklansın.
Hattın hızı ne kadar yüksek ise Cost değeri düşük oluyor. Gerçek hayatta ücretli yollar gibi düşünebilirsiniz. Kilometresi düşük ise kalitelidir. Hat hızları 10 GB dan daha büyük olabileceği için bunları revize ettiler. RSTP'deki gibi revize ettiler ama hala bu değerler hala geçerli. Bunların geçerli olmasının nedeni piyasada hala çok fazla eski switch var. Eskiler STP'ye yeniler RSTPye bakarsa elma ile armutu karşılaştırmış olur.
STP değerleri hale geçerli bunların cost değeri verirken bir mantığı yok.
Switchin üzerindeki portlara da bir isim verelim demişler. Ona da port id deniliyor. Port ID iki kısımdan oluşuyor. ÖncelikNumarası.PortNumarası bu değer 8 bit 0-255 arasında alabileceği değer defaultta 128. Port IDye örnek vermek gerekirse 128.1 (STP'ye göre 1.portun adı).
Switchler birbirlerine bağlı olduklarında ilk yaptıkları iş, birbirlerine kendilerini tanıtmak amaçlı BPDU denilen paketler yollar. Bridge Protocol Data Unit, BPDU paketi 2 sn de bir yollanır. Tüm swithcler STP çalıştığı sürece 2 sn de bir bu paketi yollarlar.
İlk açıldıklarında hattı dinlerler sonra yollamaya başlarlar. İlk kabloyu taktıktan sonra switch kendini Listening durumana geçirir. Karşı switche BPDU yollar ve BPDU'ları dinler. Listening durumda hiçbir şekilde data trafiği geçirmez. Gelen paketleri kesinlikle Mac adres tablosuna kayıt etmez. Bu süreç 15 sndir. 15 sn boyunca sadece BPDU yollar ve alır amacı loop var mı yok mu diye tespit etmek. Loop olmadığını düşünüyorsa 15 sn'de learning state'e geçer. Öğrenme aşamasıdır. Burada da data trafiği yok. BPDU alıp yollar artık Mac adresi tablosuna gelen paketlerin kaynak mac adreslerini işlemeye başlar. Adı üstünde öğreniyor neyi öğreniyor Mac adresini.
Eğer bu 15 snde de bir sıkıntı yoksa toplam 30sn sonra Forwarding state'e geçer. Yani gerçekte switchin paket akışını sağladığı duruma deniliyor.
Blocking state portun shutdown edilmesi değildir. Portu shutdown etmek, disable etmek anlamına geliyor STP protokolünde. Portu kapatmak demek. Öldü yani Link yok. Blocking de ise BPDU almaya devam eder. Yani sadece dinler. Geri BPDU bile yollamaz.
15 sn süresinin adı Forward Delay'dir. 15sn listening 15 sn learning toplam 30 sn de hat açılır.
En küçük bridge id olan switche root bridge (switch) denilir. Switchler birbilerini tanımadığı için önce kendilerini root zanneder. Kabloları takınca birbilerine BPDU paketleri yollarlar ve burada en küçük Mac adresi olan, en küçük Bridge ID'ye sahip olur dolayısıyla. Bir STP topolojisinde sadece bir tane Root olur. En küçük olan.
Root'tan aşağıya doğru giden portlara Designated port adı verilir. Root'a doğru giden switchlerin portlarına Root port adı verilir.
B ve C birbirinden designated port bilgisi alırsa, Switchler ikiside Root swithce gidiyor diye birbirlerini tanıyorlar ve loop olduğuna karar veriyor. Bu şekilde bir durum ile karşılaştıkları anda switchlerden birisi karar verip, kendisi gönüllü olarak portunu bloke edecek. Block port diğer adı ise alternate port.
Bloklama sürecinde 3 ayrı değere bakılır. Bakılan ilk değer Path Cost'tur. Cost değeri düşük olan her zaman daha üstündür. Hat hızları eşitse bu durumda Bridge ID ye bakılıyor. Bridge ID değeri küçük olan kazanır. Bridge IDler eşitse o zaman Port ID 'ye bakılır. Port Idlerin eşit olma ihtimali yok. Port Idsi düşük olan port açık tutulacak. Büyük olan port kapatılacak.
Cisco ve IEEE STP protokolünü geliştirip, farklı versiyonları çıkardılar.
Switch STP ayarlıysa onu RSTP'ye çevirerek 30 snlik bekleme süresini kısaltabiliriz.
MST ile her vlan'a ağaç değilde gruplar için ağaç yapan versiyonuna deniliyor.
Defaultta PVST çalışıyor. hızlıya geçmek istersek rapid-pvst yapabiliriz.
Portfast olarak yapılandırılan portlar, Switch, Hub veya Bridge cihazlarına bağlanmayan portlardır ve sadece son kullanıcı cihazlar için kullanılmaktadır.
Kablolama hatası olabilmesine karşı cisco bunu korumaya almış. Korumayı da devreye alabiliriz. Bpdu guard şu işe yarıyor. Eğer kazara BPDU paketi gelirse yani switch takarsak portu hemen switch error-disabled ediyor.
STP Radia Perlman geliştirdiği bir algoritmaya dayanır.
STP terminolojisinde her bir switch köprü yani bridge olarak tanımlanır. Turuncu rengin nedeni STPdir , döngüye neden olabilecek yol kasten engellenmiş ve ağdaki tüm hedefler arasında tek bir mantıksal yol olmasını sağlanmıştır.