《PXE》要點:
本文介紹了PXE,希望對您有用。如果有疑問,可以聯(lián)系我們。
PXE是 Preboot eXecution Environment 的縮寫 (也有人解讀為 Pre-Execution Environment; 有時候大家都叫它 “pixie”) PXE是一個獨立于數(shù)據(jù)存儲設備(象本地硬盤)和安裝好的操作系統(tǒng),通過網(wǎng)卡啟動機器的環(huán)境.
PXE 是Intel在 Wired for Management (包括了PXE和WOL wake-on-lan)框架規(guī)格說明書中提出來的標準 (version 2.1) , Intel and Systemsoft 在 1999年9月20日發(fā)布了這個標準. 它用到了幾個網(wǎng)絡協(xié)議,包括IPv4,UDP,DHCP,TFTP ,還用到了這些概念 全球唯一標示(GUID), 統(tǒng)一用戶標示(UUID) 和 統(tǒng)一網(wǎng)絡接口,以及 PXE客戶端擴展的固件(通過PXE啟動的電腦設備等) 還有就是一些預定義的API.
Chain
在客戶端的固件首先嘗試通過DHCP在網(wǎng)絡中請求找到PXE重定向服務,以便接受到PXE 啟動服務器的信息.客戶端固件從PXE重定向服務中獲取到啟動服務器上的網(wǎng)絡啟動輔助程序NBP,并通過TFTP把它下載到機器的內(nèi)存中,校驗通過后最終執(zhí)行程序.如果所有的PXE客戶端都用同一個NBP,它可以通過BOOTP指定位置,就可以把DHCP給省了,不過TFTP啟動服務器還是要的.
[edit]
Availability
PXE 從設計之初就是考慮支持多種系統(tǒng)架構(gòu)的.The 2.1 version 支持包括 IA-64 and DEC Alpha.在內(nèi)的6種系統(tǒng)架構(gòu). 雖然這個標準只是在 IA-32 上達到完全覆蓋. Intel 已經(jīng)在 IA-64的 EFI 帶上PXE, 變成一個既成事實的標準.
[edit]
Protocol
PXE大體上看是 DHCP and TFTP的整合, 雖然對他們兩個做了一些小小的改動. DHCP是被用來定位啟動服務器的位置, 而 TFTP 是用來瞎子啊初始化的NBP包括一些附帶的文件.
初始化一個 PXE 啟動會話 the PXE firmware廣播一個附帶由PXE規(guī)格配置的 DHCPDISCOVER 擴展包到 67/UDP 端口(DHCP server port). PXE能夠設置辨識固件,不過它們對標準的DHCP服務器無效.
[edit]
Proxy DHCP
如果 PXE 重定向服務 (Proxy DHCP) 獲取到一個 DHCPDISCOVER擴展包, 就會應答一個 DHCPOFFER 擴展包給客戶端的 68/UDP端口 (DHCP client port).
An extended DHCPOFFER contains mainly:
? PXE發(fā)現(xiàn)控制的字段包含找到PXE 啟動設備的推薦使用的方式 multicasting, broadcasting, or unicasting
? 一個當前可用的PXE 啟動服務的IP列表
? 一個PXE 啟動菜單列出對應的PXE啟動服務器類型
? 一個PXE啟動提示告訴用戶選擇指定的啟動項
? 開始第一個啟動菜單如果選擇超時會有一個超時機制
代理DHCP 服務也可以和標準的DHCP 服務運行在同一個主機上. 當然這兩個服務不同同時使用 67/UDP端口, 代理 DHCP 是運行在4011/UDP端口上,而且會認為從PXE客戶端返回的 DHCPDISCOVER 包是一個 DHCPREQUESTs包. 標準的 DHCP 不會發(fā)一個包含有 PXE 設置的DHCPOFFER包, 所以它們之間不會沖突.
[edit]
Boot server contact
要連上 PXE Boot Server啟動的系統(tǒng)必須要有一個IP地址(可以是從DHCP 獲取).
它多次廣播 包含有PXE 特定設置的DHCPREQUEST包 (extended DHCPREQUEST) 到 4011/UDP 端口或者 67/UDP. 這個數(shù)據(jù)包包含有PXE啟動服務器的類型信息和PXE Boot Layer信息.一個daemon可以運行多種啟動服務器類型.擴展的 DHCPREQUEST 包可能是 DHCPINFORM類型的. PXE Boot Server收到一個擴展的 DHCPREQUEST 對應特定的請求類型包 DHCPACK 包含有以下的信息:
? 一個可以通過TFTP下載到 NBP的全路徑
? PXE Boot Server類型還有應答給對方的PXE Boot Layer信息
? 在組播的TFTP 配置中, 如果MTFTP 已經(jīng)在 PXE 的規(guī)格中指定就必須使用.
啟動的服務器端只接受一個DHCPOFFER包.
2.1 版的 PXE Boot Server支持”Boot Integrity Services” ([2]) 運行客戶端通過下載 NBP同級目錄的下校驗碼文件來校驗下載的 NBPs.
去獲取這個憑證文件必須支持擴展DHCPREQUEST到擴展 DHCPACK包之間的轉(zhuǎn)換.
[edit]
Network bootstrap program
當獲取到一個 DHCPACK的擴展包, the Network Bootstrap Program 就會被加載到 RAM 然后被校驗,校驗如果沒有設置就會略過,然后NBP就會被執(zhí)行. 它就會訪問 PXE固件擴展的API(Pre-boot, UDP, TFTP, Universal Network Device Interface (UNDI)). 它的一些功能和任務在PXE 規(guī)格并沒有被提及.
[edit]
Integration
The PXE Client/Server Protocol was designed so:
? 它可以被用在一個存在DHCP環(huán)境的網(wǎng)絡而不被干擾
? 它也可以被完全集成到DHCP標準服務中
? 可以非常容易的擴展組合,所有的服務(DHP, Proxy DHCP, Boot Server)都可以單獨運作,也可以整合在一起運行.
另外 PXE 固件擴展在IA-32 BIOS 被設計成一個可選的 ROM, 所以你可以讓你的PC兼容 PXE 只需要裝一個支持PXE的網(wǎng)卡. 現(xiàn)在在AMD64上一樣支持.設計的目的是利用現(xiàn)有的 DHCP and TFTP 無法嚴格的遵照規(guī)范. 在一些方面PXE協(xié)議要求DHCP/TFTP服務器做一些通訊方面的修改,其中一個特殊的例子就是使用組播, DHCP 提供組播的組信息 而不是又go額開放的rRFC-2090組播 TFTP 轉(zhuǎn)換. 盡量避免對常用 PXE 客戶端實現(xiàn)影響操作與隔離DHCP和單播TFTP服務器.
[edit]
PXE是RPL的升級品,它是Preboot Execution Environment的縮寫.它們的不同之處在于RPL是靜態(tài)路由,而PXE是動態(tài)路由.其通信協(xié)議采用TCP/IP,與Internet連接高效而可靠,PXE無盤工作站的啟動過程分析如下:
¨ 客戶端個人電腦開機后, 在 TCP/IP Bootrom 獲得控制權(quán)之前先做自我測試.
¨ Bootprom 送出 BOOTP/DHCP 要求以取得 IP.
¨ 如果服務器收到個人電腦所送出的要求, 就會送回 BOOTP/DHCP 回應,內(nèi)容包括
客戶端的 IP 地址, 預設網(wǎng)關(guān), 及開機影像文件.否則, 服務器會忽略這個要求.
¨ Bootprom 由 TFTP 通訊協(xié)議從服務器下載開機影像文件.
¨ 個人電腦通過這個開機影像文件開機, 這個開機文件可以只是單純的開機程式也可
以是操作系統(tǒng).
¨ 開機影像文件將包含 kernel loader 及壓縮過的 kernel, 此 kernel 將支持NTFS root
系統(tǒng).
¨ 遠程客戶端根據(jù)下載的文件啟動機器.
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/4719.html