🔀 Juniper VLAN 建立與 Port 模式設定:從 Access Port 到 Trunk Port 完整實戰
前兩篇把 帳號密碼、管理介面、集中認證 這塊地基打好之後,接下來才輪到交換器最基本的職責:VLAN。這篇說明 Junos 上 VLAN 的建立方式,以及 access port 與 trunk port 兩種介面模式的設定與常見錯誤,是後續 routing 與 IRB 文章的前提。
1️⃣ VLAN 的基本概念與命名
Junos 的 VLAN 由 vlan-id(802.1Q 標籤,1–4094)與一個名稱組成,名稱只是方便管理用的識別字串,實際轉發邏輯看的是 vlan-id。建立 VLAN 本身很單純:
set vlans VLAN10-OFFICE vlan-id 10
set vlans VLAN20-SERVER vlan-id 20
set vlans VLAN99-MGMT vlan-id 99
commit
💡 命名建議把 vlan-id 直接放進名稱裡(如上面的 VLAN10-OFFICE),日後在 show vlans 或排錯時一眼就能對上號碼,不用再切去查對照表。
2️⃣ Access Port:單一 VLAN 的終端設備介面
Access port 用於連接終端設備(電腦、印表機、IP Phone 等),該介面只屬於一個 VLAN,進出流量不帶 802.1Q tag。
set interfaces ge-0/0/1 unit 0 family ethernet-switching interface-mode access
set interfaces ge-0/0/1 unit 0 family ethernet-switching vlan members VLAN10-OFFICE
commit
確認設定是否生效:
show interfaces ge-0/0/1 | display set
show vlans VLAN10-OFFICE detail
常見錯誤:忘記設定 interface-mode
只下了 vlan members 卻沒設定 interface-mode access,Junos 會採用預設行為,容易讓人誤以為介面模式已經正確而漏測。這是新手最常在 access port 上踩到的坑,設定完務必用 show interfaces 逐一核對,不要只看 commit 沒報錯就當作沒問題。
3️⃣ Trunk Port:承載多個 VLAN 的上聯介面
Trunk port 通常用在交換器之間的上聯線路,或連接需要辨識多個 VLAN 的伺服器(如虛擬化主機的實體網卡)。流量會依 802.1Q 標籤區分所屬 VLAN。
set interfaces ge-0/0/23 unit 0 family ethernet-switching interface-mode trunk
set interfaces ge-0/0/23 unit 0 family ethernet-switching vlan members [ VLAN10-OFFICE VLAN20-SERVER VLAN99-MGMT ]
commit
如果只需要放行部分 VLAN,方括號內列出對應名稱即可;不需要的 VLAN 不要放進 members 清單,這是最基本、也最容易被忽略的分段(segmentation)原則——trunk port 應該只帶它實際需要的 VLAN,而不是圖方便全部放行。
Native VLAN(不帶 tag 的預設 VLAN)
如果 trunk 線路上需要有一個「不帶 802.1Q tag」的預設 VLAN(例如與舊設備相容),要另外指定 native VLAN:
set interfaces ge-0/0/23 unit 0 family ethernet-switching native-vlan-id 1
| 比較項目 | Access Port | Trunk Port |
|---|---|---|
| 可承載 VLAN 數 | 1 個 | 多個(依 vlan members 清單) |
| 是否帶 802.1Q tag | 否 | 是(native VLAN 除外) |
| 典型連接對象 | 終端設備、印表機、IP Phone | 交換器上聯、虛擬化主機網卡 |
| 常見設定錯誤 | 漏設 interface-mode access | vlan members 全放行、忘記限縮 |
4️⃣ Voice VLAN:Access Port 上的第二個例外
IP Phone 搭配電腦共用一條網路線的情境很常見:電腦走一般 access VLAN,電話走獨立的 voice VLAN。Junos 用 voip 設定達成,這個介面本質上仍是 access port,只是多帶了一個語音專用的 tagged VLAN:
set interfaces ge-0/0/5 unit 0 family ethernet-switching interface-mode access
set interfaces ge-0/0/5 unit 0 family ethernet-switching vlan members VLAN10-OFFICE
set interfaces ge-0/0/5 unit 0 family ethernet-switching voip vlan VLAN50-VOICE
set interfaces ge-0/0/5 unit 0 family ethernet-switching voip forwarding-class expedited-forwarding
forwarding-class 這行是把語音流量標記為優先轉發,避免與資料流量搶頻寬時語音先掉封包,實際 class 名稱要對照你的 QoS 政策設定,不是每個環境都叫 expedited-forwarding。
5️⃣ 排錯常用指令
# 查看所有 VLAN 與所屬介面
show vlans
# 查看特定 VLAN 詳細成員
show vlans VLAN10-OFFICE detail
# 查看介面目前的 switching 設定
show interfaces ge-0/0/1 | display set
# 查看 MAC 位址表,確認流量是否進到正確 VLAN
show ethernet-switching table
# 查看介面實際運作狀態(是否 up、有無錯誤計數)
show interfaces ge-0/0/1 extensive | match "errors|Physical"
遇到「設定看起來沒錯,但流量就是不通」的狀況,優先順序建議是:先看 show ethernet-switching table 確認對方 MAC 有沒有學到正確的 VLAN,再看 show interfaces ... extensive 排除實體層問題(線材、對端 duplex/speed 不匹配),最後才回頭檢查 VLAN members 設定本身。反過來從設定檔開始逐行核對,通常會花比較多時間。
6️⃣ 上線前檢查清單
| 項目 | 確認內容 |
|---|---|
| VLAN 命名與 vlan-id | 命名規則一致,vlan-id 與規劃表對應無誤 |
| Access port | 已設定 interface-mode access,且僅屬於單一 VLAN |
| Trunk port | 已設定 interface-mode trunk,vlan members 僅放行實際需要的 VLAN |
| Native VLAN | 依需求設定,並確認 trunk 兩端一致 |
| Voice VLAN | IP Phone 埠已設定 voip vlan 與對應 QoS class |
| MAC table 驗證 | 已用 show ethernet-switching table 確認流量落在正確 VLAN |
⚠️ 「Trunk 兩端一致」這項特別容易漏——如果兩端交換器對 native VLAN 或 vlan members 的認知不同,輕則某個 VLAN 不通,重則造成流量洩漏到不該到的 VLAN,建議 trunk port 上線後兩端都各自 show 一次互相核對,不要只信任其中一端的設定畫面。
📚 延伸閱讀(站內相關文章)
- Juniper 網路設備介紹 – Juniper 產品線與基本概念總覽。
- VLSM 子網路規劃 – 規劃各 VLAN 對應網段時的基礎知識。
- Junos OS IRB 介面設定 – VLAN 建好之後,下一步就是 VLAN 間路由。
- Junos PyEZ 自動化管理 – VLAN 與介面設定穩定後,可搭配自動化工具批次管理。
- Proxmox VE 網路:VLAN 與 Bridge 設定 – 對照虛擬化平台端的 VLAN tagging 設定方式。
- FortiGate HA(FGCP)組態同步指南 – 多台設備 VLAN 一致性管理的實務案例。
✅ 結論與行動建議
VLAN 建立與 access/trunk 模式設定看似基礎,但「trunk 兩端不一致」「vlan members 圖方便全放行」這類問題在正式環境很常見,也是排錯時最耗時的項目之一。建議上線前依照本篇的檢查清單,逐項在測試環境驗證,並養成 trunk port 兩端互相核對的習慣。下一篇會進入靜態路由與基礎動態路由設定,把 VLAN 之間、與外部網路之間的路徑串接起來。
沒有留言: