網路設備技術

Trunk 與 Access:交換器上兩種埠的分工哲學

從 19 世紀的電話幹線到 VXLAN 的 1,600 萬網段——一條標籤的演化史

2026-07-09 · 12 min read
VLAN 802.1Q 交換器

📍 一句話核心

Access 埠讓一台不懂 VLAN 的終端設備安穩地活在單一網段裡,Trunk 埠則用 802.1Q 標籤讓一條實體線同時載運多個 VLAN——前者是「一戶一門牌」,後者是「共用的高速公路」。

🌍 時間線全景

從 Ethernet 誕生到 VXLAN 突破 VLAN 數量上限,這條演化軸跨越了四十年:

技術演進時程甘特圖
綠色為已成歷史的階段,橘色為至今仍在使用的標準。802.1Q(1998)是整條軸線的分水嶺。
年份事件意義
19 世紀末電話系統的城際主幹線稱為 Trunk Line「trunk = 多路共用幹道」的字源(考據性質)
1973Bob Metcalfe 發明 Ethernet廣播式網路誕生,也埋下廣播風暴的種子
約 1984–1988W. David Sincoskie(Bellcore)提出 VLAN 概念用「顏色標籤」切割廣播域的最早構想
1990Kalpana 推出第一台多埠 Ethernet 交換器交換器時代開始,VLAN 有了落地的舞台
1990 年代中期Cisco ISL、3Com VLT 等私有協定跨交換器載運 VLAN,但廠牌互不相通
1998-12-08IEEE 802.1Q-1998 核准4-byte 標籤成為全球共通語言
2005-12-07IEEE 802.1ad(QinQ)核准電信商在客戶標籤外再包一層 S-Tag
2014-08RFC 7348(VXLAN)發表24-bit VNI 提供約 1,600 萬個網段

第一幕基礎概念——為什麼需要把一張網切成好幾張

想像一間 1990 年代的公司:會計部、工程部、業務部的電腦全插在同一組集線器上。Ethernet 的本質是廣播——任何一台電腦喊一聲「誰是 192.168.1.1?」(ARP 請求),整層樓每台電腦都得停下來聽。人一多,網路就像一間所有人同時講話的大會議室:你的封包沒問題,但你的耳朵先累死了。更糟的是安全問題——會計部的薪資封包,工程部的電腦在物理上是「聽得到」的。

1980 年代中後期,Bellcore 的 W. David Sincoskie 在研究如何擴展 Ethernet 時提出了一個想法:與其蓋更多獨立的實體網路,不如在同一套實體設備上用標籤畫出多個邏輯網路。他當時稱之為 multitree bridge,用不同「顏色」標記封包屬於哪個廣播域——這就是 VLAN(Virtual LAN)的雛形。1990 年 Kalpana 推出第一台真正的多埠 Ethernet 交換器後,這個構想有了實作舞台:交換器可以規定「1 到 8 號埠屬於會計 VLAN,9 到 16 號埠屬於工程 VLAN」,兩個 VLAN 之間的廣播互不打擾,彷彿兩台獨立的交換器。

這就帶出了 Access 埠的角色:它是交換器面向終端設備(電腦、印表機、IP 電話)的門。Access 埠只屬於一個 VLAN,而且進出的封包不帶任何標籤(untagged)——因為你的筆電網卡根本不知道 VLAN 是什麼,也不需要知道。交換器內部默默記著「這個埠收到的封包一律算 VLAN 10」(這個對應關係就是 PVID),封包離開 Access 埠送往電腦前,標籤也會被拆掉。用公寓比喻:Access 埠是每一戶的家門,門牌(VLAN 歸屬)釘在門框上由大樓管理員(交換器)管理,住戶自己完全不用操心。

但問題來了:如果會計部分散在兩層樓、接在兩台交換器上呢?最笨的辦法是每個 VLAN 拉一條實體線連接兩台交換器——三個 VLAN 就要三條線、佔六個埠。網路一大,這根本不可行。工程師需要一條能同時載運多個 VLAN 的共用幹道,並且要有辦法在幹道上分辨每個封包屬於誰。

這條幹道就是 Trunk 埠。有趣的是,「trunk」這個詞比 Ethernet 老了將近一百年:19 世紀末的電話系統裡,連接兩個城市電話交換局的主幹線就叫 Trunk Line——一條幹線裡多路通話共用(此字源屬考據性質)。網路工程師借用了這個詞:Trunk 埠就是交換器之間、或交換器與伺服器之間的「電話幹線」,多個 VLAN 的流量在同一條實體線上並行,靠標籤區分彼此。

第二幕技術演進——從各說各話到 802.1Q 統一標籤

幹道有了,下一個問題是「標籤長什麼樣」。1990 年代中期,各家廠商自己發明:Cisco 有 ISL(Inter-Switch Link,用整層外包裝把原始訊框包起來)、3Com 有 VLT。結果就是 Cisco 交換器和 3Com 交換器之間的幹道接不起來——就像兩家貨運公司用不同的貨櫃規格,港口吊車無法通用。

1998 年 12 月,IEEE 通過 802.1Q 標準,終結了方言時代。它的做法比 ISL 優雅得多:不是把整個訊框重新包裝,而是在 Ethernet 訊框的來源 MAC 位址之後插入 4 個 byte 的標籤

目的 MAC
6 bytes
來源 MAC
6 bytes
TPID 0x8100
16 bits
PCP
3
DEI
1
VID
12 bits
型別/長度
2 bytes
Payload…
802.1Q 標籤(彩色部分,共 4 bytes)插在來源 MAC 之後——不重新包裝整個訊框,只「插隊」四個 byte。
802.1Q 標籤欄位 bit 分配
32 個 bit 裡有一半是「這是標籤」的識別碼(TPID),真正的 VLAN 編號只有 12 bits——這個數字日後成了雲端時代的天花板。
  • TPID(16 bits,固定 0x8100):告訴對方「接下來是 VLAN 標籤,不是一般的型別欄位」
  • PCP(3 bits):優先權,讓語音封包可以插隊(即 802.1p CoS)
  • DEI(1 bit):壅塞時優先丟棄的標記
  • VID(12 bits):VLAN 編號本體,2¹² = 4096 個,扣掉保留的 0 與 4095,實際可用 4094 個

於是 Access 與 Trunk 的分工徹底定型:Access 埠收送不帶標籤的封包,服務單一 VLAN;Trunk 埠收送帶 802.1Q 標籤的封包,服務多個 VLAN。終端設備從頭到尾不知道自己被「分色」過。

不過 802.1Q 留了一個特例:Native VLAN——Trunk 埠上唯一「不貼標籤直接通行」的 VLAN,預設是 VLAN 1。這個為了相容性設計的後門,日後成了經典攻擊的入口:

Double-Tagging(雙重標籤)VLAN 跳躍攻擊——展開看攻擊原理與防範

攻擊者接在與 Native VLAN 同號的 Access 埠上,故意發出帶兩層標籤的封包(外層 = Native VLAN、內層 = 想入侵的目標 VLAN);第一台交換器看到外層標籤等於 Native VLAN,剝掉它就往幹道送;第二台交換器看到剩下的內層標籤,誤以為這是合法的目標 VLAN 流量——攻擊者就這樣跳進了本來到不了的網段。

實務鐵則:Native VLAN 改成一個沒有任何主機使用的專用編號、絕不沿用預設的 VLAN 1、也不把任何 Access 埠劃進 Native VLAN。

另外兩個實務配套也在這個時期成熟:Cisco 的 DTP(Dynamic Trunking Protocol)能讓兩台交換器自動協商形成 Trunk,方便但也是風險——攻擊者可以假裝成交換器騙出一條 Trunk,所以面向終端的埠應明確設成 access 模式並關閉 DTP。而 Allowed VLAN List 則是幹道的通行證管制:Trunk 預設放行所有 VLAN,但最佳實踐是只允許真正需要跨越這條幹道的 VLAN,既減少不必要的廣播氾濫,也縮小攻擊面。

第三幕現代應用——同一個概念,長出三種新形態

進入 2000 年代之後,Access 與 Trunk 的二分法沒有被淘汰,反而在三個方向上開枝散葉。

第一個方向是術語的多樣化。同一個概念在不同廠牌有不同叫法:Cisco 說 trunk port / access port;HPE、Aruba(ProCurve 血統)的交換器則說 tagged port / untagged port——「這個埠對 VLAN 20 是 tagged」等於 Cisco 語境的「trunk 上允許 VLAN 20」,「對 VLAN 10 是 untagged」則對應 access 或 native 的行為。跨廠牌對接時,翻譯錯這兩個詞是機房裡最常見的斷線原因之一:一端 tagged、一端 untagged,鏈路燈是亮的,封包卻雞同鴨講。

第二個方向是虛擬化。當一台實體伺服器裡跑著幾十台 VM、分屬不同 VLAN 時,伺服器接交換器的那條實體線天生就得是 Trunk。VMware vSwitch 的 VST 模式(Virtual Switch Tagging)由虛擬交換器代替 VM 貼標籤、拆標籤——VM 就像接在虛擬 Access 埠上的普通電腦;VGT 模式(Virtual Guest Tagging)則讓 VM 自己處理 802.1Q 標籤,等於把 Trunk 一路延伸進客體作業系統。Access/Trunk 的分工哲學原封不動地搬進了軟體世界。

第三個方向是規模的突破。電信商首先撞牆:全城客戶的 VLAN 加起來遠超過 4094 個,而且客戶自己也在用 VLAN 標籤。2005 年的 802.1ad(QinQ)給出第一個答案——在客戶標籤(C-Tag)外面再包一層電信商標籤(S-Tag),像是把客戶已經貼好標籤的包裹再裝進電信商自己的貨櫃。接著雲端資料中心把牆撞得更徹底:數十萬租戶的隔離需求讓 12-bit 的 VID 徹底不夠用。2014 年 8 月發表的 RFC 7348(VXLAN)乾脆換了思路:把整個 Layer 2 訊框封裝進 UDP 封包裡跨 Layer 3 網路傳送,用 24-bit 的 VNI 取代 12-bit 的 VID。

網段識別位元數演進
識別欄位從 12 bits 翻倍到 24 bits——每加一個 bit,可用網段數就翻一倍。
可用網段數對比
4,094 對上約 1,677 萬:在這張圖上,傳統 VLAN 的長條幾乎看不見——這正是雲端資料中心非換 VXLAN 不可的原因。

有趣的是,VXLAN 世界裡依然存在 Access 與 Trunk 的影子:VTEP(VXLAN 端點)面向 VM 的一側做的事,和三十年前 Access 埠面向電腦做的事,本質上一模一樣——讓終端保持天真,把複雜留給幹道

📊 概念圖解

Access 與 Trunk 的封包旅程

一個訊框從會計部電腦到同 VLAN 的印表機,標籤只存在於中間的幹道上:

會計部電腦
untagged
送出普通訊框,進入交換器 A 的 Access 埠
交換器 A
VID=10
依 PVID 歸入 VLAN 10;走上 Trunk 幹道前貼上標籤
交換器 B
讀取+拆除
讀標籤確認 VLAN 10,拆掉標籤後往對應 Access 埠送
會計部印表機
untagged
收到普通訊框——全程不知道 VLAN 的存在

兩種埠的分工

Access 埠

面向終端|一戶一門牌
  • 只屬於單一 VLAN
  • 收送皆為 untagged,靠 PVID 歸類
  • 終端設備不需要懂 VLAN
  • 安全設定:明確設 access 模式、關閉 DTP

Trunk 埠

面向幹道|共用高速公路
  • 同時載運多個 VLAN(受 Allowed List 管制)
  • 802.1Q 標籤(12-bit VID)區分
  • Native VLAN 例外不貼標籤
  • 安全設定:Native VLAN 用專用編號、限縮允許清單

快速對照表

面向Access 埠Trunk 埠
服務對象終端設備(PC、印表機、AP 的管理介面)交換器之間、交換器到伺服器/hypervisor
VLAN 數量1 個多個(受 Allowed VLAN List 管制)
封包標籤進出皆 untagged帶 802.1Q 標籤(Native VLAN 除外)
VLAN 歸屬判斷埠上設定的 PVID讀取訊框內 12-bit VID
HPE/Aruba 術語untagged membertagged member
常見安全設定明確設 access 模式、關閉 DTPNative VLAN 用專用編號、限縮允許清單

🔗 引用與資源

註:Cisco ISL 確切推出年份未能查證(僅確認早於 1998 年 802.1Q 標準化);VLAN 概念提出年份各來源記載為約 1984–1988 年區間。

💡 核心洞見

複雜度該放在哪裡
Access/Trunk 分工的本質是「讓終端保持天真、把複雜留給幹道」。這個原則從 1998 年的 802.1Q 一路延續到 2014 年的 VXLAN,只是標籤從 12 bits 長成了 24 bits。
相容性後門就是安全前門
Native VLAN 是為了讓不懂標籤的舊設備也能走幹道而留的例外,結果成為 Double-Tagging 攻擊的入口——每一個「為了相容」的特例,日後都值得用安全的眼光重新審視。
標準化的價值在於淘汰方言
ISL 與 VLT 技術上未必比 802.1Q 差,但私有協定築起的牆最終都被開放標準推倒;今日跨廠牌對接的困擾只剩術語翻譯(trunk vs tagged),而不是協定本身。

🎓 進階探索

  • VTP 與 MVRP:VLAN 資料庫如何在多台交換器間自動同步(以及 VTP 誤刪全網 VLAN 的著名事故型態)
  • Voice VLAN:一個 Access 埠同時服務電腦與 IP 電話的混合模式,介於 access 與 trunk 之間的灰色地帶
  • Private VLAN:同一個 VLAN 內部再做隔離的進階玩法
  • VXLAN + EVPN:資料中心現代標準組合,控制平面如何取代泛洪學習
  • 802.1ah(PBB / Mac-in-Mac):802.1ad 之後,電信級 Ethernet 的下一層封裝