Try   HackMD

什麼是 SoL?

  • Serial over LAN 是一種技術,允許使用者透過網路(通常是 Ethernet)來遠端存取主機的序列埠(Serial Port),也就是說SoL是將傳統串列埠資料轉封包,經網路傳送,再還原為串列資料的過程。

爲什麼需要 SoL?

  • 傳統串列埠(如 RS-232)需直接接線,非常不方便遠端操作。
  • BMC(Baseboard Management Controller)透過 SoL:
    • 在作業系統開機前也能觀察主機輸出(BIOS/UEFI/Post)。
    • 可搭配 IPMI 或 Redfish 管理介面啟用/停止 SoL。
    • 達到「無人值守的伺服器管理」。

Components

組件 本質角色 解釋
主機 COM1 實體輸出 主機 BIOS/OS 的序列輸出通常連到此
BMC UART 中繼橋接 BMC 接收主機 UART 資料
IPMI LAN 傳輸媒介 BMC 將 UART 資料轉封包送往管理者
管理端 控制台 使用 ipmitool sol activate 之類指令遠端接收輸出

SoL 封包走向

+--------------------------------------+
| 主機 UART (串列埠 COM)                |
+--------------------------------------+
        |
        | UART 字元流 (bytes)
        V
+--------------------------------------+
| BMC UART 接收緩衝區                   |
| 將 bytes 包裝成 IPMI 封包 (RMCP+ UDP) |
+--------------------------------------+
        |
        | UDP/IP 封包 (IPMI SoL payload)
        V
+--------------------------------------+
| 遠端管理者 IPMI Console (ipmitool)     |
| 將封包還原成 UART 字元                |
+--------------------------------------+

封包格式(IPMI v2.0)

  • SoL 是使用 RMCP+(Remote Management Control Protocol)封包,透過 UDP port 623
  • 封包內包含:
    • Payload Type = SerialOverLan
    • Sequence Number
    • Data:真實的串列字元
    • ACK/NACK:可靠傳輸確認

常見 ipmitool 指令

指令 功能
ipmitool -I lanplus -H <BMC_IP> -U <user> -P <pw> sol info 查看 SoL 狀態
ipmitool -I lanplus -H <BMC_IP> -U <user> -P <pw> sol activate 啟用 SoL,進入串列監控畫面
ipmitool -I lanplus -H <BMC_IP> -U <user> -P <pw> sol deactivate 關閉 SoL
ipmitool sol set timeout 15 設定閒置 timeout
ipmitool sol set privilege-level admin 設定存取權限

常見使用場景(Usecases)

Usecase 解釋
✅ 遠端開機畫面觀察 BIOS/POST 階段出現錯誤可即時察看
✅ OS kernel panic 偵錯 如果有串列 console 輸出,可保留錯誤紀錄
✅ 安裝 OS 時遠端互動 Debian / CentOS / Ubuntu netinstall 可以完全透過 SoL
✅ 偵錯無法登入的系統 無 SSH 時仍可存取 Console 觀察
✅ 無人值守測試 搭配 PXE boot + SoL 可自動部署伺服器

延伸

概念 說明
Console Redirection BIOS 設定,允許將畫面輸出轉導到串列埠
IPMI v2.0 所有 SoL 操作依據 IPMI v2.0 中 SerialOverLAN 指令定義
Redfish ConsoleService 現代 BMC 支援透過 Redfish 取代 IPMI SoL(如 WebSocket 串流)