各 NOS 如何驗證模組
從「檢測到模組」到「端口 up」之間,每種網絡作業系統都會對模組身份做一次校驗。校驗的內容、比對失敗時的處理方式,以及管理員能否繞過校驗,因廠商、平台和版本而不同——這種差異正是光模組兼容性問題的全部內容。本頁把各廠商文件記載和現場觀察到的行為並列呈現,使台架上讀出的模組資訊可以對照目標設備來判斷。
可以檢查的內容
| 檢查項 | 涉及的位元組 | 誰在做 |
|---|---|---|
| 校驗和 CC_BASE / CC_EXT | SFP 63/95、QSFP 191/223、CMIS 222/255 | 幾乎所有平台——失敗即為無效 EEPROM(校驗和) |
| 標識符/連接器/編碼一致性 | SFP 0、2、11;QSFP 0、130、139 | 大多數平台;未知類型會如實顯示 |
| 合規代碼與端口匹配 | SFP 3–10、36;QSFP 131–138、192;CMIS Applications | 大多數平台——speed and type not supported(合規代碼) |
| 廠商名稱 + 部件號 與列表比對 | SFP 20–35、40–55;QSFP 148–163、168–183 | 嚴格和半嚴格平台(部件編號) |
| 廠商專有簽名 | 廠商區域(SFP 96–127、QSFP 224–255、CMIS custom) | 少數 OEM;與序號綁定的雜湊值 |
| 序號格式/日期代碼 | SFP 68–91;QSFP 196–219 | 少見;由支援工程師人工查看 |
| 功率等級與端口匹配 | SFP 64;QSFP 129/107;CMIS 200–201 | 所有實現了功耗管理的平台(功率與散熱) |
各廠商的行為
以下是近期版本中公開的命令和行為;細節因平台和版本而異。
| 廠商 / NOS | 檢查內容 | 失敗後的表現 | 繞過方式 | 第三方模組的 DDM |
|---|---|---|---|---|
| Cisco IOS / IOS-XE(Catalyst、ISR) | 廠商/PN 列表和廠商專有檢查;校驗和 | %PHY-4-UNSUPPORTED_TRANSCEIVER,端口 errdisabled(gbic-invalid),激光器關閉 | service unsupported-transceiver(隱藏命令)+ no errdisable detect cause gbic-invalid;並非所有平台都支援;TAC 不提供支援 | 接受後可顯示;部分欄位為空 |
| Cisco NX-OS(Nexus) | 同上,多數數據中心平台上更寬鬆 | 通常 up 並記錄日誌;嚴格的 SKU 會 errdisable | service unsupported-transceiver | 通常顯示 |
| Cisco IOS-XR | 按平台的光模組列表、功率等級 | unsupported 狀態,端口可能保持 down | 有限;因平台而異 | 部分支援 |
| Arista EOS | 校驗和、類型一致性 | 記錄 unsupported 日誌;鏈路正常 up | 無需繞過 | 完整 |
| Juniper Junos | 廠商/PN 列表用於判定「supported」標籤、校驗和 | 鏈路通常 up;show chassis pic 標記為 unsupported;部分 EX/QFX 平台對未知 PN 不提供 DDM 或限制速率 | 無官方方式 | 已知 PN 完整,未知 PN 部分支援 |
| Huawei VRP | 廠商/PN;非華為模組 → 警報 | 鏈路 up,但持續出現 phony 光模組警報;部分平台會限制 | transceiver phony-alarm-disable(系統視圖) | 完整 |
| H3C Comware | 與 VRP 相同 | 警報 | transceiver phony-alarm-disable | 完整 |
| HPE Aruba AOS-S / AOS-CX | 廠商/PN 列表 | unsupported,端口 down | allow-unsupported-transceiver | 完整 |
| Dell OS10 / OS9 / PowerConnect | 校驗和;部分老設備有列表檢查 | 記錄日誌;老設備:errdisable | service unsupported-transceiver(老版本) | 完整 |
| Extreme EXOS / VOSS | 校驗和、類型 | 記錄日誌,up | — | 完整 |
| Ruckus/Brocade ICX(FastIron) | 校驗和;部分平台僅對 Brocade PN 提供光功率監測 | up;DDM 可能缺失 | — | 部分支援 |
| Brocade FOS(SAN) | 大多數 Gen 5/6/7 平台要求 Brocade 品牌 PN 和序號 | 端口 Mod_Inv,未啟用 | 無 | 僅限 Brocade 光模組 |
| Nvidia/Mellanox(Onyx、Cumulus、IB) | 以太網:校驗和、類型;InfiniBand:線纜資訊由 fabric manager 校驗 | 以太網 up 並記錄日誌;IB 可能降速運行或標記 | — | 完整 |
| SONiC / 白牌 | 平台插件:校驗和、CMIS 解析 | up;未知欄位按原始值顯示 | — | 完整(取決於插件) |
| MikroTik RouterOS / SwOS | 除解析外無其他檢查 | up | — | 完整 |
| Ubiquiti | 除解析外無其他檢查 | up | — | 完整 |
| 伺服器網卡(Intel、Broadcom、Mellanox) | 部分 Intel 系列有驅動白名單 | 驅動拒絕啟用端口 | allow_unsupported_sfp=1 模組參數(Intel ixgbe/i40e) | 通過 ethtool -m |
廠商如果提供了繞過方式,通常是「按現狀」提供的:模組可以工作,但廠商不承諾支援這種組合。是否在機隊中使用,由網絡負責人決定(第三方光模組)。
「改碼為廠商 X」需要滿足甚麼
| 平台類別 | 被接受的最低要求 | 還建議做到 |
|---|---|---|
| 寬鬆型(Arista、SONiC、MikroTik、Extreme…) | 校驗和有效、類型代碼一致 | 使用真實廠商名稱和 PN——改碼為 OEM 並無收益 |
| 列表檢查型(Juniper、Aruba、Huawei/H3C,以及多數 NX-OS SKU) | 廠商名稱和 PN 與平台列表完全一致,端口的合規代碼正確 | 匹配的 PN 後綴/等級;合理的序號和日期代碼 |
| 簽名檢查型(Cisco IOS/IOS-XE,部分 XR) | 以上全部要求,加上針對該序號計算出的廠商專有區域 | 身份欄位與 PN 一致(波長、傳輸距離、技術類型) |
| 僅認品牌型(Brocade FOS) | Brocade 廠商字元串和 PN 系列、序號格式 | — |
解讀拒絕資訊
| 日誌/狀態文本 | 含義 | 下一步 |
|---|---|---|
unsupported transceiver、Mod_Inv、phony | 身份不在列表中 | 使用繞過方式,或改碼為列表內的 PN |
invalid EEPROM、checksum error | CC_BASE/CC_EXT 錯誤 | 重新計算(校驗和) |
speed and type not supported、unknown media type | 合規代碼與端口不匹配 | 修正代碼,或使用其他端口模式(速率) |
power class exceeds,卡在 LowPwr | 功率等級與籠子不匹配 | 功率與散熱 |
Module not ready,DP 狀態卡住 | CMIS 啟動過程 | CMIS 問題 |
各 NOS 下查看這些狀態的命令:在交換機上驗證光模組。
軟件升級帶來的變化
廠商在版本之間收緊或放寬檢查:新的簽名校驗、新的支援光模組列表、被移除的隱藏命令、變化的 DDM 處理方式。昨天還能正常工作的一批第三方或改碼光模組,升級後可能變成 errdisabled(兼容性矩陣與固件)。
在 CodingBox 中
CodingBox 會顯示上述每項檢查所讀取的確切位元組——廠商名稱、PN、校驗和、合規代碼、功率等級——Code database 中保存著某個平台類別可以接受的身份資訊。改碼後要在測試端口上驗證;最終結論由交換機而不是台架給出(Check transceiver)。
伺服器側的對應內容——各網卡廠商的驅動白名單、Intel 繞過方式、Windows 和 ESXi 的行為:網卡上的光模組兼容性。