---
# System prepended metadata

title: Ch06 Spanning Tree Protocol

---

Ch06 Spanning Tree Protocol
===

# redundancy
* 機器之間會有多條路徑可以走，因為需要 physical redundancy，在一台機器掛掉時，還可以繼續動。
* Loop 問題，broadcast 時，如果有迴圈，封包就會一直繞，造成廣播風暴(broadcast storm)。
* 在不知道目的地位址時，也會廣播封包
* Mac database instability
    * 從不同的 port 拿到相同的 frame
* Multiple-frame Transmission
    * 相同的 frame 跑到同個 port

# STP
* 功能
    * 確定只有一條路到 dest address
    * block 多餘的路
        * 定期跟其他 switch 交換 BPDU(Bridge Protocol Data Unit)
* 運作
    * STP 會決定某一台 switch 當作 root
    * 用 STA( Spanning Tree Algorithm) 決定哪些 port 要是 block state
    * switch 彼此會交換 BDPU，其中有 BID
    * BID 最低的就是 root
    * 實際情形可能會一個 VLAN 就一個 tree，有時多個 VLAN
    * 根據每一個頻寬，會有不同的權重(根據 cost 決定)。以此來選擇優先權（Root Port 為最近的路徑）
    * 在一條線(link)，只允許一個路徑到 root，所以會有 DP(designated port)，根據 BPDU 的 cost 決定誰是 DP
* state
    * Disabled
    * blockcing
        * 可以馬上改變
    * listening
    * learning
    * forwarding
* mode
    ![](https://i.imgur.com/R0jhOXT.png)
* BID
    * bridge priority + extended system id + mac address
    * 範圍是 0~65535，預設是 32768(中間值(?))
* 選擇 root
    * 一個 switch 可能有多個 VLAN，而 VLAN 們可能又有各自的 root
    * 如果有相同的 priority，就選 mac address 低的
* root path cost
    * internal root cost
        * 從某個 port 到 root 的 cost 的總和
        * 預設 port cost 是用速度決定
        * port cost 1~200,000,000