Cisco 200-301: VLANs、Trunks、生成樹與 EtherChannel — 學習指南
屬於 Cisco CCNA 200-301 — 學習指南. 使用經過驗證的解答練習: Cisco 考試中心, 或參加限時模擬考試: ExamRoll.io.
總覽
虛擬區域網路 (VLAN)、Trunking、Spanning Tree Protocol (STP) 和 EtherChannel 是基礎的 Layer 2 技術,用來分割廣播域、在鏈路上承載多個 VLAN、防止迴圈,並增加頻寬和彈性。正確的設計和一致的設定可以防止因不匹配、迴圈和協商錯誤所引起的常見中斷。本節將解釋其運作行為、設定目的和權衡取捨,並指出您在園區和小型企業設計中可能遇到的故障模式。
VLAN、Trunk 和 VLAN 間路由
VLAN 的建立與 access port 的指派
- VLAN 將交換器邏輯上分割成多個廣播域;交換器會為每個 VLAN 維護一個獨立的 MAC 表。目的地未知的訊框只會在該 VLAN 內進行泛洪 (flooding)。
- 使用 ID (1–4094) 來定義 VLAN。VLAN 1 預設為 default/native VLAN;VLAN 1002–1005 為保留 VLAN。為了安全性和操作上的清晰度,應避免在 VLAN 1 上傳輸使用者流量。
- Access port 承載單一的資料 VLAN。使用
switchport mode access和switchport access vlan X進行設定,以防止 Dynamic Trunking Protocol (DTP) 意外地協商成 trunk。
Voice VLAN 與 QoS 考量
- IP 電話通常會為語音流量插入一個內部的 802.1Q 標籤,而透過電話串接的 PC 則在 access VLAN 上保持未標記狀態。
- 根據策略設定
switchport voice vlan Y,並信任 Layer 2 CoS 或 Layer 3 DSCP 標記。確保 access VLAN 和 voice VLAN 都在上游的 trunk 上被允許。
Native VLAN
- 在 802.1Q trunk 上,native VLAN 的流量以未標記 (untagged) 的方式傳送。為了安全性和清晰度,應在兩端設定一個未使用的專用 native VLAN,並將其從使用者存取中修剪 (prune) 掉。
- Native VLAN 不匹配可能導致流量洩漏、spanning-tree 異常和控制平面暴露。
802.1Q trunk、允許的 VLAN 列表、標記與協商
- 802.1Q trunk 透過為訊框加上 VLAN ID 標籤來承載多個 VLAN;native VLAN 則不加標籤。與第三方設備對接時,請使用 IEEE 802.1Q。
- 使用
switchport trunk allowed vlan明確限制承載的 VLAN,以限制不必要的廣播流量並減少攻擊面。 - Trunk 的建立可以是手動的 (
switchport mode trunk) 或透過 DTP 協商。dynamic desirable會主動嘗試建立 trunk;dynamic auto則是被動的。與非 Cisco 的鄰居設備對接時,應靜態設定 802.1Q 並考慮使用switchport nonegotiate。
簡短範例
vlan 10
name Users
vlan 20
name Voice
interface GigabitEthernet1/0/10
switchport mode access
switchport access vlan 10
switchport voice vlan 20
spanning-tree portfast
spanning-tree bpduguard enable
interface GigabitEthernet1/0/48
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk native vlan 999
switchport trunk allowed vlan 10,20,30
VLAN 間路由
- Router-on-a-stick:單一路由器介面透過 802.1Q 子介面在 VLAN 之間進行路由。其擴展性受限於單一介面的頻寬和低階路由器上 CPU 的轉送能力。
- Layer 3 交換器:為每個 VLAN 建立交換虛擬介面 (SVI),並啟用
ip routing以實現基於硬體的 VLAN 間路由。這提供了更高的吞吐量和更簡單的策略應用。
簡短範例
! Router-on-a-stick
interface GigabitEthernet0/0.10
encapsulation dot1q 10
ip address 192.168.10.1 255.255.255.0
interface GigabitEthernet0/0.20
encapsulation dot1q 20
ip address 192.168.20.1 255.255.255.0
! Layer 3 switch with SVIs
ip routing
interface Vlan10
ip address 192.168.10.1 255.255.255.0
interface Vlan20
ip address 192.168.20.1 255.255.255.0
常見的不匹配與權衡取捨
- Trunk 的 native VLAN 或允許的 VLAN 列表不匹配會導致 VLAN 滲透和主機孤立。務必驗證兩端的設定。
- 語音/資料 VLAN 設定錯誤會中斷電話/PC 的連線;請確認電話是否傳送帶有標籤的語音流量,以及 QoS 信任設定是否一致。
- 避免 VLAN 擴散;記錄 VLAN 到子網路的對應關係,並在可能的情況下進行路由彙總。
Spanning Tree 運作與迴圈防護
目的與行為
- 乙太網路缺乏 TTL 機制,在遇到迴圈時會導致網路癱瘓 (fails open)。STP 透過阻斷備援鏈路來建立一個無迴圈的樹狀結構,同時為每個 VLAN 保留一條單一的活動路徑。
- Root bridge 的選舉使用最低的 bridge ID (priority + MAC)。為每個 VLAN 或 instance 設定確定的 root。範例:
spanning-tree vlan 200 priority 0。
Port 角色、狀態與路徑成本
- 角色:Root Port (非 root 交換器到 root 的最佳路徑)、Designated Port (網段上的最佳路徑)、Alternate/Backup (用於防止迴圈的備用埠)。
- 傳統 802.1D 狀態:Blocking、Listening、Learning、Forwarding、Disabled。Rapid STP (802.1w) 將其簡化為 Discarding、Learning、Forwarding。
- 路徑成本是累加的;值越低越好。使用預設的 802.1t 成本,或在高速鏈路上明確調整以影響路徑選擇。
Rapid PVST+ 與 MST
- Rapid PVST+ 為每個 VLAN 運行一個 instance,並透過點對點鏈路上的握手和 proposal/agreement 機制快速收斂;非常適合需要精細控制且 VLAN 數量較少的環境。
- MST 將多個 VLAN 對應到少數幾個 instance,適用於需要擴展的大型環境。MST 區域中的所有交換器必須在名稱、修訂版本和 VLAN-to-instance 對應上達成一致;否則它們將以 PVST+ 相容模式互通,導致次佳的 spanning tree。
- 拓撲變更:802.1D 使用來自變更網段上 designated bridge 的 TCN BPDU;RSTP 則在來自 root 的 BPDU 中標記 TC,快速使 CAM 表項過期以限制泛洪持續時間。
邊緣與保護功能
- PortFast:立即將 access port 置於 forwarding 狀態,避免主機鏈路出現長時間的收斂延遲。不要在可能成為中繼鏈路的鏈路上啟用。
- BPDU Guard:如果在啟用 PortFast 的 port 上收到 BPDU,則將該 port 置於 err-disable 狀態,以防止因未受管理的交換器而意外產生迴圈。
- Root Guard:防止 designated port 在收到更優的 BPDU 時成為 root port;該 port 會被置於 root-inconsistent 狀態,直到威脅被移除。
- Loop Guard:在 non-designated port 上防範單向鏈路故障或 BPDU 遺失;它會保持 port 的 blocked 狀態 (loop-inconsistent),而不是錯誤地轉送流量。
- BPDU Filter:抑制 BPDU 的傳送/處理。僅在嚴格控制的情況下使用 (例如,在網路邊緣的主機上),因為濫用可能產生迴圈。
簡短範例
spanning-tree mode rapid-pvst
spanning-tree vlan 10,20 root primary
spanning-tree portfast default
spanning-tree bpduguard default
故障模式與疑難排解
- 因 priority 使用預設值而導致非預期的 root bridge;應明確設定 root/distribution 層的 priority。
- Native VLAN 不匹配可能將控制用的 BPDU 拖入錯誤的 VLAN。請確保 trunk 兩端的 native VLAN 一致。
- 單向光纖鏈路:Loop Guard 有所幫助,但也應考慮使用實體監控工具。
EtherChannel 與負載分佈
運作與協定
- EtherChannel 將平行的鏈路聚合成一個邏輯上的 port-channel,以增加頻寬並提供快速故障轉移。STP、MAC 表以及路由協定都會將其視為單一鏈路。
- LACP (IEEE 802.1AX/802.3ad) 是開放標準;模式有 active/passive。PAgP 是 Cisco 專有協定;模式有 desirable/auto。
mode on會強制捆綁而不使用任何協定——只有在兩端設定完全相同時才使用。 - 成員一致性是強制性的:速度/雙工模式、鏈路類型 (access 或 trunk)、允許的 VLAN 和 native VLAN、STP 設定、MTU,以及 Layer 3 與 Layer 2 模式都必須匹配。不一致會導致成員被暫停 (suspended) 或進入 errdisable 狀態。
負載平衡
- 流量分佈是基於 flow 的雜湊 (hashing),其依據來源/目的 MAC、IP 或 Layer 4 連接埠等欄位。請選擇一個能讓您典型流量模式多樣化的雜湊演算法。
- 由於排序問題,不支援基於封包 (per-packet) 的負載平衡;當 flow 數量少時,預期會有不均勻的使用率。
Layer 2 vs Layer 3 port-channel
- Layer 2:在成員介面和 Port-Channel 上使用
switchport建立捆綁;然後在 Port-Channel 上設定 access/trunk 屬性。 - Layer 3:在 Port-Channel 上設定
no switchport,指派一個 IP,然後加入成員。這對於路由式的分佈層上行鏈路很有用。
簡短範例
! LACP Layer 2 trunked port-channel
interface range Gi1/0/1-2
channel-group 10 mode active
!
interface Port-channel10
switchport mode trunk
switchport trunk allowed vlan 10,20,30
! Layer 3 port-channel
interface Port-channel20
no switchport
ip address 172.16.0.1 255.255.255.0
常見陷阱
- 一端為 LACP,另一端為 PAgP 或 on 模式:捆綁將無法形成或形成不一致。在多廠商環境中,應標準化使用 LACP。
- 在 trunked port-channel 中,成員介面若有不同的允許 VLAN 列表或 native VLAN,會導致非預期的流量黑洞。
- 變更成員介面的設定而非 Port-Channel 本身,會導致重新協商和不穩定;應將設定套用在 Port-Channel 上,而不是實體介面上。
維運的健全性:VLAN Pruning、VTP 與故障隔離
VLAN pruning
- 手動使用
vlan 10
name Users
vlan 20
name Voice
interface GigabitEthernet1/0/10
switchport mode access
switchport access vlan 10
switchport voice vlan 20
spanning-tree portfast
spanning-tree bpduguard enable
interface GigabitEthernet1/0/48
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk native vlan 999
switchport trunk allowed vlan 10,20,30
進行修剪,以防止不必要的流量在 trunk 上氾濫。
- VTP pruning (若使用 VTP) 會根據 VLAN 是否存在自動修剪,但這依賴於準確的通告。手動修剪則更具可預測性且易於稽核。
VTP 的認知與風險
- VTP 會在整個 domain 中傳播 VLAN 資料庫。模式有:server、client、transparent。一個 domain 內的所有交換器共享相同的名稱和修訂版本號。
- 一台擁有更高修訂版本號但 VLAN 資料庫為空的設備加入時,可能會清除整個 domain 的 VLAN。最佳實踐是:使用 VTP transparent 模式(或是有嚴格控管的 server 模式)、設定密碼,並在重新利用設備時重設修訂版本號。
需注意的不匹配問題
- Native VLAN 不匹配:會導致控制平面的流量洩漏和 STP 異常。請確保兩端的 native VLAN 設定一致。
- Trunk 允許的 VLAN 不匹配:會造成特定 VLAN 的單向連通性問題。
- DTP 不匹配:dynamic auto 對 dynamic auto 不會形成 trunk;應在交換器之間的鏈路上明確設定模式。
- Access port 被設定到錯誤的 VLAN:這是主機被隔離的常見原因。可使用
! Router-on-a-stick
interface GigabitEthernet0/0.10
encapsulation dot1q 10
ip address 192.168.10.1 255.255.255.0
interface GigabitEthernet0/0.20
encapsulation dot1q 20
ip address 192.168.20.1 255.255.255.0
! Layer 3 switch with SVIs
ip routing
interface Vlan10
ip address 192.168.10.1 255.255.255.0
interface Vlan20
ip address 192.168.20.1 255.255.255.0
來驗證。
迴圈預防與故障隔離
- 在邊緣結合使用 PortFast 和 BPDU Guard,在從 distribution 指向 access 的方向使用 Root Guard,並在非指定埠的備援上行鏈路上使用 Loop Guard。
- 在 access ports 上使用 storm control 來限制廣播/多點廣播流量的上限,以限制故障期間的影響範圍。
- 使用
spanning-tree mode rapid-pvst
spanning-tree vlan 10,20 root primary
spanning-tree portfast default
spanning-tree bpduguard default
來定位拓撲變更通知 (TCNs) 和角色/狀態的變化,使用
! LACP Layer 2 trunked port-channel
interface range Gi1/0/1-2
channel-group 10 mode active
!
interface Port-channel10
switchport mode trunk
switchport trunk allowed vlan 10,20,30
! Layer 3 port-channel
interface Port-channel20
no switchport
ip address 172.16.0.1 255.255.255.0
檢查捆綁群組的健康狀況,並用
undefined
確認 MAC 位址學習情況。當 Layer 3 中斷時,CDP/LLDP 可提供鄰居身份和埠對應資訊。
實務問題情境
Northwind Textiles 公司正在將兩棟大樓的網路整合成一個單一的園區 access 和 distribution 設計。需求為:鏈路故障時能快速收斂、支援使用者和語音 VLAN、防止來自非網管設備的意外迴圈,並確保備援上行鏈路的負載能平均利用。
解決方案
- 定義 VLAN 並標準化 native VLAN
- 建立 VLAN 10 (使用者) 和 VLAN 20 (語音)。保留 VLAN 999 作為 native VLAN,且不在其他地方使用。將 access ports 設定為
undefined
、
undefined
和
undefined
。
- 原理說明:清晰的網段切分和專用的 native VLAN 可防止未標記流量洩漏並簡化稽核。Voice VLAN 確保電話會標記其流量並獲得 QoS 保證。
- 建立具確定性且帶有修剪功能的 802.1Q trunks
- 在 access 層到 distribution 層的鏈路上,設定
undefined
、
undefined
、
undefined
,並將允許的 VLAN 僅設為
undefined
。
- 原理說明:明確的 trunking 設定可避免 DTP 的模糊性,一致的 native VLAN 可防止不匹配問題,而修剪則能減少廣播範圍和攻擊面。
- 部署 Rapid PVST+ 並搭配根橋控制與邊緣保護
- 啟用
undefined
。使用
undefined
將 distribution 層的一對交換器設定為主/次要根橋。在 access 交換器上啟用
undefined
和
undefined
;在指向 access 層的埠上應用
undefined
,並在備援上行鏈路上應用
undefined
。
- 原理說明:快速收斂可縮短中斷時間。根橋位置的安排能穩定路徑選擇。邊緣保護則可防止來自非網管設備的迴圈和單向鏈路故障。
- 使用 LACP EtherChannels 聚合上行鏈路
- 在兩端使用
undefined
將兩條或多條 access-to-distribution 鏈路捆綁起來。將 Port-Channel 介面設定為 trunk,並使用相同的 allowed VLANs 和 native VLAN 999。將系統的
undefined
設定為
undefined
。
- 原理說明:LACP 提供基於標準的協商、快速的成員故障處理,並能偵測設定不一致的問題。基於 IP 對的雜湊運算可將多樣化的使用者流量分散到各個鏈路上。
- 在 distribution 層實作 Layer 3 SVIs 以進行 VLAN 間路由
- 在 distribution 交換器上,啟用
undefined
並為 VLAN 10 和 20 建立 SVIs,同時使用 HSRP/VRRP 來提供閘道備援。保持 access 層為純 Layer 2 環境。
- 原理說明:在 distribution 層進行硬體式路由可擴展吞吐量、將故障域本地化,並簡化靠近核心的策略執行和 ACLs 管理。
- 強化 trunk 和 VTP 的行為
- 將所有交換器設定為
undefined
,並在連接到第三方設備的 trunk 上設定
undefined
。使用 show 指令和設定範本來驗證 native 和 allowed VLAN 的對稱性。
- 原理說明:這能消除 VTP 修訂版本號被清除的風險,並防止非預期的 DTP trunking,從而維持可預測的拓撲和 VLAN 的完整性。
- 驗證與監控
- 使用
undefined
驗證 spanning tree 角色,用
undefined
檢查 EtherChannel 健康狀況,並確認每個 VLAN 的 MAC 位址學習情況。啟用 syslog 來記錄 STP TCNs,並謹慎地為 BPDU Guard 啟用 errdisable 恢復功能。
- 原理說明:持續的驗證可以捕捉到設定的漂移,並及早突顯出佈線或設定上的錯誤,從而最小化平均修復時間 (MTTR)。
← 乙太網路交換與第二層轉送 · 所有領域 · IPv4 定址、子網路切割與路由 →
練習這些題目 → · 在 ExamRoll.io 上限時練習 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
通過考試 →