轉發基礎:VLAN、LAG、生成樹與路由
光模組問題從不會以「光模組問題」的面目出現。它表現為生成樹拓撲變化、LAG 成員被掛起、OSPF 鄰居反覆震盪、VXLAN 隧道閃斷,或者「一半用戶變慢」。要把這些現象讀回物理層,需要掌握轉發層的詞彙:交換機如何學習 MAC 地址、VLAN 和 trunk 是甚麼、鏈路聚合如何對流量做雜湊、生成樹為甚麼阻塞端口,以及鏈路閃斷時路由協議會做甚麼。本頁就是這套詞彙,只保留根因可能是髒連接器時用得上的部分。
二層:MAC 學習與 VLAN
| 概念 | 發生了甚麼 | 光模組視角 |
|---|
| MAC 學習 | 每個幀的源 MAC 被記錄到入介面;未知目的地址被泛洪 | 端口閃斷會清空並重新學習表項——每次閃斷後都有短暫泛洪 |
| 老化 | 表項過期(預設 300 秒) | — |
| VLAN(802.1Q) | 一個廣播域;幀在 trunk 上攜帶 12 位元標籤(1–4094) | — |
| Access 端口 | 一個未打標籤的 VLAN | — |
| Trunk 端口 | 多個打標籤的 VLAN,一個未打標籤的 native VLAN | 上行鏈路兩端 native VLAN 不一致表現為部分連通,而不是鏈路故障 |
| MTU / 巨幀 | 預設 1500 位元組,巨幀 9000–9216 位元組 | 上行鏈路兩端 MTU 不一致時小包能通過、大包被丟棄——看起來像間歇性光模組故障 |
| 風暴控制、BPDU guard、端口安全 | 關閉端口的保護特性 | 由此產生的 errdisable 端口看起來像模組失效(現象索引) |
生成樹
| 變體 | 收斂時間 | 說明 |
|---|
| STP(802.1D) | 30–50 秒 | 傳統協議 |
| RSTP(802.1w) | < 1–3 秒 | 大多數設備的預設協議 |
| MSTP(802.1s) | 與 RSTP 相同,按實例 | 按 VLAN 分組 |
| PVST+/Rapid-PVST+ | 按 VLAN | Cisco |
生成樹會阻塞冗餘的二層路徑。一個有問題的光模組會對它造成以下影響:
- 上行鏈路閃斷會產生拓撲變化通知(TCN);每次 TCN 都會在全網範圍內清空 MAC 表並引發數秒的泛洪——每次閃斷用戶都會感到卡頓(鏈路閃斷);
- 單向鏈路(一根光纖斷開,Tx 正常、Rx 不通)如果導致 BPDU 停止到達,可能形成環路——UDLD、 loop guard 和 bridge assurance 正是為此而設(無鏈路);
- 冗餘鏈路上出現阻塞端口指示燈(琥珀色)屬於正常現象,不是故障(端口命名與指示燈)。
Leaf-spine 架構通過讓每條鏈路都走路由來避免使用 STP。
鏈路聚合(LAG、port-channel、bond)
| 項目 | 規則 |
|---|
| 協議 | LACP(802.1AX / 802.3ad):成員交換 PDU,協商成員關係;靜態 LAG 沒有保護機制 |
| 成員 | 速率、雙工、MTU 必須相同;大多數 NOS 還要求 FEC 和介質類型一致——4 × 25G 光模組或 4 × 25G DAC,不能混用 |
| 雜湊 | 按 MAC/IP/端口欄位的雜湊分配流量;單條流量永遠不會超過一個成員的速率 |
| 有錯誤的成員 | 只要 PDU 能通過,LACP 就會把它留在捆綁內;某個成員上的 CRC 錯誤會破壞雜湊到它的流量——「部分會話變慢,其他正常」是典型特徵(VDM 與 FEC 指標) |
| 最小鏈路數 | 如果 up 的成員少於 N 個,整個捆綁就會斷開——防止在單條劣化鏈路上繼續運行 |
| 名稱 | 各 NOS 的叫法為 Port-channel、ae、Eth-Trunk、bond、PortChannel |
| 跨兩台交換機 | MLAG/vPC/VLT(堆疊與 MLAG) |
實踐建議:當 LAG「能用但很慢」時,檢查每個成員的計數器和 DDM,而不是檢查捆綁本身。
三層:交換機上的路由
| 概念 | 含義 | 光模組視角 |
|---|
| SVI / 路由端口 | VLAN 上或物理端口上的 IP 介面 | 路由上行鏈路沒有 STP;閃斷是一次路由事件 |
| 靜態 / OSPF / IS-IS / BGP | 路由協議;數據中心架構使用 BGP(每條鏈路一個 eBGP)或 OSPF | 鄰居 up/down 日誌能精確定位哪條鏈路何時閃斷 |
| ECMP | 在 N 條上行鏈路上的等價多路徑;流量雜湊方式與 LAG 類似 | 一條劣化上行鏈路會影響 1/N 的流量;BFD(50–300 毫秒)比協議自身的計時器更快發現故障 |
| 抑制(Dampening) | 抑制反覆閃斷的介面發佈路由 | 閃斷的光模組最終被抑制——鏈路「up」但流量不被路由 |
| VRF | 獨立的路由表(注意管理 VRF!) | 通過錯誤的 VRF ping 交換機看起來像鏈路故障 |
| 首跳冗餘(HSRP/VRRP) | 兩台交換機間的虛擬網關 | 閃斷會引發網關切換 |
Overlay
| 疊加網絡 | 應用場景 | 光模組視角 |
|---|
| VXLAN / EVPN | 數據中心架構:三層之上的二層 | 隧道走 ECMP;某條 spine 鏈路故障會隨機地、而非確定性地影響隧道 |
| MPLS / SR | 營運商網絡 | 快速重路由(< 50 毫秒)會掩蓋閃斷——需要檢查底層(underlay)計數器 |
| EVPN 多歸屬(ESI-LAG) | 替代 MLAG | 成員鏈路連到不同的 leaf,規則與 LAG 成員相同 |
流控與無損分類
| 機制 | 目的 | 光模組視角 |
|---|
| 802.3x pause | 讓鄰居暫停發送 | 很少使用;全局 pause 會掩蓋擁塞 |
| PFC(802.1Qbb) | 面向 RoCE/FCoE 的按優先級 pause | 存在 CRC 錯誤的鏈路觸發的是重傳而非 pause——但閃斷端口引發的 pause 風暴會導致無損分類在全網範圍內停滯(無損以太網) |
| ECN | 標記擁塞 | — |
把轉發層現象讀回物理層
| 轉發層現象 | 需要檢查的物理原因 |
|---|
| 每隔幾分鐘出現 STP TCN,日誌中有 MAC 閃斷 | 某條上行鏈路閃斷——DDM Rx 功率接近靈敏度、連接器髒污 |
| LACP 成員處於「suspended」/「individual」 | 該成員 FEC 或速率不匹配;模組未被識別 |
| OSPF/BGP 鄰居在某條鏈路上反覆重置 | 光模組閃斷,或模組達到溫度極限 |
| ECMP:部分流量變慢或丟包 | 某條上行鏈路存在 FEC 不可糾正錯誤 / CRC 錯誤 |
| 巨幀失敗,ping 正常 | MTU 問題——與光模組無關 |
| 光纖維修後出現環路或廣播風暴 | 單向鏈路、MPO 極性接反、缺少 UDLD |
| 軟件升級後流量中斷 | 新版本拒絕第三方光模組(兼容性矩陣與固件) |
| 伺服器看到鏈路 up,但沒有流量 | VLAN 錯誤/native 不匹配,或交換機側配了 LAG 而伺服器側沒配 |
每一行對應的物理層排查步驟:現象索引、 在交換機上驗證光模組。
在 CodingBox 中
轉發層的現象指向一個端口;端口指向一個模組;模組的 DDM、身份資訊和閾值——無論是在交換機上讀取還是在工作台上讀取——才能真正結案。在代碼資料庫中為每個模組保留記錄,能把「LAG 又變慢了」變成「成員 3,序號 X,Rx −17 dBm,已更換」。