第 4 章 VLAN、Trunk、STP 與 EtherChannel

RSTP 與 STP 保護機制

傳統 STP 收斂要 50 秒,現代網路完全無法接受。這節講改良版與各種保險絲。

14 分鐘


RSTP:把 50 秒縮到幾秒

RSTP(Rapid Spanning Tree Protocol,802.1w)的核心改變是:不再被動等待計時器到期,而是主動與鄰居交握確認。拓樸變動時,交換器直接問對方「我可以轉送了嗎」,得到同意就立刻切換。

比較STP (802.1D)RSTP (802.1w)
收斂時間50 秒1~6 秒
埠狀態數量5 種3 種
誰送 BPDU只有 Root 產生,其他轉發每台自己產生
BPDU 逾時10 次 Hello(20 秒)3 次 Hello(6 秒)
新增的埠角色Alternate、Backup

埠狀態的對應

STP 狀態RSTP 狀態學 MAC?轉送?
BlockingDiscarding
ListeningDiscarding
LearningLearning
ForwardingForwarding
DisabledDiscarding

RSTP 新增的兩個埠角色

角色備援誰切換速度
Alternate(替代埠)備援根埠 —— 提供通往 Root 的另一條路幾乎瞬間
Backup(備份埠)備援指定埠 —— 同一網段上的第二個埠幾乎瞬間

鏈路類型

類型判斷依據RSTP 能否快速收斂
Point-to-Point全雙工可以(用交握機制)
Shared半雙工不行,退回傳統計時器
Edge設了 PortFast 的埠立即轉送

四種保護機制

機制防什麼觸發時的行為用在哪
BPDU Guard終端埠被插上交換器埠進入 err-disabled搭配 PortFast 的存取埠
Root Guard不該當 Root 的設備搶走 Root埠變成 root-inconsistent(阻擋)朝向下游交換器的埠
Loop Guard單向鏈路造成 BPDU 消失而誤開埠埠變成 loop-inconsistent根埠與替代埠
BPDU Filter直接忽略 BPDU不收不送 BPDU危險,一般不建議
設定與驗證
! 啟用 Rapid PVST+(Cisco 交換器的建議值)
SW1(config)# spanning-tree mode rapid-pvst

! 全域套用到所有 access 埠(比逐埠設定省事又不易漏)
SW1(config)# spanning-tree portfast default
SW1(config)# spanning-tree portfast bpduguard default

! 個別介面設定
SW1(config-if)# spanning-tree portfast
SW1(config-if)# spanning-tree bpduguard enable
SW1(config-if)# spanning-tree guard root
SW1(config-if)# spanning-tree guard loop

! err-disabled 自動恢復(否則要手動 shut / no shut)
SW1(config)# errdisable recovery cause bpduguard
SW1(config)# errdisable recovery cause psecure-violation
SW1(config)# errdisable recovery interval 300

SW1# show spanning-tree summary
SW1# show spanning-tree inconsistentports
SW1# show errdisable recovery
讀懂 show spanning-tree 的輸出
SW2# show spanning-tree vlan 10

VLAN0010
  Spanning tree enabled protocol rstp        ← 跑的是 RSTP
  Root ID    Priority    24586
             Address     000a.1111.1111
             Cost        4                   ← 我到 Root 的累計成本
             Port        1 (GigabitEthernet0/1)  ← 我的根埠是這個

  Bridge ID  Priority    32778  (priority 32768 sys-id-ext 10)
             Address     000a.2222.2222

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------
Gi0/1            Root FWD 4         128.1    P2p
Gi0/2            Desg FWD 4         128.2    P2p
Gi0/3            Altn BLK 4         128.3    P2p
Fa0/5            Desg FWD 19        128.5    P2p Edge
  • 「This bridge is the root」沒出現 → 這台不是 Root,上面的 Root ID 是別人的。
  • Role 欄:Root(根埠)、Desg(指定埠)、Altn(替代埠)、Back(備份埠)。
  • Sts 欄:FWD(轉送)、BLK(封鎖)、LRN(學習中)。
  • Type 欄的 P2p 代表點對點(全雙工),Edge 代表設了 PortFast。看到 Shr 就要檢查是不是變成半雙工了。
  • sys-id-ext 就是 VLAN 編號 —— 32768 + 10 = 32778,這解釋了為什麼各 VLAN 的優先權不同。

實驗 4-2:操控 Root Bridge 並觀察埠角色

目標:親手把 Root 換到指定的交換器上,並看懂埠角色如何隨之改變。

  1. 拉三台 2960 交換器,接成三角形(SW1-SW2、SW2-SW3、SW1-SW3),每條都用交叉線。
  2. show spanning-tree vlan 1 在三台上各看一次,找出目前誰是 Root(優先權都一樣,所以是 MAC 最小的贏)。
  3. 記下每個埠的 Role 與 Sts,畫出目前哪一條被封鎖。
  4. 在你想指定的那台下 spanning-tree vlan 1 root primary,再看一次三台的輸出。
  5. 觀察:Root 換人之後,哪些埠的角色改變了?被封鎖的那條線有沒有換位置?
  6. 把 Root 那台的上行埠 shutdown,觀察備援路徑多久接手(RSTP 應該幾秒內完成)。
怎麼確認做對了:
重點觀察三件事:① Root 上的埠全部是 Desg。② 每台非根交換器剛好一個 Root 埠。③ 被封鎖的埠在成本較差或 Bridge ID 較大的那一端。最後一步能讓你實際感受 RSTP 與傳統 STP 的收斂差距 —— 用 spanning-tree mode pvst 切回舊模式再測一次,會等到你懷疑人生。

立即測驗這一節(3 題)