http协议之HTTP Boot
2024-04-16 14:49:29 阿炯

HTTP Boot(即基于HTTP的引导)是一种网络引导协议,它使用HTTP作为文件传输协议,支持远程引导、安装和部署操作系统和应用程序。与传统的PXE(Preboot eXecution Environment)方式相比,其具有更高的灵活性、可扩展性和安全性。在UEFI在2015年的第2.5版中引入。


UEFI HTTP Chainloading

Version 2.5 of the UEFI specification introduces the UEFI HTTP Boot feature. You can use the basic UEFI HTTP Boot client to chainload iPXE from an HTTP server, eliminating the need for a separate TFTP server in your boot infrastructure.

The simple UEFI HTTP Boot client will download and boot iPXE. You can then use any of iPXE's more advanced features such as HTTPS, Digest authentication, POST requests, scripts, menus, customisable code signing etc. to download and boot your operating system.

UEFI HTTP chainloading provides a way to load iPXE on systems which do not have iPXE present as part of the UEFI firmware. If your system already provides iPXE as part of the UEFI firmware, then you do not need to use UEFI HTTP chainloading.


HTTP Boot可以通过以下步骤实现:

启动计算机后,BIOS会向DHCP服务器发送DHCP DISCOVER报文,以获取IP地址和引导服务器信息。DHCP服务器会响应DHCP OFFER报文,告知计算机引导服务器的IP地址、协议类型(HTTP或HTTPS)和引导文件的路径等信息。

计算机使用上述信息向引导服务器发起HTTP请求,下载并执行指定的引导文件(例如操作系统镜像、预启动环境等)。引导文件可以包含自定义配置和脚本,根据实际情况自动安装和配置操作系统和应用程序。需要注意的是,HTTP Boot需要保证网络稳定和安全,确保传输的文件完整性和正确性。此外,使用HTTP Boot时需要确保服务器支持HTTP和HTTPS协议,并且保护好引导文件和配置信息,以避免安全漏洞和数据泄露。

HTTP Boot 是在 UEFI 2.5 版本中引入的新特性,该版本于 2015 年发布。它可以使用 HTTP 或 HTTPS 作为文件传输协议,支持从远程服务器引导操作系统和应用程序。

相比传统的 PXE 引导方式,HTTP Boot 具有以下功能和优点:
支持使用 HTTP 或 HTTPS 作为文件传输协议,可以通过互联网或内部网络进行远程引导。
支持使用 TLS(Transport Layer Security)等安全协议保护传输的文件和数据,提高了安全性。
支持使用熟悉的 HTTP 服务器和 Web 技术来搭建引导服务器,易于配置和管理。
支持使用 XML 和 JSON 等格式的元数据来描述引导文件和配置信息,可扩展性好。
支持将多个引导文件打包成一个镜像文件,方便管理和分发。

需要注意的是,HTTP Boot 是一项较新的技术,需要操作系统和硬件厂商提供对应的驱动程序和支持。此外,在使用 HTTP Boot 时需要确保网络稳定和安全,并注意保护传输的文件和数据。


UEFI 2.6 版本对 HTTP Boot 进行了进一步的改进和扩展,增加了以下新功能:
支持使用 IPsec(Internet Protocol Security)协议保护传输的文件和数据,进一步提高了安全性。
支持在引导过程中发送 HTTP 请求(例如获取配置文件或更新引导文件),增加了灵活性。
支持对引导文件进行数字签名,防止篡改和恶意攻击。
支持使用 IPv6 进行网络引导。

HTTP Boot 传输速度并没有固定的最大值,实际速度受到多种因素的影响,包括网络带宽、距离、服务器负载、文件大小等。不同的网络环境和配置可能会导致不同的传输速度。一般来说,HTTP Boot 的传输速度可以达到几十 MB/s 或更高,远高于传统的 PXE 引导方式。同时,HTTP Boot 还支持使用压缩算法和多线程下载等技术来提高传输效率,进一步提高了速度和性能。

需要注意的是,传输速度并非 HTTP Boot 的唯一指标,使用 HTTP Boot 时还需要考虑其安全性、可靠性、易用性等方面的特点和优点。此外,在实际使用时需要进行测试和优化,根据实际情况进行调整和改进,以满足特定的需求和要求。

除了 HTTP Boot,UEFI 还支持其他网络引导协议,包括 NFS(Network File System)和 iSCSI(Internet Small Computer System Interface)等。

NFS 是一种基于网络的文件系统协议,可以实现远程挂载和使用文件系统,支持从服务器上加载操作系统和应用程序。在 UEFI 中,可以通过配置 NFS 服务器和文件路径等信息来进行网络引导。

iSCSI 是一种基于 IP 的存储协议,可以将远程存储设备映射为本地磁盘,支持从远程存储设备引导操作系统和应用程序。在 UEFI 中,可以通过配置 iSCSI 目标和 LUN(Logical Unit Number)等信息来进行网络引导。