第 4 章 VLAN、Trunk、STP 與 EtherChannel

STP 生成樹:防止網路自我毀滅

第 2 層沒有 TTL。一個迴圈就能在幾秒內癱瘓整個網路。

16 分鐘


為什麼需要 STP

第 3 層封包有 TTL,繞太多圈會被丟掉。但第 2 層訊框沒有 TTL —— 一個廣播訊框進到有迴圈的拓樸裡,會永遠繞下去,而且每經過一台交換器就被複製一份。

迴圈造成的三大災難說明
廣播風暴 Broadcast Storm訊框無限繞行並倍增,瞬間吃光頻寬與 CPU
MAC 表震盪 MAC Flapping同一個 MAC 一下從這個埠來、一下從那個埠來,表被改爛
重複訊框 Duplicate Frames同一份資料收到很多次,上層應用出錯

STP(Spanning Tree Protocol,生成樹協定,IEEE 802.1D)的解法是:偵測迴圈,然後把多餘的路徑邏輯上封鎖(blocking),形成一棵沒有迴圈的樹。主線斷了才把備援線打開。

STP 的三步驟選舉

  1. 選出根橋接器(Root Bridge):整個網路只有一台,所有路徑計算都以它為原點。
  2. 每台非根交換器選一個根埠(Root Port):離根橋最近的那個埠。
  3. 每個網段選一個指定埠(Designated Port):剩下的埠變成封鎖埠。

橋接器 ID(Bridge ID)怎麼比

┌──────────┬──────────────┬────────────────┐
│ 優先權    │ 擴充系統 ID   │   MAC 位址      │
│ 4 bit    │  12 bit      │    48 bit      │
└──────────┴──────────────┴────────────────┘

優先權預設 32768,只能是 4096 的倍數
擴充系統 ID = VLAN 編號

例:VLAN 10 上的預設優先權
    32768 + 10 = 32778

比較規則:
  1. 先比優先權,小的贏
  2. 優先權相同 → 比 MAC 位址,小的贏
Bridge ID = 優先權 + 擴充系統 ID + MAC

路徑成本(Path Cost)

頻寬舊版成本 (802.1D)長格式成本
10 Mbps1002,000,000
100 Mbps19200,000
1 Gbps420,000
10 Gbps22,000

埠狀態

狀態學 MAC轉送資料停留時間
Blocking20 秒(Max Age)
Listening15 秒(Forward Delay)
Learning15 秒(Forward Delay)
Forwarding穩定狀態
Disabled被關閉

STP 的各種版本

版本標準每個 VLAN 一棵樹?收斂速度
STP802.1D否(全網一棵)慢(50 秒)
PVST+Cisco 專有
RSTP802.1w快(數秒)
Rapid PVST+Cisco 專有快(Cisco 預設)
MST802.1s多個 VLAN 對應一棵
常用 STP 指令
! 查看某個 VLAN 的生成樹
SW1# show spanning-tree vlan 10
VLAN0010
  Spanning tree enabled protocol rstp
  Root ID    Priority    24586
             Address     000a.1111.1111
             This bridge is the root

Interface  Role Sts Cost      Prio.Nbr Type
Gi0/1      Desg FWD 4         128.1    P2p
Gi0/2      Desg FWD 4         128.2    P2p

! 指定成為根橋(最乾淨的做法,會自動設成夠低的優先權)
SW1(config)# spanning-tree vlan 10 root primary
! 或手動指定優先權(必須是 4096 的倍數)
SW1(config)# spanning-tree vlan 10 priority 4096

! 接終端的埠:跳過等待直接進 Forwarding
SW1(config)# interface fa0/1
SW1(config-if)# spanning-tree portfast
! 保護:這個埠如果收到 BPDU 就直接關掉
SW1(config-if)# spanning-tree bpduguard enable

埠角色:先分清楚角色與狀態

很多人把「角色(role)」和「狀態(state)」混為一談。角色是這個埠在拓樸中的職務,狀態是它現在能不能轉送資料。兩者是不同維度。

角色英文一台交換器上有幾個意義
根埠Root Port (RP)每台非根交換器剛好一個到 Root Bridge 累計成本最低的埠
指定埠Designated Port (DP)每個網段剛好一個該網段上負責轉送的埠
非指定埠Non-Designated / Blocking其餘被封鎖以打破迴圈
                 [SW1] ← Root Bridge
                 DP    DP
                /        \
          成本4/          \成本4
              /            \
            RP              RP
          [SW2]────────────[SW3]
            DP    成本4     BLK
                            ↑
              SW2 到 Root 成本 4,SW3 也是 4
              → 平手,比 Bridge ID:SW2 較小
              → SW2 這端是 DP,SW3 那端被封鎖

推導順序:
  ① SW1 是 Root → 它的埠全是 DP
  ② SW2、SW3 各選一個 RP(往 Root 最近的)
  ③ SW2-SW3 這個網段選一個 DP,另一端 Blocking
三台交換器的埠角色推導

立即測驗這一節(4 題)