👋 課程導言
歡迎來到 ExtremeXOS 網路架構課程。今天我們要來深入探討網管人員的「聽診器」—— SNMP。 在專業的網路管理實務中,無論是管理小型辦公室的基礎設備,還是維運橫跨多國的大型雲端資料中心,SNMP 始終是監控網路健康狀態不可或缺的基石。 本課程將化繁為簡,不讓生硬的 OID 或 MIB 術語成為學習障礙,用最直觀且深入淺出的方式,帶領大家掌握 SNMP 的核心技術與應用。
核心概念 (Concept)
一句話定義
SNMP (Simple Network Management Protocol) 是一種標準化的應用層協定,用於在 IP 網路上「監控」與「管理」設備的狀態。
生活化比喻:醫院的健康檢查
🏥 醫療場景
- 醫生 (Doctor):負責發問、記錄數據的人。
- 病患 (Patient):被檢查的對象。
- 病歷表 (Chart):上面有標準的欄位(如血壓、心跳、身高)。
- 問診 (Checkup):醫生問:「你現在血壓多少?」病患回答:「120/80」。
- 緊急求救 (Emergency):病患突然心臟病發,主動按鈴呼叫醫生。
🌐 網路世界 (SNMP)
- NMS (Manager):網管伺服器,負責收集資料。
- Agent (Device):交換器、路由器等設備。
- MIB/OID:資料結構,定義了哪串數字代表 CPU 使用率或流量。
- Polling (Get Request):NMS 問設備:「Port 1 流量多少?」設備回答數據。
- Trap / Inform:設備發生 Link Down 或過熱,主動發送警報給 NMS。
運作原理 (Mechanism)
技術元件詳解
1. 管理資訊庫 (MIB) 與 OID
MIB 就像是圖書館的分類索引,是一個樹狀結構。樹上的每一個節點都有一個唯一的編號,稱為 OID (Object Identifier)。
例如:.1.3.6.1.2.1.1.1 通常代表設備的系統描述 (sysDescr)。
2. 溝通語言 (Operations)
- Get / GetNext / GetBulk:NMS 向設備索取資料 (讀取)。
- Set:NMS 修改設備設定 (寫入,例如關閉某個 Port)。
- Trap:設備主動通報異常 (射後不理,UDP)。
- Inform:設備主動通報 (需要 NMS 回覆確認,較可靠)。
3. 傳輸層協定
使用 UDP。
Port 161 (Agent 監聽,接收查詢)
Port 162 (NMS 監聽,接收 Trap)
版本演進與關鍵參數
| 版本 | 安全性 (Security) | 特點 |
|---|---|---|
| SNMPv1 | 極低 (明文 Community) | 最古老,不支援 64-bit 計數器 (無法準確統計 10G 流量)。 |
| SNMPv2c | 低 (明文 Community) | 目前最常用。效能佳,支援 64-bit counters,支援 GetBulk。 |
| SNMPv3 | 高 (加密 + 驗證) | 支援 Auth (MD5/SHA) 與 Priv (DES/AES),配置較複雜但安全。 |
架構視覺化 (Visuals)
SNMP 監控拓撲圖
此圖展示了 NMS 如何透過 UDP 161/162 與不同區域的設備進行互動。
(Manager)"] DB[("Log Database")] NMS -->|"儲存歷史數據"| DB end subgraph Core ["核心網路 (Core)"] CoreSW["Core Switch
(ExtremeXOS)"] end subgraph Edge ["邊緣網路 (Edge)"] AccessSW1["Access Switch 1"] AccessSW2["Access Switch 2"] end NMS -- "UDP 161 (Get/Set)" --> CoreSW NMS -- "UDP 161" --> AccessSW1 CoreSW -.-> |"UDP 162 (Trap Alert!)"| NMS AccessSW2 -.-> |"UDP 162 (Trap Alert!)"| NMS CoreSW --- AccessSW1 CoreSW --- AccessSW2 style NMS fill:#f9f,stroke:#333,stroke-width:2px style CoreSW fill:#bbf,stroke:#333,stroke-width:2px
Polling 與 Trap 互動流程
實務應用場景 (Use Case)
案例:企業總部流量監控與異常告警
情境描述
公司的 ERP 系統最近常變慢。網管團隊懷疑是核心交換器的 Uplink 頻寬被其他流量塞滿。 我們需要利用 SNMP 定期收集流量數據繪製成圖表 (如 MRTG/Cacti/PRTG),並在 Port 斷線時收到通知。
ExtremeXOS 設定範例
Extreme NetworksCisco IOS 設定範例 (對照)
Cisco優缺點分析
- 標準化協定,支援幾乎所有廠商。
- Polling 機制可產生長期的歷史趨勢圖。
- Trap 機制可提供即時的故障通知。
- 頻繁 Polling 可能消耗設備 CPU (Control Plane)。
- v1/v2c 為明文傳輸,易被竊聽 Community String。
- UDP 傳輸不保證 Trap 一定會送達 (除非改用 Inform)。
大師隨堂測驗 (Quiz)
Q1. 預設情況下,SNMP Agent (設備端) 監聽哪一個 UDP Port 來接收 NMS 的查詢?
解析:Agent (交換器) 使用 UDP 161 接收 NMS 的 Get/Set 請求;而 NMS 使用 UDP 162 接收 Agent 發出的 Trap。
Q2. 關於 SNMP 版本的敘述,下列何者正確?
解析:v1 與 v2c 僅使用 Community String (明文) 驗證。v3 才是真正支援安全性 (User-based Security Model) 的版本。v1 也不支援 64-bit Counter。
Q3. 如果您希望設備發出警報時,必須確認 NMS 有收到,否則重傳。應使用哪種機制?
解析:Trap 是「射後不理」(Fire and Forget),NMS 不會回覆 Ack。Inform 則要求 NMS 回覆確認,若未收到確認,Agent 會重試。
Q4. OID (Object Identifier) 在 SNMP 架構中的角色為何?
解析:OID 就像是圖書館的索書號或導航的 GPS 座標,用來精確定位 MIB 中的某個數值 (例如 CPU loading)。
Q5. 在 ExtremeXOS 中,若要設定一個僅供讀取的 Community string 名為 "monitor",指令應為何?
解析:選項 A 是 Cisco 的語法。選項 B 才是 ExtremeXOS 的標準語法 (`configure snmp add community readonly [name]`)。