利用網路通訊協定分析程式來排查 PXE 開機問題

文件

維護與效能

000006544

2020 年 02 月 12 日

辦法

這些資訊並不會詳細說明可能導致 PXE 開機失敗的故障。本檔提供關於成功 PXE 開機需求的背景,並說明當沒有可用的 PXE 伺服器時將會發生的情況。

PXE 遠端開機程式以 DHCP 協定為基礎。若要瞭解 PXE 的運作方式,您必須先對 DHCP 有基本的瞭解。


動態

DHCP 是以啟動通訊協定為基礎,通常稱為 BootP,可讓系統從網路獲得 IP 位址並進行遠端開機。DHCP 新增了一些功能,例如動態 IP 位址和傳遞系統資訊的選項欄位。

DHCP 程式從使用 DHCP 探索訊息的用戶端程式開始。探索消息是一種 UDP 資料包,其來源埠為68(定義為 Bootpc 用戶端),目標埠為67(定義為 Bootps,適用于 Bootp 伺服器)。探索消息會將發出請求的節點的 MAC 位址作為來源 MAC 位址,而將廣播(所有 F)作為目標 MAC 位址。來源 IP 位址為0.0.0.0,而目的地 IP 位址為255.255.255.255 (廣播)。最少的要求包括下列選項。

  • 選項55(參數申請清單)
  • 選項1(子網路遮罩)
  • 選項3(路由器)
  • 選項6(功能變數名稱伺服器)

一個或多個 DHCP 伺服器應以 DHCP 優惠作出回應。DHCP 優惠消息是一種 UDP 包,其 MAC 位址是用戶端請求服務作為目標位址的用戶端。埠應與原始要求相反(來源埠應為67,目標埠應為68)。來源 IP 位址是提供 tendering 的伺服器位址,而目標 IP 位址則是廣播。此優惠將包括建議的 IP 位址加上所要求的可選參數的回應。

用戶端會利用 DHCP 請求來回應其中一項優惠。請求訊息是一種類似于探索消息的 UDP 資料包,使用相同的來源和目標埠及位址,並要求相同的參數。

伺服器會以要求的所有資訊來回應 DHCP ACK (確認)。ACK 消息是類似于「優惠訊息」的 UDP 資料包,而且有要求的可選資訊。


將 PXE 擴充至 DHCP

PXE 開機程式會新增遠端開機電腦所需的資訊,以延長 DHCP 通訊協定。這些資訊包括用戶端廠商和類,讓 PXE 伺服器選擇用戶端特定的映射。

請求 PXE 開機的系統會使用 DHCP 探索消息來識別其供應商和機器類別,並要求影像檔案的位置和檔案名。因為 PXE 伺服器可能提供多個映射,PXE 用戶端會識別其供應商和機器的類別。

來自 PXE 用戶端的 DHCP 探索消息包含以下的可選參數要求:

  • 60–供應商類別識別碼
  • 66-TFTP 伺服器名稱(對主持啟動映射的 TFTP 伺服器名稱的要求)
  • 67– Bootfile 名稱(要下載的映射檔案名稱)


檢查 PXE 開機的 Ethereal * 或 Wireshark * 追蹤

PXE 開機程式會涉及許多交換。

  1. PXE 用戶端會以填充的 PXE 選項傳送 DHCP 探索。
  2. DHCP 伺服器會利用 DHCP 提供的 TCP/IP 參數做出回應。
  3. PXE 用戶端以 DHCP 請求應答
  4. DHCP 伺服器會以 DHCP ACK 作出回應。
  5. 如果 DHCP 伺服器也是 PXE 伺服器,則 DHCP ACK 通常會有 TFTP 伺服器名稱和開機檔案名。如果 PXE 伺服器是不同的系統,PXE 伺服器與 PXE 用戶端在初始 DHCP 進程之間就會有單獨的請求與回復。
    會議
    • 如果初始 DHCP exchange 沒有 TFTP 伺服器名稱和開機檔案名,請查看跟蹤,直到您看到成功的 DHCP ACK,因為這兩個選項已完成。
    • PXE 用戶端收到具有 TFTP 伺服器名稱和開機檔案名的確認後,用戶端會連接到 TFTP 伺服器,並提供 TFTP 讀取請求,包括開機檔案的名稱。
    • 在檔案傳輸完成之前,會建立 TFTP 會話並繼續下去。

圖1是一個 Ethereal 捕獲 PXE 用戶端的 DHCP 探索消息的螢幕擷取畫面。請注意,選項55(參數申請清單)會高亮顯示,並且列出被要求的參數。

這些參數也包括對 TFTP 伺服器名稱的要求(選項66)和開機檔案名(選項67)。選項60,也要求供應商類別識別碼。對要求的回應是可選的,用於通知用戶端 PXE 伺服器與 DHCP 伺服器位於不同的伺服器上(使用 DHCP 代理程式)。

DHCP DISCOVER
圖1。DHCP 探索

 

圖2顯示 dhcp 請求的 DHCP ACK 回應。DHCP ACK 包括您在 DHCP 提供時會看到的相同選項。請注意,當 DHCP 事務成功時,就會在資料包中包含 TFTP 伺服器和開機檔案名。

DHCP ACK
圖2。DHCP ACK

 

成功的 DHCP exchange 後接下來從 TFTP 讀取請求開始的 TFTP 會話。圖3顯示了 TFTP 會話的開始。

TFTP Session
圖3。TFTP 會話。

 

圖4顯示 PXE 開機失敗的追蹤,因為沒有 PXE 伺服器。儘管 PXE 用戶端請求 TFTP 伺服器名稱(選項66)和開機檔案名(選項67),但所顯示的 DHCP 優惠並未包含選項66或67。在這種情況下,PXE 用戶端會產生重複的 DHCP 探索請求,後接 DHCP 提供完成 PXE 開機操作所需的選項。

DHCP OFFER
圖4。DHCP 優惠
若沒有可用的 PXE 伺服器