Spanning Tree (STP) Nedir? RSTP, BPDU ve Ağ Döngüsü
Spanning Tree (STP) nedir, nasıl çalışır? Lab'da STP'yi kapattım: tek kablo 24 saniyede 30,9 milyon yayın paketi taşıdı. RSTP 0, klasik STP 35 saniye bekledi.
- Spanning Tree (STP) Nedir? Yedek Kablo Neden Döngü Olur?
- STP Döngüyü Nasıl Keser? Kök Köprü, Port Rolleri ve BPDU
- BPDU Nedir? Mesajın İçinde Ne Var?
- STP Kapalıyken Ne Olur? Yayın Fırtınasının Ölçümü
- Tek Yayın Paketi Döngüde Durmadan Döner
- Döngüye Bağlı Bilgisayar Ne Yaşar?
- STP ile RSTP Farkı: 35 Saniye ve Aynı Saniye
- Klasik STP Neden 30 Değil 35 Saniye Bekledi?
- RSTP Neden Hiç Beklemedi? Öneri ve Anlaşma
- STP Modunu Değiştirmenin Bedeli
- STP Türleri: RSTP, MSTP, PVST+ ve Rapid PVST+
- Rapid PVST+ Açınca Kök Köprü Modem Oldu
- Spanning Tree Kurarken Dikkat Edilecekler
- Sonuç: STP Yedek Yolu Silmez, Kapıda Bekletir
- Spanning Tree (STP) Hakkında Sık Sorulan Sorular
Spanning Tree (STP), switch’ler arasında birden fazla yol olduğunda bu yollardan birini bloklayarak ağda döngü oluşmasını engelleyen protokoldür. Yedek kablo çekmek ağı kopmaya karşı korur, ama STP olmadan aynı kablo ağı kilitler. Bu yazıda lab switch’imin iki portunu bir kabloyla birbirine bağladım; STP’nin döngüyü nasıl kestiğini, kapatınca neler olduğunu ve hızlı sürümü RSTP ile eski STP arasındaki farkı ölçtüm.
Bir süpermarket şubesinin arka deposundan satış alanına iki koridor açıldığını düşünün. Depo görevlisi üstünde “bütün reyonlara” yazan bir koliyi iki koridora birer kopya olarak gönderir. Satış alanındaki görevli de gelen koliyi, geldiği koridor dışındaki her yere dağıtır; kopyalardan biri öbür koridordan depoya geri döner. Kolinin üstünde yine “bütün reyonlara” yazar ve yeniden kopyalanır. Koliler çoğalır, koridorlar tıkanır. STP, yedek koridorun kapısını kapalı tutan kuraldır.
Bu yazı kurumsal ağ protokolleri rehberimizin yedeklilik protokolleri bölümünün ayrıntısıdır ve Kurumsal Network Kurulumu hizmetimizin bir parçasıdır. STP’nin switch kurulumundaki yerini switch yapılandırma rehberimizin döngü koruması adımında özetledik; burada konu, protokolün kendisi ve STP olmadan neyin bozulduğudur.
Spanning Tree (STP) Nedir? Yedek Kablo Neden Döngü Olur?
Spanning Tree, switch’lerin oluşturduğu bütün yolları tek bir ağaç yapısına indiren protokoldür. Her iki nokta arasında yalnız bir yol açık kalır; geri kalan yollar yedekte bekler. Ağaç tanımı gereği döngü içermez.
Yedek yol genellikle bilerek çekilir. İki switch arasına ikinci bir kablo, tek bir kablonun kopmasıyla bütün katın ağdan düşmesini önlemek içindir; bu riskin nasıl bulunduğunu tek nokta arızası yazımızda anlattık. Döngü ise bazen hiç istenmeden doğar: aynı switch’in iki prizini birbirine bağlayan tek bir kablo da döngüdür.
Döngünün tehlikesi Ethernet’in iki özelliğinden gelir:
- Yayın herkese gider. Switch, yayın çerçevesini geldiği port dışındaki bütün portlara kopyalar. ARP soruları gibi yayınlar her ağda sürekli dolaşır; yayının nereye kadar ulaştığını ARP makalemizde ölçtük.
- Çerçevenin ömrü yoktur. IP paketinin başlığında her router’da bir azalan TTL alanı vardır ve sıfıra inen paket atılır; bu sigortanın nasıl çalıştığını ICMP yazımızda gösterdik. Ethernet çerçevesinin başlığında böyle bir alan yoktur.
İkisi bir araya gelince döngüye giren bir yayın çerçevesini hiçbir şey durduramaz. Koridordaki kolinin son kullanma tarihi olmaması budur. Üç switch’in birer kabloyla halka kurduğu bir ağda tek bir yayının nasıl iki kopyaya ayrıldığını aşağıdaki şema gösteriyor.
Protokolü 1985’te Digital Equipment Corporation’da (DEC) Radia Perlman tasarladı. Makalesinin özeti amacı tek cümlede verir: köprüler, yani bugünkü switch’lerin atası, “compute, in a distributed fashion, an acyclic spanning subset of the network” (Perlman, 1985). Döngüsüz ama her yere ulaşan bir alt ağ, ağacın tanımıdır.
STP Döngüyü Nasıl Keser? Kök Köprü, Port Rolleri ve BPDU
Döngünün neden tehlikeli olduğunu gördük. STP onu, switch’lerin birbirine gönderdiği BPDU (Bridge Protocol Data Unit) adlı kısa mesajlarla üç adımda keser:
- Kök köprüyü seçer. Önceliği en düşük switch, eşitlikte MAC adresi en küçük olan, kök köprü (root bridge) olur. Perlman makalesindeki şiirde bunu iki dizeyle söyler: “First the Root must be selected / By ID it is elected.”
- Her switch köke giden en ucuz yolu seçer. Yolun maliyetini bağlantı hızı belirler; bu yolun ucundaki port kök porttur (root port).
- Her bağlantıda tek bir port iletir. O bağlantının belirlenmiş portu (designated port) açık kalır. Aynı bağlantıya çıkan öteki portlar alternatif ya da yedek (alternate, backup) rolünü alır ve çerçeve iletmez.
Kök köprü BPDU’larını varsayılan olarak 2 saniyede bir gönderir (Hello Time). Bir yol koptuğunda BPDU’lar kesilir ve STP bekleyen yolu açma zamanının geldiğini buradan anlar.
Üç adımı yukarıdaki halkaya uyguladığımızda ağaç şöyle çıkar:
Lab’da tek bir switch vardı. Bu yüzden döngüyü iki switch arasında değil, aynı switch’in iki portu arasında kurdum: 10 ve 12 numaralı portları bir patch kabloyla birbirine bağladım. İki port da modeme bağlı olmayan ayrı bir VLAN’daydı; bir şey ters giderse döngü ev ağına ulaşamazdı. STP’nin hızlı sürümü RSTP fabrika ayarında açıktı ve hiçbir ayara dokunmadım.
Kabloyu taktıktan sonra switch’in STP tablosuna baktım. Çıktıda üç sütun önemli: Sts durumu, Role rolü, Prio.Nbr port kimliğini gösteriyor.
gmsw01#show spanning-tree
Spanning Tree: Enabled - BPDU Flooding: Disabled - Portfast BPDU Filtering: Disabled
Mode: rstp
...
This Switch is the Root.
Hello Time: 2s Max Age: 20s Forward Delay: 15s Transmit Hold Count: 6s
...
Name State Prio.Nbr Cost Sts Role Restricted
--------- -------- --------- --------- ---- ----- ----------
Gi1/0/1 Enabled 128.1 20000 FWD Desg No
...
Gi1/0/10 Enabled 128.10 20000 FWD Desg No
...
Gi1/0/12 Enabled 128.12 20000 DSC Bkup NoThis Switch is the Root.Ağda tek switch olduğu için kök köprü kendisidir.Gi1/0/10durumuFWD, rolüDesg: çerçeve iletiyor ve bu bağlantının belirlenmiş portu.Gi1/0/12durumuDSC(discarding), rolüBkup: çerçeve atıyor, yedek port. Kablonun iki ucu aynı switch’te olduğu için bir ucu açık, öbürü bekliyor.
Hangi ucun bekleyeceğine port kimliği karar verdi. Port 12’nin ayrıntısında bu bağlantının belirlenmiş portu olarak kendi portu 10 görünüyordu:
gmsw01#show spanning-tree gigabitethernet 1/0/12
Port: Gi1/0/12 Enabled
State: Discarding Role: Backup
Port ID: 128.12 Port Cost: 20000
...
Designated Port ID: 128.10 Designated Path Cost: 0
...
Auto Portfast.................................. True
...
BPDUs: Sent: 2, Received: 34Switch, 10 numaralı portun gönderdiği BPDU’yu 12 numaralı porttan geri aldı. Mesajda göndereni kendisi olarak, port kimliğini 128.10 olarak gördü. 128.10, 128.12’den küçük olduğu için bağlantıyı port 10’a bıraktı, 12’yi yedeğe aldı.
Sayaçlar Hello Time’ı da doğruluyor. Bir dakika yedi saniyede port 10’dan 37 BPDU çıktı, port 12’ye 34 BPDU girdi: iki saniyede bir. Port 12 yedeğe geçtikten sonra yalnız 2 BPDU göndermişti; bu iki mesajın ne olduğunu RSTP bölümünde göreceğiz.
Benzetmenin koptuğu yer burası. Markette kapısı kapatılan koridor gözle görülür. Switch’te bloklanan portun ışığı yanmaya devam eder; port durumu sorgusu iki portu da Up gösteriyordu. Kapının kapalı olduğunu yalnız STP tablosu söyler.
BPDU Nedir? Mesajın İçinde Ne Var?
BPDU, STP’nin switch’ler arasında taşıdığı tek mesajdır: kimin kök olduğunu, köke ne kadar uzak olunduğunu ve bunu hangi switch’in hangi portundan söylediğini taşır.
Lab switch’imde yukarıda yalnız sayaçlarını gördük; switch mesajın içini ancak konsola ve dört alanla düşürüyor. Mesajı alan alan açmak için Veri Merkezi’ndeki iki sanal switch’i, vmsw01 ile vmsw02’yi (Open vSwitch), aralarında iki kabloyla RSTP’de çalıştırdım ve kablolardan birinden geçen BPDU’yu yakaladım:
01:33:27.509675 00:50:56:3a:01:01 > 01:80:c2:00:00:00, 802.3, length 39: LLC, dsap STP (0x42) Individual, ssap STP (0x42) Command, ctrl 0x03: STP 802.1w, Rapid STP, Flags [Learn, Forward], bridge-id 8000.00:50:56:3a:01:01.8001, length 36
message-age 0.00s, max-age 20.00s, hello-time 2.00s, forwarding-delay 15.00s
root-id 8000.00:50:56:3a:01:01, root-pathcost 0, port-role DesignatedAlanları sırayla okuyalım:
- Hedef adres
01:80:c2:00:00:00. Switch’lerin kendi aralarında konuşmaya ayırdığı adrestir ve hiçbir switch bu adrese gelen çerçeveyi öteki portlarına iletmez. BPDU bu yüzden yalnız kablonun karşı ucundaki switch’e ulaşır. STP 802.1w, Rapid STP. Mesajın sürümü RSTP’dir. Lab switch’imin konsol izi de kendi BPDU’larında sürüm 2 yazıyordu.root-id 8000.00:50:56:3a:01:01. Kök köprünün kimliği, önceliği (8000, yani 32768) ve MAC adresiyle birlikte. İki switch’in önceliği eşit olduğu için MAC adresi küçük olanvmsw01kök oldu.root-pathcost 0. Gönderenin köke uzaklığıdır. Mesajı kökün kendisi gönderdiği için sıfır.bridge-id ...8001. Mesajı gönderen switch ile portudur. Sondaki8001port kimliğidir: öncelik 128 ve port 1. Lab switch’imin tablosundaki128.10ile aynı biçim.hello-time 2.00s,max-age,forwarding-delay. Kökün zamanlayıcılarıdır ve kök bunları bütün ağa dağıtır. İki saniyelik Hello Time, yukarıdaki sayaçlarla örtüşüyor.Flags [Learn, Forward]. Gönderen portun durumunu söyler. RSTP’nin öneri ve anlaşma işaretleri de bu alanda taşınır; onları RSTP bölümünde kullanacağız.
Yakalama iki şey daha gösterdi. On saniye boyunca iki kablodan da yalnız kökün BPDU’ları geçti; kök olmayan vmsw02, ne kök portundan ne de bekleyen alternatif portundan mesaj gönderdi. RSTP’de düzenli BPDU’yu yalnız belirlenmiş port gönderir.
İkinci kablodaki çerçevenin kaynak adresi ise 00:50:56:3a:01:02, yani vmsw01’in o portunun adresiydi; içindeki köprü kimliği yine ...01:01 diyordu. Switch’i tanıtan şey çerçevenin adresi değil, mesajın içindeki kimliktir.
Kullanıcı portunda böyle bir mesaj görmek, o porta bir switch takıldığı anlamına gelir. Portu tam bu anda kapatan korumayı STP korumaları yazımızda ölçtük.
STP Kapalıyken Ne Olur? Yayın Fırtınasının Ölçümü
STP’nin portu nasıl beklettiğini gördük. Rehberimizde bu adımı “döngü engellenmezse aynı yayın paketi sonsuza kadar dolaşır ve ağ birkaç saniyede kilitlenir” diye özetlemiştik. Bunu da ölçtüm.
Port 12’de STP’yi kapattım. Döngü artık açıktı, ama ilk denemede bir şey olmadı: switch’in kendisi VLAN’a bir ARP yayını gönderdiğinde yayın döngüden bir kez geri geldi ve orada kaldı. Sebebini doğrulayamadım. En olası açıklama, switch’in kaynağı kendi MAC adresi olan bir çerçeveyi dışarıdan geri aldığında atmasıdır.
Tek Yayın Paketi Döngüde Durmadan Döner
Fırtına için yayının bir bilgisayardan gelmesi gerekiyordu. İş istasyonumu switch’e bağlayıp döngüyle aynı VLAN’a aldım. Switch’i konsol kablosundan yönettim, çünkü seri konsol hattı ağdaki fırtınadan etkilenmez. STP’yi kapattıktan sonra bilgisayardan tek bir UDP yayını gönderdim.
Bilgisayarın ağ kartı sayacı ilk saniyeden itibaren saniyede yaklaşık 600 bin yayın paketi saydı ve bu hız 59 saniye boyunca değişmedi. Hızın sabit kalması, döngüde dönen kopya sayısının artmadığını gösteriyor. Döngüye büyük ihtimalle yalnız benim paketim girmişti ve o tek paket, saniyede 600 bin kez dönüp bilgisayara geri geliyordu.
Başka bir denemede STP’yi kapattığım sırada Windows’un kendisi de yayın gönderiyordu. Sayacı yaklaşık saniyede bir okudum ve bu kez hız tırmandı:
| Saniye | Bilgisayara gelen yayın |
|---|---|
| 1 | 326.490 |
| 2 | 620.416 |
| 3 | 909.600 |
| 4 | 1.353.947 |
| 5 ve sonrası | 1,36 ile 1,46 milyon |
Döngüde hiçbir çerçeve ölmediği için yeni gelen her yayın öncekilerin üstüne eklendi. Koridordaki koliler de böyle çoğalır: yeni her duyuru kolisi öncekilerin yanına eklenir ve hiçbiri rafa inip tükenmez.
Tavan saniyede yaklaşık 1,4 milyon pakette oluştu. 1 Gbps’lik bir hat en küçük Ethernet çerçevesiyle (64 bayt) saniyede en fazla 10⁹ / ((64 + 20) × 8) = 1.488.095 çerçeve taşıyabilir; buradaki 20 bayt, her çerçevenin önündeki başlangıç işareti ile çerçeveler arasındaki zorunlu boşluktur. Bu bir ölçüm değil, hesap. Hat neredeyse tamamen yayınla dolmuştu.
Bu denemede 24 saniyede bilgisayara 30,9 milyon yayın paketi ulaştı. Port 12’de STP’yi yeniden açtığım an sayaçlar aynı örnekte durdu ve fırtına sustu. Kapı kapandı, koliler dolaşmayı bıraktı.
Döngüye Bağlı Bilgisayar Ne Yaşar?
Fırtına yalnız ağı değil, döngüye bağlı her cihazı etkiler. Tam şiddetteki bir denemede bilgisayarın kaynaklarını saniyede bir kaydettim:
- Bir işlemci çekirdeği tamamen doldu. Task Manager’daki System süreci, yani Windows çekirdeği, fırtına boyunca %8-10 CPU kullandı. Makinede 12 mantıksal işlemci var ve 100 / 12 = %8,3; çekirdeklerden biri yalnız gelen paketleri işlemekle meşguldü. Fırtına durunca System %0-1’e indi.
- Bellek etkilenmedi. Çekirdeğin ağ tamponlarının durduğu havuz (nonpaged pool) 1.018 MB’tan 1.021 MB’a çıktı; süreçlerin belleği değişmedi.
- Processes sekmesindeki Network sütunu fırtınayı göstermedi. O sütun yalnız bir uygulamaya ait bağlantıların trafiğini sayıyor. Hiçbir uygulamaya ait olmayan yayınlar orada görünmüyor; fırtına ancak Performance sekmesindeki Ethernet grafiğinde görünüyor.
System’in yükü tek paketlik denemede de aynıydı: o sırada Task Manager’da %8,6 görünüyordu. O denemede bilgisayarın başındaydım ve YouTube’da çok kısa takılmalar gördüm; bunu ölçmedim.
Bu bilgisayar, ofislerdeki sıradan bir uç noktaya göre çok güçlü. 12 mantıksal işlemcisi var ve fırtına bunlardan yalnız birini doldurdu. 4 mantıksal işlemcili bir ofis dizüstünde bir çekirdek, işlemcinin dörtte biri demektir. Bende çok kısa kalan takılmalar, öyle bir dizüstünde çok daha belirgin olabilir.
Kayıtta bir de fren izi vardı. Fırtınanın ortasında bilgisayara gelen yayın saniyede 1,3 milyondan 163 bine düştü, oysa switch’teki döngü sürüyordu. Ağ kartı yetişemediği için switch’e akış denetimi (flow control) çerçeveleri, yani “bekle” anlamına gelen PAUSE mesajları göndermişti.
Switch’in o porttaki sayacı günün bütün denemelerinde 1.256.586 PAUSE çerçevesi aldı ve bilgisayara gidecek 249 milyon paketi attı. Kartın kendi tarafında atılan paket sıfırdı. Kartın neden önce yetişip sonra frene bastığını doğrulamadım.
STP ile RSTP Farkı: 35 Saniye ve Aynı Saniye
STP kapalıyken ne olduğunu gördük. Açıkken de bir bedeli vardı: klasik STP bir portu açmadan önce beklerdi. RSTP (Rapid Spanning Tree, 802.1w) bu beklemeyi kaldıran sürümdür; lab switch’imin fabrika ayarı da buydu.
Aynı portu iki modda kapatıp açtım ve switch’in günlüğünden iletime geçme anını okudum:
| Mod | Link kalktı | İletime geçti | Bekleme |
|---|---|---|---|
| RSTP (802.1w) | 16:25:59 | 16:25:59 | 0 saniye |
| Klasik STP (802.1D) | 16:29:22 | 16:29:57 | 35 saniye |
Klasik STP Neden 30 Değil 35 Saniye Bekledi?
Klasik STP için bilinen rakam 30 saniyedir: port, Forward Delay (15 saniye) kadar iki kez bekler. Ben 35 ölçtüm. Portu bir kez daha açıp durumunu saniye saniye sorguladım:
| Durum | Başladı | Süre |
|---|---|---|
| Discarding | 16:38:34 (link kalktı) | 20 saniye |
| Learning | 16:38:54 | 15 saniye |
| Forwarding | 16:39:09 |
Süre 20 + 15 diye bölünüyordu. 30 saniye, 802.1w-2001’e kadarki sürümlerin rakamıdır. RSTP’yi tanımlayan 802.1D-2004’te kapalı bir port, iletime geçiş sayacını Max Age değerinde (20 saniye) tutar. Port açılınca önce bu sayaç biter, sonra port Forward Delay kadar Learning’de kalır.
Bu farkı standardın çalışma grubunun yazışmasında Brandon Barry şöyle özetler: “MaxAge + forwardDelay = 20 + (2 or 15, depending on sendRSTP) seconds” (rstplib-users, 2003). Standardı birebir uygulayan Open vSwitch kodu da kapalı portta sayacı fd_while = max_age ile kuruyor.
RSTP Neden Hiç Beklemedi? Öneri ve Anlaşma
Standarda göre bir portun beklemeden açılmasının iki yolu var. Ya port kenar port (edge port) sayılır, yani ucunda switch olmadığına karar verilir; ya da karşı taraftan anlaşma (agreement) alır.
Lab switch’imde kenar portu kendiliğinden tanıyan özellik açıktı (Auto Portfast: True). Önce onu iki portta kapattım ve portu yeniden açtım. Port yine link kalktığı saniyede iletime geçti.
Aynı anda sayaçlar değişti. Normalde sessiz duran yedek port 12, 2 BPDU gönderdi; port 10 da 1 BPDU aldı. Port 10’un önerisine (proposal) port 12’nin verdiği cevap buydu. RSTP’de yedek ya da alternatif bir port öneriyi alınca anlaşma bayrağı taşıyan bir BPDU gönderir ve öneriyi yapan port beklemeden açılır.
BPDU’nun içindeki anlaşma bayrağını gözümle görmedim, çünkü switch’in hata ayıklama kaydı bayrak alanını yazmıyor. Ama kenar port yolu kapalıyken geriye tek açıklama kalıyor. Anlaşma olmasaydı port, Max Age artı RSTP’nin kısa beklemesi kadar, yani 20 + 2 = 22 saniye bekleyecekti. Bu sayıyı sonradan bir uç cihaz portunda, otomatik kenar portu kapatarak ölçtüm ve port gerçekten 22 saniye bekledi; ölçümü PortFast bölümünde anlattım.
STP Modunu Değiştirmenin Bedeli
Switch’i klasik STP’ye aldığım an modeme giden uplink portu da yeniden hesaplandı ve yaklaşık yarım dakika trafik taşımadı; switch’e bağlantım da o süre boyunca koptu. RSTP’ye dönerken aynı port 3 saniye kesildi (16:31:12’de blok, 16:31:15’te iletim). STP modunu mesai saatinde değiştirmek, uplink’i yarım dakika kesebilir.
STP Türleri: RSTP, MSTP, PVST+ ve Rapid PVST+
Buraya kadar ölçtüğüm iki mod, klasik STP ve RSTP, ağın tamamı için tek bir ağaç kurar. Bütün VLAN’lar bu ağacı paylaşır. Bir kablo bloklandığında her VLAN için bloklanır ve yedek kablo hiçbir VLAN’ın trafiğini taşımaz. Markette bu, her ürün grubunun kolisinin aynı koridordan geçmesi demektir; yedek koridor bütün gün boş bekler.
Bu sınırı aşmak için iki yol gelişti. Biri IEEE’nin standardı MSTP, öbürü Cisco’nun protokolü PVST+:
| Tür | Kaynak | Kaç ağaç kurar | Not |
|---|---|---|---|
| STP | IEEE 802.1D | Bütün ağ için bir | Portu açmadan önce 30-35 saniye bekler |
| RSTP | IEEE 802.1w, bugün 802.1D-2004’ün içinde | Bütün ağ için bir | Anlaşma alınca beklemeden açar |
| MSTP | IEEE 802.1s, bugün 802.1Q’nun içinde | VLAN grubu başına bir | VLAN’ları gruplara toplar |
| PVST+ | Cisco, 802.1D tabanlı | VLAN başına bir | Cisco’ya özel eklentiler taşır |
| Rapid PVST+ | Cisco, 802.1w tabanlı | VLAN başına bir | Cisco switch’lerin fabrika ayarı |
PVST+ (Per-VLAN Spanning Tree Plus), her VLAN için ayrı bir ağaç kuran Cisco protokolüdür. Cisco’nun yapılandırma kılavuzuna göre PVST+ 802.1D’ye ve Cisco’ya özel eklentilere dayanır. Rapid PVST+ aynı yapıyı RSTP’nin hızlı geçişiyle çalıştırır ve kılavuzun belgelediği switch’lerde fabrika ayarıdır.
Ağaç VLAN başına kurulunca kök köprü de VLAN başına seçilebilir. İki omurga switch’iniz varsa bir VLAN grubunun kökünü birine, öbür grubun kökünü ötekine verirsiniz. Bir VLAN’ın blokladığı kablo öbür VLAN’ın trafiğini taşır ve iki kablo da çalışır. Kılavuz bunu “Layer 2 load-balancing” diye adlandırır. Markette bunun karşılığı, soğuk zincir kolilerini bir koridordan, kuru gıdayı öbür koridordan geçirmektir.
Bedeli hesap yüküdür. Her VLAN’ın ağacı ayrı hesaplanır ve ayrı BPDU taşır. Kılavuz, PVST+ ve Rapid PVST+ modunda en fazla 300 ağaç sınırı yazar; VLAN sayısı bunu aşan bir ağ bu yoldan gidemez.
MSTP (Multiple Spanning Tree) aradaki yoldur. VLAN’ları gruplara ayırır ve her gruba bir ağaç örneği (instance) verir; yüzlerce VLAN’lık bir ağ birkaç örnekle çalışabilir. IEEE, 2002 tarihli 802.1s değişikliğinin amacını farklı VLAN’ların trafiğini farklı ağaçlara dağıtmak ve eski standarda uyan switch’lerle uyumu korumak olarak tanımlar. Standart sonradan 802.1Q’nun içine alındı. Cisco’nun kılavuzu MSTP modunda 65 örnek sınırı yazar.
Farklı markaların aynı ağda çalıştığı yerde mod seçimi kurulumdan önce yapılmalıdır. Cisco switch, Cisco olmayan bir switch’e 802.1Q trunk ile bağlandığında iki tarafın ağaçlarını PVST+ üzerinden uyumlu hale getirir. MSTP ile PVST+‘ın karıştığı ağda ise kılavuz, ortak ağacın (CST, Common Spanning Tree) kökünün MSTP bölgesinin içinde olmasını şart koşar.
Lab switch’im RSTP modundaydı ve bütün ağ için tek ağaç kurdu. Günlüğü bunu kendi diliyle yazıyordu:
<189> Sep 26 16:22:26 gmsw01-1 TRAPMGR[dot1s_task]: traputil.c(777) 422 %% Spanning Tree Topology Change Received: MSTID: 0 Gi1/0/12STP olayları MSTID: 0 etiketiyle, yani tek bir örnek numarasıyla kaydediliyordu. STP işini yürüten sürecin adı da 802.1s’in numarasını taşıyordu (dot1s_task). Yukarıdaki bütün ölçümler bu tek ağaçta alındı. MSTP’yi ölçmedim; tablo ve MSTP paragrafı Cisco’nun ve IEEE’nin belgelerine dayanıyor.
Rapid PVST+ Açınca Kök Köprü Modem Oldu
Lab switch’im Cisco değil, ama mod listesinde stp ve rstp’nin yanında mst, pvst ve rapid-pvst de vardı. Switch’i kısa bir süre Rapid PVST+‘a aldım. Uplink yaklaşık 1 saniye kesildi (18:18:31’de blok, 18:18:32’de iletim) ve her VLAN kendi ağacını kurdu.
Switch her ağaçta başka bir öncelikle göründü: VLAN 1’de 32769, VLAN 5’te 32773, VLAN 10’da 32778. Çıktı bunu kendisi açıklıyor; 32768’lik önceliğe VLAN numarası ekleniyor (sys-id-ext).
VLAN 10’da ise beklemediğim bir şey vardı. Bu VLAN’ın tek portu, switch’i modeme bağlayan uplink’ti:
gmsw01#show spanning-tree vlan 10
VLAN 10
Spanning Tree: Enabled Mode: rapid-pvst
RootID Priority 0
...
Cost 20000
Port 1(Gi1/0/1)
Hello Time: 2s Max Age: 20s Forward Delay: 2s
BridgeID Priority 32778 (priority 32768 sys-id-ext 10)
...
Interface Role Sts Cost Prio.Nbr
--------- ---------- ------------- --------- --------
Gi1/0/1 Root Forwarding 20000 128.1Kök köprü artık switch değildi. Kökün MAC adresi, ev ağındaki bir sunucunun ARP tablosunda ağ geçidine, yani modeme aitti. Modem her iki saniyede bir öncelik 0 ile BPDU gönderiyordu. 0, önceliğin alabileceği en küçük değerdir. Eşitlikte MAC adresi küçük olan kazanır ve modemin adresi switch’inkinden küçüktü. Switch’in önceliğini ne kadar düşürsem de kök seçimini modem kazanırdı.
RSTP modunda bu olmamıştı, çünkü switch modemin BPDU’larını atıyordu. Günlükte iki saniyede bir şu iki satır vardı:
<187> Sep 26 18:18:30 gmsw01-1 DOT1S[dtlTask]: dot1s_txrx.c(306) 2296 %% dot1sBpduReceive(): Discarding the BPDU, since it is an invalid BPDU type
<189> Sep 26 18:18:30 gmsw01-1 DOT1S[dtlTask]: dot1s_txrx.c(1286) 2295 %% dot1sBpduReceive(): Invalid Forward DelayModemin BPDU’sunda Forward Delay 2 saniyeydi. Standardın izin verdiği aralık 4 ile 30 saniyedir; Open vSwitch de sınırları RSTP_MIN_BRIDGE_FORWARD_DELAY 4 ve RSTP_MAX_BRIDGE_FORWARD_DELAY 30 olarak tanımlıyor. Rapid PVST+ açıkken hata satırları kesildi ve switch aynı BPDU’yu kabul etti. RSTP’ye döndükten iki saniye sonra satırlar geri geldi. Bu modun BPDU’yu neden kabul ettiğini doğrulamadım.
Kök seçimi yalnız sizin switch’leriniz arasında yapılmaz. BPDU gönderen her cihaz adaydır ve en güçlü aday bir modem çıkabilir. Lab’da modemi kökten uzak tutan şey benim bir ayarım değildi; modemin kendi BPDU’sundaki standart dışı bir değerdi.
Spanning Tree Kurarken Dikkat Edilecekler
Ölçümlerin pratikte söylediği şeyler şunlar:
- STP’yi kapatmayın. RSTP normal çalışan bir portu bekletmez; lab’da iletime geçiş link kalktığı saniyede oldu. Kapatmanın hız kazancı yoktur, bedelini yukarıda ölçtük.
- Kök köprüyü siz seçin. Öncelikler fabrika ayarında kaldığında kök, MAC adresi en küçük switch olur; bu, kapasitesi en düşük kat switch’i de olabilir. Omurga switch’e daha düşük öncelik vermek ağacın merkezini doğru yere koyar. Dışarıya bakan portu da hesaba katın. Lab’da kök olmaya en güçlü aday, uplink’in ucundaki modemdi. O porttan gelen BPDU’nun kök seçimine girmesini engelleyen kök koruması (root guard) switch tarafının ayarıdır; bedeli o portun beklemeye alınmasıdır ve bunu root guard ölçümünde gösterdim.
- Kullanıcı portlarını kenar port olarak işaretleyin. Ucunda bilgisayar ya da yazıcı olan port bir switch’e bağlı olmadığı için beklemeden açılabilir. Bu porta biri switch takarsa portu kapatan koruma (BPDU Guard) switch tarafının işidir ve yalnız PortFast yazılmış portta çalışır; ikisini STP korumaları yazımızda ölçtüm.
- İki switch arasındaki iki kabloyu LACP ile birleştirin. STP ikinci kabloyu döngü sayıp bloklar; kablo yalnız yedekte bekler. İkisini birlikte kullanmanın yolunu LACP nedir yazımızda anlattık.
- STP modunu mesai dışında değiştirin. Lab’da klasik STP’ye geçiş uplink’i yaklaşık yarım dakika kesti.
STP bir katmanı yedekler: switch’ler arasındaki kabloları. Ağ geçidinin kendisini yedeklemek başka bir iştir; iki cihazın tek adresi paylaşmasını VRRP yazımızda ölçtük.
Sonuç: STP Yedek Yolu Silmez, Kapıda Bekletir
STP yedek bağlantıları kaldırmadan döngüyü keser. Her iki nokta arasında tek yol açık kalır, öteki yol kapıda bekler. Lab’da STP kapalıyken tek bir kablo 24 saniyede 30,9 milyon yayın paketi taşıdı ve bağlı bilgisayarın bir çekirdeğini doldurdu. STP açıldığı an fırtına aynı saniyede sustu. RSTP bu korumayı beklemeden sağladı: aynı port RSTP’de link kalktığı saniyede, klasik STP’de 35 saniyede iletime geçti.
Şubenin iki koridoru da yerinde kalır. Biri açıktır, öbürünün kapısı kapalı bekler; “bütün reyonlara” yazan koli yalnız açık koridordan geçer ve bir kez dağıtılır.
Spanning Tree (STP) Hakkında Sık Sorulan Sorular
BT Danışmanı | Ağ, Sistem ve Güvenlik Yönetimi
İlker Pehlivan, karmaşık BT altyapılarını ölçeklenebilir ve güvenli sistemlere dönüştürür. Buradaki rehberleri kendi laboratuvarında kurup ölçerek yazar.
LinkedInBenzer Makaleler
Kurumsal Ağ Protokolleri: DHCP'den LDAP'a
Bir şirketi ayakta tutan ağ protokolleri: DHCP, DNS, Kerberos, LDAP, SMB, RDP, SSH ve BGP. Hangisi ne yapar, nasıl zincirlenir, bozulduğunda nereden anlaşılır.
PPPoE Nedir? Modem Köprü Modu ve Çift NAT
PPPoE nedir, nasıl çalışır? Keşif ve oturum aşamaları paket paket, MTU neden 1492, hat kopunca ne olur, modem köprü modu ve çift NAT farkı; lab ölçümleriyle.
Yönlendirme Tablosu Nedir? Statik ve Varsayılan Rota
Yönlendirme tablosu nedir: bağlı, statik ve varsayılan rota, en uzun önek eşleşmesi, metrik ve yedek hat, dönüş rotası. Linux lab'ında ölçülmüş örneklerle.
Ethernet Nedir? Çerçeve Yapısı, Hızlar ve Kablo Çiftleri
Ethernet nedir, nasıl çalışır? İki makine arasında yakaladığım çerçevelerle alanları, 64 baytlık dolguyu, FCS'i, hız ailesini ve kablonun dört çiftini anlattım.
LACP Nedir? Link Aggregation ve Port Channel Farkı
LACP nedir, nasıl çalışır? İki switch arasında ölçtüm: kablo kopunca yarım saniye, tek uç susunca 3 ya da 82 saniye. Port channel ve statik bağ farkı.
LLDP Nedir? Komşu Keşfi, LLDP-MED ve CDP Farkı
LLDP nedir, nasıl çalışır? Lab switch'imde ölçtüm: 30 saniyede bir komşuya adını ve port açıklamasını anlattı, 52 portta açık geldi. LLDP-MED ve CDP farkı.
Kurumsal Network Kurulumu altındaki diğer 114 makale
- TACACS+ Nedir? RADIUS Farkı ve Linux'ta TACACS+ Sunucusu
- VPN Nedir? Site-to-Site, Uzaktan Erişim ve IPsec
- VRRP Nedir? Sanal IP ile Varsayılan Ağ Geçidini Yedeklemek
- IMAP Nedir, POP3 Nedir? Aralarındaki Fark
- SMTP Nedir? Mail Nasıl Gönderilir ve Neden Gitmez?
- TLS Nedir? SSL ile Farkı, Sürüm Pazarlığı ve Ölçümü
- FTP, FTPS ve SFTP Nedir? Aralarındaki Fark
- Syslog Nedir? Facility, Severity ve 514 Portu
- TFTP Nedir? Port 69, Switch Yedeği ve PXE
- NAT Nedir? Ağ Adresi Çevirisi Nasıl Çalışır?
- RDP Nedir? Uzak Masaüstü Protokolü ve Güvenliği
- SNMP Nedir? MIB, OID ve Trap Mekanizması
- ICMP Nedir? Ping, TTL ve Tracert Komutu
- VLAN Nedir? 802.1Q Etiketi, Access ve Trunk Farkı
- ARP Nedir? MAC Adresi, ARP Tablosu ve Spoofing
- IP Adresi Nedir? Subnet Maskesi, CIDR ve IPv6
- Port Nedir? TCP ve UDP Farkı, Bağlantı Arızası Tespiti
- SSH Nedir? Şifreli Yönetim ve Anahtar Tabanlı Giriş
- Telnet Nedir? Şifresiz Yönetim Protokolü ve Riskleri
- NFS Nedir? NAS ve Sanallaştırmada Dosya Paylaşımı
- HTTP ve HTTPS Nedir? Aradaki Fark ve Şifreleme
- RADIUS Sunucusu Nedir? 802.1X ile Ağ Kimlik Doğrulama
- LDAP ve LDAPS Nedir? Dizin Sorgulama ve 636 Portu
- SMB Nedir? Port 445, Dosya Paylaşımı ve SYSVOL
- Kerberos Nedir? Kimlik Doğrulama ve Bilet Mantığı
- DNS Nedir, Nasıl Çalışır? Kayıt Türleri ve TTL
- DHCP Nedir? Ağda IP Adresi Nasıl Dağıtılır?
- NTP Nedir? Kurumsal Ağda Saat Senkronizasyonu
- Alan Adı Güvenliği: Transfer Kilidi, Yenileme ve WHOIS
- DNS Önbelleği Temizleme: flushdns, Chrome ve DNS Sunucusu
- Mail Başlığı Nasıl Okunur? From, Return-Path ve Received
- SPF, DKIM ve DMARC Nedir? Mail Kimliği Nasıl Doğrulanır?
- FortiGate Firewall Active Directory Entegrasyonu: LDAP
- FortiGate Firewall Admin Hesabı: Yetki Profilleri
- FortiGate Firewall Antivirüs Profili: Flow ve Proxy Farkı
- FortiGate Firewall Bant Genişliği Sınırlama: Traffic Shaping
- FortiGate Firewall BGP Yapılandırması: Komşuluk ve Duyuru
- FortiGate Firewall Firmware Güncelleme: Yükseltme Yolu
- FortiGate Firewall HA Yapılandırması: FGCP ile İki Cihaz
- FortiGate Firewall IPS Yapılandırması: Sensör ve İmzalar
- FortiGate Firewall IPsec VPN: Şubeler Arası Tünel
- FortiGate Firewall İleri Seviye Rehberi: VPN, SD-WAN ve BGP
- FortiGate Firewall RADIUS: Merkezi Yönetici Girişi
- FortiGate Firewall SD-WAN: Yedek Hat ve Performans SLA
- FortiGate Firewall SSL Inspection: Derin Denetim ve Muafiyet
- FortiGate Firewall Şifre Sıfırlama ve Fabrika Ayarları
- FortiGate Firewall Uygulama Kontrolü: Uygulama Engelleme
- FortiGate Firewall Uzaktan Erişim VPN: IPsec ve FortiClient
- FortiGate Firewall Web Filtre: Kategori ve Güvenli Arama
- FortiGate Firewall Sıkılaştırma: Güvenlik Kontrol Listesi
- FortiGate Firewall Sorun Giderme: Debug Flow ve Sniffer
- FortiGate Firewall Yedek Alma ve Geri Yükleme
- FortiGate Firewall Adres Nesneleri ve Adlandırma Standardı
- FortiGate Firewall DHCP Sunucusu: Kapsam ve Rezervasyon
- FortiGate Firewall DNS Ayarı: Ad Çözümleme ve DNS Sunucusu
- FortiGate Firewall İlk Kurulum: Konsol ve İlk Giriş
- FortiGate Firewall Log Ayarları: Disk, Syslog ve 5651
- FortiGate Firewall NAT Ayarı: IP Pool ve Central NAT
- FortiGate Firewall NTP Ayarı: Saat Dilimi ve Zaman Sunucusu
- FortiGate Firewall Policy Yapılandırması: Kural Seti
- FortiGate Firewall SNMP Ayarı: İzleme Sistemine Bağlamak
- FortiGate Firewall Statik Rota Yapılandırması
- FortiGate Firewall VLAN Yapılandırması: Alt Arayüz ve Trunk
- FortiGate Firewall WAN Ayarı: Statik IP, DHCP ve PPPoE
- FortiGate Firewall Zone ve DMZ Yapılandırması
- Firewall Nedir? Güvenlik Duvarı Nasıl Çalışır?
- FortiGate Firewall Nasıl Kullanılır? Günlük Yönetim Rehberi
- FortiGate Firewall Yapılandırma Rehberi: Kontrol Listesi
- FortiGate Firewall Yönetim Erişimi: HTTPS ve Trusted Host
- Full Duplex ve Half Duplex Nedir? Tam ve Yarım Çift Yön
- Switch 802.1X Yapılandırması: MAB ve İzleme Kipi
- Switch DHCP Snooping Yapılandırması: Trust ve Hız Sınırı
- Switch Port Teşhisi: Duplex Uyuşmazlığı ve Kablo Testi
- Layer 3 Switch Nedir? SVI ve VLAN'lar Arası Yönlendirme
- Switch LACP Yapılandırması: Port Channel Nasıl Kurulur?
- Switch LLDP Yapılandırması: Port Tespiti ve Güvenlik
- Switch SNMP Yapılandırması: SNMPv3, Trap ve Inform
- Switch Syslog Ayarı: Log Sunucusu, Seviye ve Komut Kaydı
- Switch VLAN Yapılandırması: VLAN Oluşturma ve Port Atama
- Switch'te VLAN'lar Arası Yönlendirme: SVI Yapılandırması
- Ağ Segmentasyonu Nedir? VLAN Planı Nasıl Yapılır?
- BPDU Guard Nedir? PortFast, Root Guard ve Storm Control
- Switch ACL Yapılandırması: Yönetim Erişimini Daraltmak
- Switch Nedir, Ne İşe Yarar? Çeşitleri ve Router Farkı
- Switch Sıkılaştırma: Yönetim, Kontrol ve Veri Düzlemi
- Switch Yapılandırma Yedeği: Elle ve Otomatik Yedekleme
- Switch RADIUS Yapılandırması: NPS ile Yönetici Girişi
- Switch DNS Server Ayarı: Name Server ve Alan Adı
- Switch SSH Yapılandırması: Telnet ve HTTP'yi Kapatmak
- Management VLAN Nedir? Yönetim Ağını Kullanıcıdan Ayırmak
- Switch TACACS+ Yapılandırması: Giriş, Komut Yetkisi ve Kayıt
- Switch NTP Server Ayarı: Saati İç NTP Sunucusuna Bağlamak
- Switch Yapılandırma Rehberi: Adım Adım Kontrol Listesi
- Switch'e Konsoldan Bağlanmak: Konsol Kablosu ve PuTTY
- Switch'te Yerel Yönetici Hesabı: Kullanıcı, Yetki ve Parola
- Yönetilebilir Switch Ayarları: Ad, IP ve VLAN Planı
- Bulut Santral: Özellik Seçimi, Devreye Alma ve Geçiş
- IP Santral Kurulumu: Dahili Planı, Çağrı Akışı ve Ağ
- Kartlı Geçiş Sistemi Kurulumu: PDKS, Turnike ve Dizin
- Kurumsal İnternet Hattı: Tarife, Statik IP ve Yedek Hat
- SIP Trunk ve İş Telefon Hattı: Numara Taşıma
- IP Kamera Sistemi Kurulumu: Ağ, Kayıt ve KVKK
- Ağ Erişim Kontrolü: 802.1X, NAC ve Çok Faktörlü Doğrulama
- Fiber Optik Kablolama: Çekim, Sonlandırma ve Ölçüm Raporu
- Sistem Odası Kurulumu: Kabinet Düzeni, Güç ve Soğutma
- Misafir Wi-Fi ve Hotspot Kurulumu: Captive Portal ve 5651
- Network Danışmanlığı: Ağ Analizi, Optimizasyon ve QoS
- Şubeler Arası Bağlantı: SD-WAN, Metro Ethernet, Yedekli Hat
- Kurumsal Wi-Fi Kurulumu: Isı Haritası, Access Point ve Test
- Yapısal Kablolama Hizmeti: Keşif, Montaj ve Test Raporu
- Yapısal Kablolama ve Zayıf Akım: Kurumsal Bina Altyapısı
- Kurumsal Firewall Kurulumu, Yönetimi ve Danışmanlığı
- Kurumsal Kablosuz Ağ Tasarımı: Survey'den Kuruluma
- Switch Kurulumu, VLAN ve Yönlendirici Yapılandırma Hizmeti
Ücretsiz Değerlendirme
Ağınızda yedek kablo varsa STP'nin hangi portu blokladığını birlikte kontrol edelim.
İçindekiler
Ana Hizmet
Kurumsal Network Kurulumu