| Yazan: Orhan ERGÜN,
Tarih: 18-09-2007 15:44
|
Okunma Sayısı : 7565  |
Beğenilme : Yok |
Spanning-Tree switchlerin haberlesmesi sirasinda olusabilecek döngüleri ( loop) önleyen bir protokoldür.Spanning-Tree genel olarak switchler üzerinde loop u dynamic olarak önler, ve cisco switchlerde default olarak enable durumdadir.Protocol networklerde loop’a neden olabilecek portlari block duruma alarak çalisir.Her hedefe sadece bir yolun aktif olarak çalismasini saglar.Spanning-Tree anlatiminda birçok kaynakta switchleri kavram olarak bridge olarak görebilirsiniz.

Sekildeki yapida switchler kendilerine gelen ve hedef adresi bilinmeyen paketleri diger tüm portlarindan flood edeceklerdir.Cat 1 ve Cat 2 swtichleri 1/1 portlarina gelen frameleri flood edecek ve ayni frameleri ½ portlarindan alacaklardir , ½ portundan aldigi bu frame’leri 1/1 portlarindan flood edecek, yine diger portlardan alacak bu böyle durmadan devam edecek. Durmadan devam etmekten kasit , Switchler’in cpu degerleri zamanla artacak ve bir süre sonra hizmet veremeyecek duruma geleceklerdir.Peki neden belirli bir süre sonra durmuyor ? Bu sorunun cevabi çok açik ; Ethernet frameleri TTL (Time to live) alanina sahip degiller. Diyelimki siz internette bir yere icmp ping paketi gönderdiniz.Bu paket her geçtigi next-hop ta ttl degerini 1 azaltacaktir. Ancak switchler de bu gecerli diildir,hizmet veremeyene kadar yada siz loop’a neden olan durumu ortadan kaldirmadikca problem devam edecektir. “ Switchler broadcast geçirirler “. Bu söz stp den konusurken hiç unutulmamasi gereken bir söz olmalidir.O halde bunu biraz açmakta yarar var. Broadcast , Multicast, Unicast ve çok sik duymadigimiz Anycast bu kavramlari bir çogumuz biliyoruz ancak bilmeyen okuyucularimizinda olabilecegini düsünürek bu kavramlari izah edecegim. Broadcast genel anlamiyla yayin yapmak olarak kullanilir. Mesela ; siz bir topluluga girdiniz ve bir konu hakkinda bagira çagira konusuyorsunuz , sizin konustugunuz konuyla hiç ilgilenmeyen insanlarda bunu duyuyorlar , iste bu broadcasttir. Ayni topluluktasiniz ve yine konustuklarinizi bir çok kisi duyuyor fakat bunlarin hepsi sizin anlattiginiz konuyla ilgiliyse bu durum Multicasttir. Toplulukta sadece tek bir kisiye özel yalnizca onunla konusuyorsunuz.Bu durumda Unicasttir. Broadcast adresi switchler için : FFFF:FFFF:FFFF:FFFF dir Switchler broadcast geçirirler ve kendilerine gelen broadcastleri bütün portlarina gönderirler. 
Sekilde Host A’nin bir Arp requestte bulundugunu varsayalim , Host B ye veri gönderecek ama Mac Adress-Table ‘ inda Mac adresi yok bu yüzden arp request gönderiyor.Arp request frameleri broadcast çalisirlar.Dolayisiyla bu frame leri alan her 2 switch de bu frame ‘ leri bütün portlarindan ileteceklerdir.1 numarali portlar ortadaki Hub vasitasiyla birbirlerine bagli yani burada bir yol var, ayni zamanda Switch ler bu yapida A diye isimlendirilmis portlardanda bagli yani buradada bir yol var toplam 2 yol var .Switchler “1” portlarindan ve “A “ isimli portlardan broadcastleri yayinlayacaklar ve farkli portlarindan yeniden alacaklar e döngü (loop ) baslayacak.Bu durum Broadcast Storm olarak bilinir. Stp network de bir referans noktasi olusturur ve bu referans noktasindan hareketle eger yukaridaki yapidaki gibi birden fazla yol varsa , en iyi yol seçimini yapar.Bu referans noktasina Root Bridge denir. Spanning-Tree içerisinde Root Bridge ( Root Switch ) sistemi yöneten bridge dir.Bütün switchler networke ilk dahil olduklarinda kendilerini root bridge olarak görürler .Switchler haberlesme için birbirlerine Bpdu adi verilen paketler gönderirler.Networke ilk dahil olduklarinda da Bpdu ( Bridge Protocol Data Unit ) paketi içerisindeki Root Id kismina kendi Bridge id lerini yazarlar. Ortamdaki en küçük Bridge id’ ye sahip bridge Root Bridge dir. 
Bpdu paketi içerisinde bizim için önemli olan 2 paketten bahsedelim.Bunlardan biri bridge priority , bir digeride birdge’in Mac Addresidir. 
Bpdu paketleri her 2 sn de bir diger switchlere gönderilir . Bridge Id ; Bridge Priority ve Mac Adress inden olusur ve 8 Bytedir. Bridge Priority default olarak 32768 degerindedir ve bizim tarafimizdan manuel olarak degistirilebilir.Root id leri ayniysa Root Bridge seçimi için Mac Adress bilgisine bakacaklardir.Mac Adresi en küçük olan Bridge Root Bridge olacaktir. Spanning Tree çalisma prensibi içerisinde 4 adimdan bahsedebiliriz bunlar ; Root Bridge seçimi yapilir Switchlerin Root Portlari belirlenir. Switchlerin Designated Portlari belirlenir. Diger Portlar Block durumda olacaklardir. Root Bridge seçimini tamamladik , simdi Switchlerde Root Portlar nasil seçilir bundan bahsedelim. Root Portlar her switch için 1 tane olabilir ! ve Root bridge e olan yakinligina göre bir port root port olur.Burada yakinliktan kastettigim cost degeridir.Cost degeri 2 switch arasindaki hattin hiziyla orantili olup sabit degerlerle ifade edilir. 1000/Bandwith olarak hesaplanir ancak, IEEE nin çok kullanilan bant genislikleri için yayinladigi cost degerleri asagidaki tablodaki gibidir. 
Root bridge e cost u en düsük olan root port olacaktir.Switch root bridge e 2 yoldan erisiyor ve costlari esit oldugu bir durumda ise ; switchin port id sine bakilir.Port numarasi küçük olan port ( örnek ; Fastethernet 0/1 port numarasi Fastethernet 0/2 den küçüktür.) Root port olacaktir.Bir Birdge üzerinde yalnizca bir tane Root port olabilir. 
Sekildeki yapida Root Bridge hangisi olacaktir.3 Bridge imiz var ve Bridge Id leri BID= 31.768.XXXX seklinde 3 bridge için de bize sunulmus.Daha önce belirttigimiz gibi Bridge Id si en küçük olan Bridge Root Bridge olacaktir.Yani Cat-A Root Bridge dir . Simdiye kadar Root Bridge seçimini ve Root Port seçimlerini ögrendik , Stp nin çalismasindaki 4 adimdan 3.sü yani Designated port seçimlerinde sira. olacaktir.Designated port seçimine geçmeden önce bir kavrami açiklamakta yarar görürüyorum. Segment ; 2switch arasindaki yola segment adini veriyoruz. Designated port seçimi yaparken her segment için yalnizca bir tane designated port olacagini unutmamaliyiz.Ayrica Root Bridge in tüm portlari Designated Port durumundadir ve forwarding state olmalidir.(Stp statelerinde ayrintili anlatilacaktir.) . Designated port bir switch için birden fazla olabilir.(Root Port yalnizca 1 tane olabiliyordu ). Bu bilgiler isiginda artik Designated portlarimizi belirleyebiliriz. 
Sekilde Mac adress degerleri verilmis Switchler den Cat-A Root Bridge olacaktir.Bridge priority degerleri default , Mac Adress’i en küçük olan Root Bridge olacaktir.Buna göre Cat-A için daha önce belirttigimiz gibi tüm portlari Designated olacagindan Segment 1 ve Segment 2 için Designated portlarimizi belirlemis olduk.Bir segmentte yalnizca 1 tane Designated port olacagini biliyoruz. Segment 1 ve Segment 2 ye baktigimizda Cat-B ve Cat-C için Switchlerinin 1/1 interfaceleri Root Port olmalidir.Segment 3 için 1 tane Designated port olmalidir.Burada Root port olamaz çünkü her iki Switch içinde Root portlar belirlendi.Bir switch üzerinde yalnizca 1 tane Root port olacagi bilgisini hatirlayalim.Cat-B Mac adresi Cat-C swithine göre daha küçük oldugu için Cat-B switch’inin ½ portu Segment 3 için Desgnated Port olacak ve Cat-C Switchinin ½ portuda Non-Designated port durumunda olacaktir. Switchler 4 farkli çalisma modunda olabilirler.Yani Spanning-Tree çalisan switchler 4 farkli modda olabilirler. Bunlardan ilki Blocking mod ; Switch bu moddayken port kapali olarak düsünebiliriz ancak unutmamaliyizki bu modda switch her 2 sn araliklarla hello paketlerini alacaktir ve eger 20 sn hello paketi alamazsa bir sonraki mod olan listening moduna gececektir. Listening modunda switch bu moddan sonraki adimlara geçip geçemeyecegine karar verir learning ve Forwarding modlarina geçebilir veya Blocking duruma geri dönebilir bu mod içerisinde 15 sn bulunur ve devam ederse bir sonraki mod olan Learning moduna geçecektir Learning modunda switch dinleme yapar diyebiliriz ve Mac address table ini olusturur bu moddada 15 sn kaldiktan sonra Forwarding moduna geçecektir. Forwarding modunda switch artik diger switchlerle haberlesme halinde.Forwarding modu için söyleyecegimiz kritik bir not Root Bridge in bütün portlari her zaman forwarding durumda olacaktir. özetleyecek olursak bu 4 Mod : 1.Blocking 2.Listening 3.Learning 4.Forwarding Switchlerde Stp ile çalisirken cok sik karsiniza çikacak 3 kavramdan bahsedecegim.Bunlar Stp Timers ‘ lar. Hello Time : Bridge’ler tarafindan Bpdu paketlerinin 2 sn araliklarla gönderileceginden bahsetmistik. Forward Delay : Forwarding state’ e geçilmeden önceki Listening ve Learning statelerinde geçen süredir.30sn dir. Max Age Time : Bpdu paketleri default olarak 2 sn de bir gönderildigini biliyoruz.Bu Bpdu’ lar 20 sn süreyle saklanir.20 sn içerisinde Switch Bpdu paketi alamazsa Forwarding moddan Listening moda geçer. Bpdu mesajlari Blocking modda da alinir.Aksi takdir de forwarding durumdaki bir port Blocak oldugunda , daha önce Block durumdaki port Bpdu alamazsa durumdan haberi olmayacak ve haberlesme saglanamayacaktir. Toplamda spaning tree Blocking moddan Forwarding mod a kadar 50 sn süre içerisinde çalisacaktir.Switch – Switch baglantilari için bu süre kaçinilmazdir.Ancak ; Switchin diger portlarina bagli bir host için hostun bu süreyi beklemesi zorunlu diildir. Bunun için switchler de portfast komutu çalistirilir.Bu komutu global konfigurasyon modunda kullanabilecegimiz gibi interface altindada kullanabiliriz.Global konfigurasyon modunda kullanilmasi önerilmez. Switch(config)#interface fastethernet 0/1 Switch(config-if)#spannig-tree portfast Bu komutla interface’e uygulanabilir ve buraya Bpdu paketleri gitmeyecektir. PVST (Per VLAN Spanning Tree) Switchlerde de Vlan lar kullanilmasi durumunda spanning tree nasil çalisacak bizim bunun için neler yapmamiz gerektigine bir göz atalim. Networkumuz de vlan lar olabilir ve biz her vlan için ayri bir root bridge atayabiliriz.Bu durum Switchlerde PVST (Per Vlan Spanning-Tree) olarak ifade edilir ve global konfigurasyon modunda ; “Switch(config)#spanning-tree mode pvst “ komutuyla enable edilir. “ Switch(config)#spanning-tree vlanid root priority “ . Bu komutu uyguladagimiz switch bu vlan id ( vlan numarasi ) için root bridge olacaktir ve yine yukarida yazdigimiz her sey bu switch portlari ve bu vlan için geçerli olacaktir. Vlan bazinda stp uygulamak yani PVST uygulamak bize bir swith üzerindeki bir portun devamli olarak block durumda olmasini engellemek açisindan faydali olacaktir. Ayrica ; “ Switch(config)#spanning-tree vlanid root secondary “ komutuyla switch belirtilen vlan id için backup bridge olarak çalistirilabilir. Makalemde Spanning-Tree neden kullanilir, çalisma mantigi ve modlarini cisco.com sitesinden aldigim sekillerinde yardimiyla anlatmaya çalistim.Spaning Tree Switchlerde biz bir sey yapmasakda çalisir ama bunlari Spanning-Tree’ yi bizim yönetebilmemiz için yani ona hükmetmek için bilmemiz gerektigini düsünüyorum.Bir sonraki makalemde Spaning-Tree gibi switchler üzerinde kullanabilecegimiz bir yapi üzerine olacak . “VTP “.Vlan Trunking Protocol.Detaylariyla Vtp yi inceleyecegiz.Saygilarimla. ORHAN ERGüN Wan ve Bilgi Güvenligi Uzmani
|
tbrk
Yazan:: mehmet ferit akyol () Tarih: 02-10-2007 21:28