遠端安裝和啟動作業系統
網絡卡韌體支援pxe的介面,一般是有基本的ip/udp協議棧,支援dhcp, tftp協議;bios中可以設定通過pxe啟動作業系統
啟動過程,大致如下:
先傳送dhcp discover訊息,請求ip, tftp server位址,bootloader檔名稱
如果沒有請求到必要的pxe相關的選項,主要的就有兩個tftp server name(tftp伺服器位址),bootfile name(bootloader的檔名稱,相對tftp server的根目錄); 則繼續執行步驟1,直到取得這些資訊
分為有盤和無盤系統啟動,當客戶端機器沒有盤時,也可以從網路磁碟啟動(比如nfs);客戶端有盤時,要麼安裝作業系統,要麼從已安裝的磁碟啟動(pxe會自動識別是直接安裝還是直接啟動)
服務端的dhcp伺服器必須支援pxe的相關選項, 這些選項pxe客戶端會通過dhcp discover訊息的request paramenter list來宣告所有需要的選項,如果dhcp server不支援pxe啟動,那麼就只會回覆乙個普通的分配位址的dhcp offer訊息,而不會包含pxe啟動相關的啟動選項,這時候pxe客戶端不會直接傳送nak訊息拒絕這個offer, 會繼續傳送dhcp discover訊息
之所以不直接nak沒有包含pxe啟動的訊息,這裡是有歷史原因的:
dhcp 協議為了相容bootp,以及保持後續的新增選項,對不支援的選項,是可以選擇不回覆的,對客戶端在request paramenter list裡列出的選項,是盡可能多的回覆,單不保證會回覆所有的選項
dhcp協議裡是允許多個dhcp server存在的,每個server都可以響應dhcp discover訊息,客戶端會根據需要來採用多個dhcp server提供配置資訊
pxe協議裡為了支援不影響已有的dhcp server的配置,pxe啟動支援兩階段啟動,先是獲得位址(可能是dhcp server1),再獲得pxe相關的選項(可能是dhcp server2,甚至是通過dhcp relay agent**到其他網路裡的dhcp server),因此當收到不包含pxe相關選項的dhcp offer訊息時,pxe客戶端仍然會繼續傳送dhcp discover訊息,向dhcp server請求pxe相關的選項,否則就不能繼續pxe的啟動過程
一般網絡卡韌體裡的pxe驅動,只支援通過dhcp和tftp配合來啟動的;但是一些開源的專案,已經拓展了pxe的啟動方式,支援通過http, scsi, nfs來引導啟動遠端作業系統的方式,比較有名的有ipxe(gpxe的繼承者)
另外bootloader也有一些比較有名的,比如syslinux, pxelinux, ipxe也可以作為bootloader來使用
pxe相關的dhcp option基本都可以在rfc 2132, rfc 5071, rfc 4578中找的到解釋,也可以參考man dhcp-option來確認dhcpd對這些選項的支援情況
rfc4578: dynamic host configuration protocol (dhcp) options for the intel preboot execution environment (pxe),主要定義客戶端上報系統資訊和option請求規範
man dhcp-options, 解釋dhcpd的option配置
rfc2132: dhcp options and bootp vendor extensions,包含大部分的dhcp option
rfc5071: dynamic host configuration protocol options used by pxelinux
PXE裝機過程詳解
預啟動可執行環境 讓計算機的啟動可以不依賴本地資料儲存裝置 如硬碟 或本地已安裝的作業系統。裝機條件 準備centos7安裝源 http方式yum庫 啟用dhcp服務 pxe引導配置 啟用tftp服務,提供裝機用的核心 初始化檔案 提供pxe引導程式 配置啟動選單 步驟 httpd 裝包啟服務 建立...
PXE網路安裝linux原理
第一步 pxe client向dhcp傳送請求 首先,將支援pxe的網路介面卡 nic 的客戶端的bios設定成為網路啟動,通過pxe bootrom 自啟動晶元 會以udp 簡單使用者資料報協議 傳送乙個廣播請求,向網路中的dhcp伺服器索取ip位址等資訊。第二步 dhcp伺服器提供資訊 dhcp...
pxe裝機原理 PXE無盤啟動的基本工作原理
pxe無盤啟動的基本工作原理 pxe是rpl的公升級品,它是preboot execution environment的縮寫。它們的不同之處為 乙個是靜態路由,乙個動態路由。不難理解 rpl是根據網絡卡上的id號加上其它的記錄組成的frame向server發出請求,而server那裡早已經有了這個i...