第 4 章 VLAN、Trunk、STP 與 EtherChannel

Trunk 與 802.1Q 標籤

兩台交換器之間有 10 個 VLAN,總不能拉 10 條線吧?

12 分鐘


Trunk(幹道)是一條可以同時載送多個 VLAN 流量的連線。為了讓對端知道每個訊框屬於哪個 VLAN,會在訊框裡插入一個標籤(tag)

一般訊框
┌────────┬────────┬──────┬────────┬─────┐
│ 目的MAC │ 來源MAC │ 類型 │  資料  │ FCS │
└────────┴────────┴──────┴────────┴─────┘

802.1Q 標籤訊框
┌────────┬────────┬─────────┬──────┬────────┬─────┐
│ 目的MAC │ 來源MAC │ 802.1Q  │ 類型 │  資料  │ FCS │
└────────┴────────┴─────────┴──────┴────────┴─────┘
                    └─ 4 位元組 ─┘
                       ├ TPID  2B (0x8100)
                       ├ PCP   3 bit  ← QoS 優先權
                       ├ DEI   1 bit
                       └ VID  12 bit  ← VLAN 編號
802.1Q 在訊框中插入 4 個位元組

原生 VLAN(Native VLAN)

Trunk 上有一個 VLAN 的流量不會被打標籤,直接以原本的樣子送出去,這個 VLAN 稱為原生 VLAN,預設是 VLAN 1。設計目的是相容不懂 802.1Q 的老設備。

Trunk 設定
SW1(config)# interface gi0/1

! 2960 等交換器只支援 802.1Q,這行可省略
! 支援多種封裝的機型必須先指定,否則下一行會被拒絕
SW1(config-if)# switchport trunk encapsulation dot1q

SW1(config-if)# switchport mode trunk

! 改原生 VLAN(安全最佳實務:改成沒人用的)
SW1(config-if)# switchport trunk native vlan 999

! 限制只有哪些 VLAN 可以通過(最小權限原則)
SW1(config-if)# switchport trunk allowed vlan 10,20,999

! 驗證
SW1# show interfaces trunk
Port      Mode    Encapsulation  Status   Native vlan
Gi0/1     on      802.1q         trunking 999

Port      Vlans allowed on trunk
Gi0/1     10,20,999

DTP 與埠模式協商

本端模式對端 access對端 dynamic auto對端 dynamic desirable對端 trunk
accessaccessaccessaccess不匹配
dynamic autoaccessaccesstrunktrunk
dynamic desirableaccesstrunktrunktrunk
trunk不匹配trunktrunktrunk

立即測驗這一節(4 題)