Spanning Tree Protocol

**Spanning-tree** протокол гэдэг нь LAN сүлжээнд loop үүсэхээс сэргийлдэг протокол юм. Хэд хэдэн свитичийн хувьд Root bridge нь Bridge ID-аар тодорхойлогдоно.Bridge ID нь Bridge priority болон Mac address-р хоёр өөр тодорхойлогдох ба хамгийн бага Brifge ID-тай нь Root Bridge болно. Bridge priority нь default-р 32768 байдаг. Өөрчилж болох ч тухайн тоо нь заавал 4096-д хуваагдаж  байх ёстой. Bridge ID-нууд нь тэнцүү байвал бага Mac Address-тай нь Root bridge болно гэсэн үг. Хоёр төхөөрөмж давхар хэд хэдэн кабелиар холбогдсон тохиолдолд хамгийн бага port identifier-тай port-оор өгөгдөл дамжина.Port identifier нь port priority болон port number 2-оор тодорхойлогдоно.Port priority нь default-р 128 байх ба заавал 128-д хуваагддаг байна.Port priority нь тэнцүү бол аль port number батттайгаар дамжина.Сүлжээг тасалдалгүй байнгын ажиллагаатай, найдвартай байлгах аргуудын нэг бол сүлжээний төхөөрөмж, бүрэлдэхүүн хэсэг, дамжуулах орчин зэргийг нөөцтэйгээр зохион байгуулах буюу түвшин 2-ийн  нөөц бүрдүүлэх явдал юм. Ингэснээр сүлжээний аль нэг хэсэгт гарч байгаа алдаанд тэсвэртэй байж өгөгдөл дамжуулалтыг саатуулахгүй байх боломжтой болно. Гэхдээ нөөц төхөөрөмж, хүлээн авагч хүртэл олон зэрэг холболт үүсгэх нь сөрөг нөлөөг өөртөө агуулдаг. Жишээлбэл: төхөөрөмж хооронд өгөгдлийг төгсгөлгүй дамжуулах буюу loop үүсгэх, броадкаст сторм үүсэх гэх мэт. Тэгвэл нөөцтэй сүлжээг түвшин 2-ийн хувьд зөв зохион байгуулахад ашиглагддаг чухал протокол бол STP протокол юм. STP протокол нь loop-free топологийг бүрдүүлж, холболт тасрах үед нөөц холболт руу холболтыг автоматаар шилжүүлэх зэрэг үйлдлийг гүйцэтгэдэг. Анхны стандарт нь IEEE802.1D юм. Мөн STP топологи  Redundance нь нэг цэгийн гэмтлээс сүлжээг хамгаалснаар сүлжээний топологи хүртээмжтэй байдлыг нэмэгдүүлдэг, жишээ нь гэмтсэн сүлжээний кабьли болон свитч. STP нь сүлжээн дэх бүх distination хооронд loop-с шалтгаалах илүүдэл замыг санаатайгаар блок хийх зөвхөн нэг логих зам байдгийг батаггаажуулдаг. Сүлжээний урсгал тухайн портыг орхих болон нэвтэрч орохоос сэргийлэх үед портыг блок хийгдсэн байна гэж үзнэ. Энэ нь STP-д loop үсэхээс сэргийлдэг фреймүүд болох bridge protocol dara unit BPDU-г агуулдаггүй. PBDU-spaning tree protocol hello-packet-г сүлжээний bridge-ийн хооронд мэдээлэл солилцохын тулд configurable интервал рүү илгээдэг. Илүүдэл замыг блок хийх нь сүлжээнд loop үсэхээс сэргийлдэг. Бодит замууд нь цомотхол хийхээр оршин байдаг боловч эдгээр замууд нь loop үсэхээс сэргийлэн салгагдсан байдаг. Хэрвээ зам нь сүлжээний кабиль болон свитчийн гэмтлийг нөхөх хэрэгтэй боловч STP замуудыг дахин тооцоолж шаардлагатай портуудыг нээснээр redundant замыг актив болгохыг зөвшөөрдөг. 

## Нөөц холболттой сүлжээнд гарах асуудал 
Сүлжээний найдваржилтыг (байнгын ажиллагаа ) өндөрсгөх үүднээс нөөц холболтыг үүсгэх хэрэгтэй юм**.(**2-р түвшинд) 

Асуудал
* Broacast storm үүсэх
* Unicast frame-ийг хуулбар үүсэх
* MAC хүснэгтийн тогтворгүй байдал
* Loop үүсэх
Уг асуудлыг шийдэхийн тулд STP ашигладаг.   

Төхөөрөмж ба дамжуулах орчны холболт зэргийг нэмэлтээр ашиглана.

## Unicast Frame-ийн хуулбар үүсэх 
**Гол үүрэг** **нь Loop үүсэхээс сэргийлэх**

Хэрэв сонгосон зам тасарвал хаасан үамуудаас нэг замыг нээж өгч сүлжээний тасалдалгүй бөгөөд loop-гүй ажиллах боломжийг бий болгож өгдөг.ы Spanning tree алгоритм ашигладаг.

Unicast Frame-ийн хуулбар үүсэх

## SPANNIG TREE PROTOCOL хувилбарууд 
**Cisco**
* PVST (Per-VLAN Spanning Tree and Per VLAN Spanning Tree)
50sek (ISL tag protocol, VLAN бүрийн хувьд нэг instance үүсдэг ).
* PVST+(Per-VLAN Spanning Tree and Per VLAN Spanning Tree)
50 сек (IEEE 802.1q tag protocol, VLAN бүрийн хувьд нэг instance үүснэ.)
* Rapid-PVST+(Rapid Per-VLAN Spanning Tree Plus).
2сек.

**IEEE standart**
* STP (IEE 802.1d)
50сек тухайн топологийн хувьд нэг instance үүснэ.
* RSTP(Rapid Spanning Tree Protocol)
802.1w  2001 он. Топологи өөрчлагдөхөд 2 сек PVST.
* MSTP(Multiple Spanning Tree Protocol).
802.1s or 802.1Q-2005, 2сек.

VLAN гуудын бүлэглэх замаар ямар instance-д (процессд) ямар VLAN-г админ орулахад шийддэг нь маш давуу тал болж өгдөг.

## **SPANNING TREE ALGORITM** 
STP нь STA ашиглах бөгөөд энэ нь loop үүсэхээс сэргиййлж аль аль портуудыг хаах ёстой вэ гэдгийг шийддэг.
* Root bridge
Сүлжээний гол зангилаа цэг бөгөөд түүгээр бүх өгөгдөл дамжина.
* Root port   
Root Bridge рүү хүрэх хамгийн ойрын порт. –
* Disagnated Ports-
Root port биш ч гэсэн сүлжээнд өгөгдөл дамжуулах боломжтой портууд.
* Non-disagnated
ports-Loop үүсэхээс сэргийлж хаасан портууд бөгөөд BPDU мэдээнээс бусад төрлийн өгөгдлийг дамжуулахыг хязгаарлана.
* STA сүлжээн дээрх бүх свичээс нэг свичийг Root-Bridge-ээр сонгох процессыг гүйцэтгэнэ.
Сонголтыг хийхдээ Bridge Identifer (BID) хаягийг ашиглана. 

### **ROOT BRIDGE сонгох** 
Сонгох процесс
* Broadcast domain  дотор байгаа бүх свитчүүд оролцоно.   

* Свитч ассаны дараа өөрийн BID болон Root ID-г агуулсан Bridge Protocol Data Unit (BPDU) мэдээг өөр хоорондоо тогтмол хугацаанд (2 сек) солилцоно.

* Default-аараа бүх свитч Root Bridge байх бөгөөд BID болон Broadcast domain Root ID нь ижил байх бөгөөд мэдээлэл солилцсоны дараа Root ID солигдож болно.

* Хэрэв хүлээж авсан BPDU мэдээний Root ID нь өөрийнх нь Root ID-аас бага бол тухайн Root ID-тай свитийг Root Brifge гэж тооцон өөр дээр байгаа Root ID-г түүгээр сольж дараагийн свитч рүү дамжуулна.

* Хамгийн бага **BID**-тай свитч Root Bridge болно.

### **Сайн зам сонгох** 
Root Bridge-ийг сонгосны дараа STA нь Broadcast Domain доторх сүлжээний бүх хэсгээс (бусад свичээс) Root Bridge-хүү хүрэх сайн замыг тодорхойлно.

Сүлжээний аль нэг хэсгээс root bridge-рүү хүрэх бүх замд буй бүх портын үнэлгээний нийлбэрээр замын мэдээлэл (замын үнэлгээ ) гарна.

Портын ажиллаж байгаа хурдаас хамааран дефаулт портын үнэлгээг IEEE-ээс шууд гаргасан байдаг.

Хэрэв шаардлагатай бол (Тухайн замыг сайн замаар сонгуулах) портын үнэлгээг гараар тохируулж өгөх боломжтой.

switch(config)#interfce [interface name] [interface number].

switch(config-if)#spanning-tree cost [value].

switch(config-if ) #end.

Хэрэв default утга рүү шилжих бол

switch(config)# interfce [interface name] [interface number].

switch(config-if) # no spanning-tree cost [     value].

switch(config-if ) #end**.**

### **BRIDGE PRIORITY** 
Хамгийн бага Bridge Priority-той свич Root Bridge-ээр сонгогдоно.

Extended system ID бий болсноор VLAN бүхр тус тусдаа  priority байх боломжтой болсон.

Default Priority 4096*8+1(VLAN number)=32769.

Bridge Priority 4096-аар нэмж хасагдана.

Bridge Priority-ийг өөрчлөх 2 арга байдаг.

Эхний арга

Switch (config)# spanning tree VLAN [VLAN ID]  root primary (Bridge Priority 6).

Switch (config)# spanning tree VLAN [VLAN ID]  root secondary  (Bridge Priority 7).

Дараагий арга

Switch(config)# spanning tree VLAN [VLAN ID] prority [value].

Switch(config)#spanning tree VLAN [VLAN ID] priority 24576 (Bridge Priority 6).

### **STP портын үүрэг** 
* Root port
* Disegnated ports
* Non-disegnated ports
* Root Bridge свитчийн бүх портууд Disegnated port байна
* Root Bridge биш бусад свитчээс 1 порт нь Root port болно (Сайн замуг агуулсан порт)
* Үлдсэн портоос Disegnated ба Non-disegnated port болохыг BID шийдэх ба хамгийн бага BID тай свитчийн порт Disagnated болно. хамгийн их BID-тай свитчийн порт Non-disagnated болно.

### **Root port сонгох** 
Тухайн домайнд буй бусад свич нь Root Bridge рүү хүрэх боломжтой бүх порт дээрх замын үнэлгээг тооцоолно.

Хэрэв (Path Cost бага).
* Хамгийн бага замын үнэогээтэй порт root brifge болно.
Хэрэв(path cost=).
* 2 болон түүнээс дээш порт ижил үнэлгээтэй бол port priority-ийг нь шалгаад багатайг нь root port-ор сонгоно.
Хэрэв(Port Priority =).
* port priority нь ижил бол интерфейсийн дугаарыг нь шалгах бөгөөд бага дугаартайг нь root port-оор сонгоно.Port priority нь 16-аар нэмж хасагдана. Дефаултаараа 128 байна.
S2#configure terminal,

S2(config)# interface fa0/1,

S2(configure-ig)#spanning-tree port priority 128,

S2(config-if)#end.

### **STP портын төлөв-** 
Blocking (20sek)
* Хааж байгаа төлөв,
Listening(15sek)
* портоо залгах төлөв,
Learning(15sek)
* LIstennig төлвөөс тодорхой хугацааны дараа шилжих үе,
Forwarding(30sek)
* Өгөгдөл дамжуулахад бэлэн болсон үе,
Disable(Admin shut down хийх)
* порт унтарсан үе.
 

**BPDU хугацаа**

**He**llo time 2сек (дефаулт)
* BPDU мэдээ дамжих тогтмол хугацаа,

* 1-10сек байж болно.
Forward Delay time-15сек(дефаулт)
* LIstenning болон Learning төлөвт зарцуулах хугацаа,

* 4-30сек байж болно.
Maximum Age time-20сек (дефаулт)
* BPDU  мэдээг хадгаоах хугацаа Дараагийн BPDU мэдээ ирэхийг хүлээх сүүлийн  хугацаа 

* 6-40сек байж болно.
Төхөөрөмж асахад порт бүр Listening Learning төлвөөр дамжина.Үүний дараа  Blocking эсвэл Forwarding төлөв рүү шилжинэ

Топологи өөрчлөгдөхөд
* Шинэ холболт орж ирвэл Listinning, Learning төлвөөр дамжина,

* Blocking төлөвт байсан бол Blocking, Learning, Listenning төлвөөр дамжиж Forwarding төлөв рүү шилжинэ.
Switch(config)#spanning-tree [vlan vlan id] hello time seconds

Switch(config)#spanning-tree [vlan vlan id] forward time seconds

Switch(config)#spanning-tree [vlan vlan id] max-age seconds

### **PortFast** 
* Зөвхөн access порт дээр тохируулна,

* Listenning болон Learning төлвүүдийг алгасуулж шууд Forwarding төлөв рүү портыг шилжүүлнэ

* Свич холбох үед порт дээр тохируулж болохгүй,
UplinkFast,

BackboneFast.

## **RSTP-Rapid Spanning Tree Protoco**l 
IEEE 801.1w стандартаар тодорхойлогдсон.

Port type
* Edge port (portfast)-төгсгөлийн төхөөрөмж холбогдох порт,

* Non-Edge port-Дундын төхөөрөмж холбогдох порт).
Link type
* shared(half duplex),

* Point-to-point(full duplex).
4портын үүрэг
* Root-RB рүү хүрэн сайн замын агуулсан порт,

* Disagnated-Өгөгдөл дамжуулахад боломжтой порт,

* Alternate- Өгөгдөл дамжуулахад боломжгүй порт,

* Backup-Нөөцөд замд ашиглах порт).
3 портын төлөв
* Discarding-blocking төлөвт байгаа үе,

* Learning-Mac хүснэгт үүсэх үе,

* Forwarding-өгөгдөл дамжуулахад бэлэн болсон үе.
Мэдээ
* Propasal-хүсэлт,

* Agreement-хариулт ,

* BPDU мессэжний формат нь 802.1d (STP)-тэйгээ адилхан) .
Тохиргоо-

Switch(config)# spanning-tree mode rapid pvst.

## **MSTP-MULTIPLE SPANNING TREE PROTOCOL** 
MSTP протокол нь STP болон RSTP дээр суурилсан шинэ spanning tree protocol юм.

Multi Spaning Tree Algoritm ашигладаг.Энэ нь vlan  бүрийн хувьд өөр өөр замуудыг (instance ) үүсгэж чаддаг 

MST-д дараах атрибутыг тодорхойлдог
* Name(32 тэмдэгт),

* Revision number(0 to 65535),

* VLAN mapping table(4096 entries
Тохиргоо

MST-г идэвхжүүлэх,

Switch(config)#spannin-tree mode mst,

Switch(config)#spannin-tree mode mst configuration,

Name-ийг тохируулах,

Switch(config-mst)# name name,

Revision number-ийг тохируулах

Switch(config-mst)# revision version (0-65535),

MST instance-ийг Vlan даа харгалзуулах

Switch(config-mst)# instance instance-id vlan vlan-lists

## **Multi Spanning Tree Region** 
STP объектоор олон VLAN замыг үүсгэж байгаа IEEE  802.1s  MSTP юм. MSTP  нь тодорхой виртуал  сүлжээгээр тодорхой STP  объект холбогдоход хэрэглэдэг.MSTP Region гэдэг нь ижил  configuration identifacation тай нэг эсвэл олон замуудыг нэгтэгдэг бөгөөд олон bridgedе-LAN нэгтэгдсэн  VLAN сүлжээтэй байна. Ижил bridged MSID –нүүд нь region багтдаг .

MSID 3 шинж чанартай 
* Тохиргооны нэр: тоо эсвэл үсэгээс тогтоно,

* Хяналтын түвшин,

* Тохиргооны эмхтгэл  VLAN гууд mapping нь STP объект юм
MSTP Region хамаарч байгаа VLAN гууд дээрх шинж чанартай ижилхэн байх естой.

MSTP гийн CIST ийг тооцоолхын тулд Bridge тэй адилхан тооцоолдог. 

## **MSTP Load Balance** 
MSTP Region хувьд  VLAN гууд өөр өөрөөр объектоор дүрслэгддэг. Объект  бүр  нь өөр өөрийн гэх attributer бөгөөд attributer нь bridge priority болон port үнэлгээ гэх мэт зүйлтэй  төстэй . VLAN traffic нь load balanced –аар дамждаг .

## **STP харьцуулалт** 
## Гадаад холбоос 
* Spanning tree protocol
* Cisco home page
* Educational explanation of STP
Ангилал:Сүлжээний протокол (хамгаалалтын давхарга)
Ангилал:Оновчлолын алгоритм