CN107534647A - 安全且可靠地传送启动脚本 - Google Patents
安全且可靠地传送启动脚本 Download PDFInfo
- Publication number
- CN107534647A CN107534647A CN201580079031.3A CN201580079031A CN107534647A CN 107534647 A CN107534647 A CN 107534647A CN 201580079031 A CN201580079031 A CN 201580079031A CN 107534647 A CN107534647 A CN 107534647A
- Authority
- CN
- China
- Prior art keywords
- server
- client
- network
- script
- uefi
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4416—Network booting; Remote initial program loading [RIPL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0272—Virtual private networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/328—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the presentation layer [OSI layer 6]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
- H04L61/5014—Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种用于通过网络安全且可靠地传送启动脚本的系统可以包括客户端服务器上的统一可扩展固件接口(UEFI)网络堆栈,其中在启动客户端服务器时,客户端服务器通过网络使用安全传送网络协议请求启动脚本,并通过网络接收启动脚本。一种计算设备可以包括在启动客户端服务器时通过网络请求下载启动脚本的统一可扩展固件接口(UEFI)外壳,其中启动脚本暂存在客户端服务器内提供的存储设备中,以作为本地文件系统安装在客户端服务器中。该UEFI外壳。
Description
背景技术
统一可扩展固件接口(UEFI)是定义操作系统与平台固件之间的软件接口的规范。UEFI规范可以用于要使用BIOS服务、要进行远程诊断、和要对计算设备进行修复的情况。
附图说明
附图图示了本文描述的原理的各种示例,且是说明书的一部分。示例不限制权利要求的范畴。
图1为根据本文描述的原理的一个示例的用于通过网络安全且可靠地传送启动脚本文件的系统的框图。
图2为根据本文描述的原理的一个示例的统一可扩展固件接口(UEFI)网络堆栈(200)的框图。
图3为根据本文描述的原理的另一示例的用于通过网络安全且可靠地传送启动脚本文件的系统的框图。
图4为根据本文描述的原理的一个示例、示出多个工具及具有UEFI的脚本的框图。
图5为根据本文描述的原理的一个方面、示出用于配置外壳的基础设施的多个配置参数的框图。
图6为根据本文描述的原理的一个示例、示出通过网络安全且可靠地传送启动脚本文件的方法的流程图。
贯穿附图,相同的引用编号指示相似但不必相同的元件。
具体实施方式
UEFI网络堆栈可以通过预引导执行环境(PXE)为通过网络进行的引导提供支持。UEFI网络堆栈可以包括网络接口控制器硬件驱动器、简单网络协议(SNP)驱动器、或管理网络协议(MNP)驱动器、使用互联网协议版本4(IPv4)和互联网协议版本6(IPv6)允许传输控制协议(TCP)流量及用户数据包协议(UDP)流量两者的传输控制协议/互联网协议(TCP/IP)网络堆栈。UDP流量以及动态主机配置协议(DHCP)可以用于利用预引导执行环境(PXE)引导实现简单文件传输协议(TFTP)文件传输。
利用内置网络堆栈和嵌入的外壳(shell)环境,UEFI规范成为相对较多的服务器管理环境的组件。UEFI规范包括通过预引导执行环境(PXE)来对通过网络进行引导提供支持。PXE依赖于诸如对实现PXE的计算设备上的软件组件进行引导的用户数据包协议(UDP)、动态主机配置协议(DHCP)、和简单文件传输协议(TFTP)之类的互联网协议的组合。(安全)超文本传输协议(HTTP(s))驱动器和(安全)文件传输协议(FTP(s))驱动器可以构造在实现通过TCP传送文件的UEFI堆栈上。连同域名系统(DNS)驱动器及安全传输层(TLS)驱动器,UEFI堆栈允许来自HTTP(s)服务器和FTP(s)服务器s的文件的安全网络传送。在此情况下,UDP由TCP代替,TFTP由HTTP和FTP代替。另外,使用DNS驱动器增强下载器服务器的可编址性。
然而,具有如上所述的UEFI网络堆栈的计算系统有其局限性。以上UEFI网络堆栈不允许对包括引导程序的整个IOS镜像和单个ISO镜像中的所有OS文件进行引导。另外,UEFI网络堆栈不允许将ISO镜像作为随机存取存储器(RAM)驱动安装到本地存储器,并且不允许从该本地存储器引导ISO镜像。网络管理员可以使用此能力将特定操作系统的ISO复制到ISO服务器,以用于通过网络与ISO服务器通信地连接的任意数量的计算设备之间的部署。这允许用于所有计算设备的单个引导目标。在此情况下,不进行HTTP及PXE脚本配置。相反,下载整个ISO并安装到计算设备以进行相对快速的引导过程。结果,使用管理计算设备的网络管理员可以跨网络访问任意数量的计算设备,并使用单个位置进行相对容易的部署,所有连接的计算设备可以从该位置具有上传并安装到每个计算设备的ISO的拷贝。这进一步减少了例如由网络管理员使用管理客户端操作的管理网络上的流式数据通信流。
本说明书因此描述了用于通过网络安全且可靠地传送启动脚本文件的系统,包括客户端服务器上的统一可扩展固件接口(UEFI)网络堆栈,其中在启动客户端服务器时,客户端服务器使用安全传送网络协议通过网络请求启动脚本,并通过网络接收启动脚本。
本说明书进一步描述了一种计算设备,包括在启动客户端服务器时请求下载启动脚本的统一可扩展固件接口(UEFI)外壳,其中启动脚本暂存在客户端服务器内所提供的存储设备中,以作为本地文件系统安装在客户端服务器中。
本说明书还描述了一种用于通过网络安全且可靠地传输启动脚本文件的计算机程序产品,该计算机程序产品包括计算机可读存储介质,该计算机程序产品包括在此实施的计算机可用程序代码,在由处理器执行该计算机可用程序代码时,在启动客户端服务器时使用安全传送网络协议通过网络请求客户端服务器的启动脚本,通过网络接收启动脚本并将启动脚本暂存在客户端服务器内所提供存储设备中,将启动脚本作为本地文件安装在客户端服务器的本地文件系统中。
在下面的描述中,出于解释的目的,陈述了多个具体细节以提供对本系统及方法的彻底理解。然而,对于本领域技术人员而言,无需这些具体细节就可以实现本装置、系统及方法是显而易见的。说明书中对“示例”或类似语言的引用指示所描述的纳入结合那一示例所描述的、但可以不包括在其它示例中的特定特征、结构或特性。
在本规范及所附的权利要求中,术语“多个”或类似语言意指被广义理解为包括1至无限的任意正数;0不是一个数字,而是没有数字。
图1是根据本文所描述的原理的一个示例在网络(115)上安全且可靠地传输启动脚本文件(125)的系统(100)。系统(100)可以包括在其上上传启动文件(125)的客户端设备(105)。客户端设备(105)可以是任意类型的计算设备。在一个示例中,客户端设备(105)是客户端服务器。客户端设备的其它示例包括台式计算机、膝上计算机、个人数字助理(PDA)、移动设备、智能电话、游戏设备、和平板,以及其他电子设备。
客户端设备(105)包括UEFI网络堆栈(110)。如上所述,UEFI网络堆栈可以包括通过网络(115)从服务器(120)请求启动脚本的多个固件、软件、和驱动器。图2是根据本文所描述的原理的一个示例的统一可扩展固件接口(UEFI)网络堆栈(200)。现将结合图1所示的UEFI网络堆栈(110)和客户端设备(105)来描述图2的UEFI网络堆栈(200)。
UEFI网络堆栈(200)可以包括网络接口控制器硬件驱动器(205)、简单网络协议(SNP)驱动器或管理网络协议(MNP)驱动器(210)、使用互联网协议版本4(IPv4)及互联网协议版本6(IPv6)(220)两者允许传输控制协议(TCP)流量及用户数据报协议(UDP)(225)流量的传输控制协议/互联网协议(TCP/IP)网络堆栈(215)。UDP流量以及动态主机配置协议(DHCP)(230),可以用于利用预引导执行环境(PXE)(265)引导实现简单文件传输协议(TFTP)文件传输(235)。
另外,UEFI网络堆栈(200)可以包括实现通过TCP(215)传输文件的超文本传输协议(安全)(HTTP)驱动器(240)和文件传输协议(安全)(FTP)驱动器(245)。可以添加域名系统(DNS)驱动器(250)以实现托管诸如ISO镜像之类的任意类型的启动脚本的任意数量的服务器的可编址性。这还允许将特定的URL编程到客户端设备(105),以使得在启动时,客户端设备(105)使用URL来跨网络(115)搜索并下载ISO镜像。可以在超文本传输协议(安全)(HTTP)驱动器(240)和文件传输协议(安全)(FTP)驱动器(245)的顶部构造网络引擎层(255),以经由HTTP和FTP提取文件传输并通过单个应用编程接口(API)获得文件。在网络引擎(255)顶部构造ISO/RAM盘驱动器(260),以将下载的ISO文件安装到客户端设备(105)上的存储器,并从那个存储器引导该下载的文件。在此示例中,存储器可以是任意类型的易失性存储器。在一个示例中,存储器是安装了下载的ISO文件的RAM(333),使得ISO文件好像是诸如客户端设备(105)本地的光盘驱动器之类的客户端设备(105)的本地文件系统。
UEFI网络堆栈(200)可以进一步包括网络文件系统(NFS)协议(270)。NFS(270)协议可以允许关于管理客户端设备的网络管理员通过网络访问服务器上的文件。网络管理员可以查看连接到网络的服务器上所安装的文件系统并与其交互,以及远程管理通信地连接到网络的客户端设备以进行同样的操作。
UEFI网络堆栈(200)还可以包括通用互联网文件系统(CIFS)驱动器(275)。CIFS驱动(275)可以给管理客户端以及连接到网络的多个计算机客户端提供共享的对文件、打印机、串行端口、和网络上相关联的其它通信节点的访问。
本文描述的网络(115)可以是任意类型的网络。网络(115)的示例可以包括计算网络、公共云网络、局域网(LAN)、广域网(WAN)、私有云网络、混合云网络、其它形式的网络、及其组合。
图3是根据本文描述的原理的另一示例的用于通过网络安全且可靠地传送启动脚本文件的系统(300)。系统(300)示出了如上结合图1所描述的客户端设备(305),并可以包括如结合图2所描述的UEFI网络堆栈(200)。
在操作期间,更具体地是在引导过程期间,客户端设备(305)能够使用HTTP、HTTPs、TFTP、NFS、CIFS、FTP或FTPs协议通过网络(319)下载多个文件(313,315,317)。在一个示例中,当显示在与客户端设备(305)相关联的用户显示设备上的UEFI外壳启动时,该UEFI外壳开始搜索启动脚本(317)。在此示例中,可以将优先权列表编程到BIOS中,指示该外壳为启动脚本(317)所期望的资源。诸如服务器之类的一些客户端设备(305)不包括通信地连接到设备(305)的任意媒介设备,这样就没有位于客户端设备(305)的存储器上的启动脚本(317)。在此情况下,当外壳启动时,外壳检查网络(319)以寻找启动脚本(317)。图3示出了位于HTTP服务器(321)、FTP服务器(323)、TFTP服务器、NFS服务器、或CIFS服务器中的一个上的这种外壳启动脚本(317)。此处,在启动外壳(325)时自动下载UEFI外壳启动脚本(317)。
在一个示例中,可以使用UEFI预引导用户接口(325)或可编辑脚本配置用户接口(327)中的一个对UEFI外壳(325)进行预配置,该预引导用户接口(325)或可编辑脚本配置用户接口(327)由管理客户端(309)使用诸如RESTful API、智能平台管理接口(IPMI)或网站服务管理(WS-MAN)API之类的远程管理API(337)访问。基板管理控制器(BMC)或服务处理器(335)可以暴露远程管理API(337),以使远程管理API(337)能够带外暴露给管理客户端(309)以及带内暴露给客户端设备(305)。如下面将描述的,RESTful客户端外壳命令可以由客户端设备(305)实现,以将诸如带内RESTful API之类的带内管理API(337)用于与BMC/服务处理器(335)通信,以执行系统配置。外壳的预配置可以指向存在UEFI外壳启动脚本(317)的网络位置。
在使用可编辑脚本配置用户接口(327)对UEFI进行预配置的情况下,网络管理员(307)可以使用管理客户端(309)来访问使用维护操作协议的客户端设备(305)。管理客户端(309)可以经由管理网络(311)来访问客户端设备(305)。可以使用诸如HTTPs之类的安全通信协议来完成管理客户端(309)与客户端设备(305)之间的通信。在此示例中,当管理客户端(309)使用带外RESTful API对可编辑脚本配置用户接口(327)进行访问时,可以将UEFI外壳启动脚本(317)的网络位置配置到外壳内。以此方式,网络管理员可以发送命令给客户端设备(305)以对外壳执行一次引导。
客户端设备(305)上的UEFI外壳还可以查找特定介质存储位置,以检索UEFI外壳启动脚本(317)。在此示例中,可以创建策略,以使外壳首先通过网络(319)查找客户端设备(305)中或一些其它位置上的本地介质。在将本地通用串行总线(USB)设备插入客户端设备(305)以防止UEFI外壳通过网络下载不期望的启动脚本时,或在UEFI外壳以任意给定顺序查找多个源以寻找UEFI外壳启动脚本(317)时,这可以允许网络管理员(307)决定UEFI外壳启动脚本(317)的唯一源是否跨网络位于HTTP服务器或FTP服务器(323)上。
在UEFI外壳启动脚本(317)仅位于网络(319)上的情况下,可以对UEFI外壳进行预配置以使用URL查看网络上的特定位置或针对UEFI外壳启动脚本(317)访问DHCP服务器(329)。在已对UEFI外壳进行预配置以访问DHCP服务器(329)的情况下,UEFI外壳启动脚本(317)可以发送请求以及供应商标签。在DHCP服务器(329)识别供应商标签的情况下,供应商标签可以被系统(300)用于验证授权的UEFI试图定位其UEFI外壳启动脚本(317)。作为响应,DHCP服务器(329)可以给客户端设备(305)的外壳提供UEFI外壳启动脚本(317)的URL位置,不管其位于DHCP服务器(329)上、HTTP服务器(321)上、FTP服务器(323)上还是位于诸如NFS服务器、CIFS服务器或TFTP服务器之类的一些其它位置上。DNS服务器(331)可以被DHCP服务器(329)用来解析诸如HTTP、FTP、NFS、和CIFS统一资源定位符(URLs)之类的URL的名称。在一个示例中,DNS服务器(329)可以由分布式数据库系统维护。此数据库内的节点可以是名称服务器。每个域可以具有至少一个授权DNS服务器(329),该授权DNS服务器(329)发布关于那个域以及隶属于其的任意域的名称服务器的信息。在操作期间,DHCP服务器(329)可以参考DNS服务器(331)以解析URL的名称,当客户端设备(305)请求UEFI启动脚本(317)、ISO镜像(313)、和其它工具和脚本(315)时,将涉及他们的URL交给客户端设备(305)处理。
一旦已下载UEFI外壳启动脚本(317),可以下载具有相应命令的任意数目的额外工具及脚本(315)以给外壳增加额外的功能。现在将使用图4更具体地描述这些工具及脚本(315)。图4是根据本文所描述的原理的一个示例示出具有UEFI外壳(400)的多个命令的框图。给UEFI外壳添加的多个命令可以是由客户端设备(图3,305)下载的脚本,且可以给UEFI外壳提供用作裸金属提供/部署可编辑脚本环境的各种能力。网络客户端(405)和FTP命令(410)给UEFI外壳(400)提供使用如上所述的安装有HTTP、HTTPs FTP、FTPs、TFTP和NFS/CIFS的文件系统从网络下载及上传文件的能力。
RAM盘命令(415)给UEFI外壳(400)提供提供额外的存储下载的文件及脚本的RAM盘(333)的能力。提供RAM(333)允许暂时或至少在客户端设备(图3,305)引导其操作系统之前在UEFI(400)上维护特定工具。
压缩命令(420)给UEFI(400)提供使用诸如ZIP、TAR和GZIP之类的无数压缩及压缩格式对非压缩文件进行压缩的能力。如果文件被压缩或被归档,这允许UEFI外壳启动文本(317)对他们进行解压缩,以在下载期间节省时间。
引导命令(425)给UEFI外壳(400)提供将下载的ISO镜像安装到存储器内并引导至该ISO镜像的能力。此命令(425)进一步提供传送控制及引导给任意目标而无需重启客户端设备(图3,305)的能力。这允许无需重新引导客户端设备(305)就过度至非UEFI引导操作。
将网络客户端(405)命令、FTP(410)命令、RAM盘(415)命令、压缩(420)命令、及引导(425)命令嵌入外壳以使外壳下载其他命令和脚本。
Sysconfig(430)(BIOS系统配置)、SysInfo(435)(使用系统信息的硬件清单)、FWUpdate(440)(固件更新)、IMLView(445)(集成管理日志查看)、AHS CLI(450)(下载支持信息)和RESTful客户端(455)(从外壳连接到RESTful API)给UEFI外壳(400)提供额外的功能。RESTful客户端(455)外壳命令可以由客户端设备(图3,305)实现,以使用诸如带内RESTful API之类的带内管理API(图3,337)与BMC(图3,335)通信以执行系统配置。可以将额外的工具及脚本(315)下载到UEFI外壳(400)以提供无数功能。在一个示例中,可以提供用于通过网络从通信地连接到网络的多个节点、网络上的硬件清单、和故障诊断信息采集错误及服务日志的多个维护命令。每个工具及脚本(315)可以由网络管理员(307)开发,并保存到位于HTTP服务器(321)和/或FTP服务器(323)上的工具及脚本(315)。
图5为根据本文描述的原理的一个方面示出用于对外壳的基础设施进行配置的多个配置参数(500)的框图。预引导NIC Config参数(505)允许用户决定在预操作系统部署期间使用哪张网络卡。预引导NIC Config参数(505)的使用允许网络管理者(307)选择用于预引导过程的特定NIC/端口接口,或选择将允许UEFI外壳利用网络连接自动地搜索第一可用网络端口的“Auto”选项,并将其用作选定的预引导网络接口控制器(NIC)。DHCP/静态IP参数允许用户设置关于外壳查看DHCP服务器(图3,329)还是从静态IP源查看的决定。证书参数(515)允许用户设置系统(300)中的TLS和SSL的证书。这允许用户确定是否对通信进行加密且增加用于加密的证书。外壳启动.nsh URL参数允许用户设置外壳启动的策略(针对启动脚本搜索本地然后搜索网络、仅搜索网络、仅搜索本地,搜索网络然后搜索本地等),以及确定外壳使用静态IP查找或还是发送关于启动脚本的URL的请求给DHCP服务器(图3,329)。ISO引导URL参数允许用户设置关于外壳是否使用静态IP查找或发送对ISO的请求给DHCP服务器的策略。
图6为根据本文所描述的原理的一个示例示出通过网络安全且可靠地传送启动脚本文件的方法的流程图(600)。方法(600)可以始于发送(605)给客户端设备的外壳的引导命令。引导命令可以被发送(605)给客户端设备,以防止客户端设备引导其操作系统。随着如上所述外壳回顾(610)启动脚本发现策略,方法(600)可以继续。此处,外壳可以确定1)该策略是否指示在检查本地存储设备之前先在网络中搜索启动脚本,2)该策略指示是否在检查网络之前先在本地存储器中搜索启动脚本,3)是否仅检查网络,或4)是否仅针对启动脚本检查本地存储。接着,确定(615)外壳是否从网络加载启动脚本。如果策略这样指示(615的“否”确定),则针对启动脚本检查本地存储器,并在找到启动脚本时加载(620)该启动脚本。
如果策略指示从网络加载启动脚本(615的“是”确定),则确定(625)是否已利用静态配置的位置预配置了外壳。如上所述,通过网络给用户提供UEFI预引导用户接口(325)或可编辑脚本配置用户接口(327)的预定义URL位置,该预定义URL位置指示能够在哪儿发现并下载启动脚本。如果确定未利用静态配置的位置(625的“否”确定)预配置了外壳,则发送请求以及如上所述的供应商标签给DHCP服务器(图3,329)。如果确定已利用静态配置的位置(625的“是”确定)预配置了外壳,则使用URL以从那个特定URL位置下载(635)启动脚本。
不管在何处找到启动脚本,均接着在客户端设备上执行(640)该启动脚本,且在客户端设备上提供(645)用于如上所述的启动脚本的部分或RAM。
本文参考根据本文描述的原理的示例性方法、装置(系统)、及计算机程序产品的流程图和/或框图对本系统及方法的方面进行了描述。流程图及框图中的每个框,以及流程图及框图中的框的组合可以由计算机可用程序代码来实现。可以将计算机可用程序代码提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器以产生机器,以使计算机可用程序代码经由例如客户端设备(105)或其它可编程数据处理装置的处理器执行时,实现流程图和/或框图的框中规定的功能或动作。在一个示例中,计算机可用程序代码可以嵌入计算机可读存储介质内;计算机可读存储介质为计算机程序产品的一部分。在一个示例中,计算机可读存储介质为非暂时性计算机可读介质。
本说明书及附图描述了用于通过网络安全且可靠地传输启动脚本文件的系统。该系统提供了给定客户端设备上的启动脚本的相对较短的整体部署时间。相较于使用PXE引导的45分钟的平均部署时间,使用本系统的部署时间在5分钟以下。另外,利用HTTPs/FTPs连接,可以对跨网络的客户端设备与服务器之间的通信链路进行加密,允许更好的安全性。进一步地,该系统通过使用使用TCP连接的HTTP和FTP下载,提供了可扩展性的水平。在非常大/密集的数据中心,TCP连接往往更可靠、更可扩展。TCP还提供了拥塞控制、重试、和握手。甚至更进一步地,该系统提供相对更好的网络下载性能。系统的本网络堆栈的性能改进产生4x的性能增益,结果通过1bps以太网链路下载4GB文件的时间从260秒变为65秒。
提供之前的描述以说明并描述所描述的原理的示例。此描述不旨在穷举或将这些原理限于公开的任意精确形式。可以按照以上教导进行许多更改及变化。
Claims (15)
1.一种用于通过网络安全并且可靠地传送启动脚本文件的系统,包括:
在客户端服务器上的统一可扩展固件接口(UEFI)网络堆栈;
其中在启动所述客户端服务器时,所述客户端服务器使用安全传送网络协议通过所述网络请求启动脚本,并且通过所述网络接收所述启动脚本。
2.根据权利要求1所述的系统,其中所述服务器使用安全传输层(TLS)请求启动脚本。
3.根据权利要求1所述的系统,其中,所述启动脚本暂存在所述客户端服务器内提供的存储设备中,以作为本地文件系统安装在所述客户端服务器内。
4.根据权利要求3所述的系统,其中所提供的存储设备在所述客户端服务器上的随机存取存储器(RAM)盘设备中被提供。
5.根据权利要求1所述的系统,其中所述UEFI网络堆栈包括超文本传输协议(HTTP)、安全超文本传输协议(HTTPS)、文件传输协议(FTP)、简单文件传输协议(TFTP)、安全文件传输协议(FTPS)、网络文件系统(NFS)、通用互联网文件系统(CIFS)、或其组合。
6.根据权利要求1所述的系统,其中对启动脚本的所述请求从所述客户端服务器发送到动态主机配置协议(DHCP)服务器。
7.根据权利要求6所述的系统,其中所述DHCP服务器发送回复给所述客户端服务器,所述回复指示下载所述启动脚本的统一资源定位符(URL)地址。
8.根据权利要求1所述的系统,其中所述启动脚本包括用于以压缩格式或非压缩格式下载额外的UEFI脚本的指令。
9.根据权利要求1所述的系统,其中所述客户端服务器包括UEFI外壳,并且其中所述UEFI外壳包括指示统一资源定位符(URL)的固件,所述统一资源定位符(URL)描述网络上的下载所述启动脚本的位置。
10.一种计算设备,包括:
统一可扩展固件接口(UEFI)外壳,用于在启动客户端服务器时通过网络请求下载启动脚本;
其中,所述启动脚本暂存在所述客户端服务器内所提供的存储设备中,以作为本地文件系统安装在所述客户端服务器中。
11.根据权利要求10所述的计算设备,其中所述UEFI外壳包括网络客户端及FTP客户端命令,所述网络客户端及FTP客户端命令使用超文本传输协议(HTTP)、安全超文本传输协议(HTTPs)、文件传输协议(FTP)、安全文件传输协议(FTPs)、简单文件传输协议(TFTP)、以及安装有网络文件系统(NFS)或通用互联网文件系统(CIFS)的文件系统通过所述网络下载及上传文件。
12.根据权利要求10所述的计算设备,其中所述UEFI外壳包括:
压缩命令,用于通过所述网络对未压缩的文件进行压缩;
RESTful客户端命令,用于连接到所述计算设备带内的或者HTTP或HTTPs服务器带外的RESTful应用程序接口(API),以接收并设置对计算机系统或其它组件进行配置的配置资源;
引导命令,用于将下载的ISO镜像安装到与所述计算设备相关联的存储器设备中、引导ISO、传送控制、并且引导任意目标,而不重启所述计算设备;以及
维护命令,用于通过所述网络从通信地连接到所述网络的多个节点、所述网络上的硬件清单、和故障诊断信息采集错误及服务日志。
13.根据权利要求10所述的计算设备,其中所述UEFI外壳包括将通信地连接到所述计算设备的盘驱动进行分割及格式化以在所述盘驱动上部署操作系统(OS)的分割及格式化命令。
14.一种用于通过网络安全且可靠地传送启动脚本文件的计算机程序产品,该计算机程序产品包括:
计算机可读存储介质,包括在所述计算机可读存储介质中实施的计算机可用程序代码,所述计算机可用程序代码由处理器执行时:
在启动客户端服务器时,使用安全传送网络协议通过所述网络请求所述客户端服务器的启动脚本;
通过所述网络接收所述启动脚本,并将所述启动脚本暂存在所述客户端服务器内提供的存储设备中;并且
将所述启动脚本作为本地文件安装在所述客户端服务器的本地文件系统中。
15.根据权利要求13所述的计算机程序产品,进一步包括用于将供应商标签附加于对所述启动脚本的请求的计算机可用程序代码,该供应商标签能够由动态主机配置协议(DHCP)服务器认证,所述请求被发送至所述动态主机配置协议(DHCP)服务器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2015/029453 WO2016178679A1 (en) | 2015-05-06 | 2015-05-06 | Securely and reliably transferring startup script |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107534647A true CN107534647A (zh) | 2018-01-02 |
CN107534647B CN107534647B (zh) | 2020-11-03 |
Family
ID=57218390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580079031.3A Active CN107534647B (zh) | 2015-05-06 | 2015-05-06 | 用于传送启动脚本的系统、计算设备和存储介质 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11157288B2 (zh) |
EP (1) | EP3292671B1 (zh) |
CN (1) | CN107534647B (zh) |
WO (1) | WO2016178679A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109040207A (zh) * | 2018-07-20 | 2018-12-18 | 广东浪潮大数据研究有限公司 | 一种访问用户态网络文件系统的方法、装置及设备 |
CN110825010A (zh) * | 2019-03-22 | 2020-02-21 | 深圳前海小鸟云计算有限公司 | 一种裸金属自动化控制系统及方法 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9921819B2 (en) | 2014-12-29 | 2018-03-20 | Airwatch Llc | Persistent mobile device enrollment |
US10620965B2 (en) | 2017-03-22 | 2020-04-14 | Vmware, Inc. | Internet recovery of a windows configuration |
US10445106B2 (en) | 2017-03-22 | 2019-10-15 | Vmware, Inc. | Persistent enrollment of a computing device using a BIOS |
US10635819B2 (en) * | 2017-03-22 | 2020-04-28 | Vmware, Inc. | Persistent enrollment of a computing device based on a temporary user |
US10409619B2 (en) | 2017-03-22 | 2019-09-10 | Vmware, Inc. | Persistent enrollment of a computing device using vendor autodsicovery |
US10740109B2 (en) | 2017-03-22 | 2020-08-11 | Vmware, Inc. | Configuring a computing device using managed operating system images |
US10831897B2 (en) * | 2017-07-14 | 2020-11-10 | Dell Products, L.P. | Selective enforcement of secure boot database entries in an information handling system |
US10747549B2 (en) * | 2017-07-19 | 2020-08-18 | Hewlett Packard Enterprise Development Lp | Proxy application to transfer application protocol requests over IOCTL commands |
EP3679510B1 (en) * | 2017-09-06 | 2023-06-21 | Absolute Software Corporation | Secure firmware interface |
CN107800817A (zh) * | 2017-10-23 | 2018-03-13 | 山东超越数控电子有限公司 | 一种实现国产平台pxe boot的协议架构 |
US10489142B1 (en) | 2018-02-09 | 2019-11-26 | American Megatrends International, Llc | Secure firmware integrity monitoring using rest over IPMI interface |
US10409584B1 (en) | 2018-02-09 | 2019-09-10 | American Megatrends International, Llc | Peripheral device firmware update using rest over IPMI interface firmware update module |
US10649792B1 (en) | 2018-02-09 | 2020-05-12 | American Megatrends International, Llc | Cloning of firmware configuration settings using rest over IPMI interface |
US10416988B1 (en) | 2018-02-09 | 2019-09-17 | American Megatrends International, Llc | Peripheral device firmware update using rest over IPMI interface firmware shell utility |
US10628176B1 (en) | 2018-02-09 | 2020-04-21 | American Megatrends International, Llc | Firmware configuration using REST over IPMI interface |
US10572242B1 (en) * | 2018-02-09 | 2020-02-25 | American Megatrends International, Llc | Firmware update using rest over IPMI interface |
US10776286B1 (en) | 2018-02-09 | 2020-09-15 | American Megatrends International, Llc | Rest over IPMI interface for firmware to BMC communication |
US10817378B2 (en) * | 2018-07-24 | 2020-10-27 | Dell Products, L.P. | Managing boot failures in an information handling system |
CN109783082B (zh) * | 2019-01-02 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种UEFI Http boot server的架设方法 |
CN110266540A (zh) * | 2019-06-24 | 2019-09-20 | 吉林育信科技有限公司 | 一种实现自动化安装与云计算平台配置的方法 |
CN110377284B (zh) * | 2019-07-18 | 2023-07-18 | 深圳市同泰怡信息技术有限公司 | 一种基于UEFI Shell图形界面操作文件的方法和装置以及设备 |
CA3114521A1 (en) * | 2020-03-04 | 2021-09-04 | Citrix Systems, Inc. | Provisioning services (pvs) cloud streaming with read cache |
US20220197667A1 (en) * | 2020-12-22 | 2022-06-23 | American Megatrends International, Llc | Automatic installation method and system |
US11995450B2 (en) | 2022-07-15 | 2024-05-28 | Hewlett Packard Enterprise Development Lp | Cloud-based provisioning of UEFI-enabled systems |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080046548A1 (en) * | 2006-08-18 | 2008-02-21 | Doran Mark S | Network booting using a platform management coprocessor |
US20090172381A1 (en) * | 2007-12-31 | 2009-07-02 | Zimmer Vincent J | Enhanced network and local boot of unified extensible firmware interface images |
CN102316073A (zh) * | 2010-06-30 | 2012-01-11 | 鸿富锦精密工业(深圳)有限公司 | 服务器及利用该服务器实现uefi bios远程升级的方法 |
CN103164244A (zh) * | 2013-03-15 | 2013-06-19 | 南京工业大学 | 一种基于通用可扩展固件接口的固件系统远程更新方法 |
US20140297999A1 (en) * | 2013-03-27 | 2014-10-02 | Samsung Electronics Co., Ltd. | Computer system and method for controlling acpi information |
US20150019851A1 (en) * | 2013-07-12 | 2015-01-15 | International Business Machines Corporation | State dependent optimization for sequential booting of heterogeneous systems |
CN104572169A (zh) * | 2014-09-10 | 2015-04-29 | 中电科技(北京)有限公司 | 一种基于uefi的软件分发和安装系统 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030097553A1 (en) * | 2001-09-29 | 2003-05-22 | Frye James F. | PXE server appliance |
US7085921B2 (en) * | 2001-12-31 | 2006-08-01 | Hewlett-Packard Development Company, L.P. | Embedded OS PXE server |
US7159106B2 (en) * | 2003-04-03 | 2007-01-02 | Dell Products L.P. | Information handling system manufacture method and system |
US7574593B2 (en) * | 2004-12-03 | 2009-08-11 | Hewlett-Packard Development Company, L.P. | Persistent memory manipulation using EFI |
US7293168B2 (en) * | 2004-12-15 | 2007-11-06 | Hewlett-Packard Development Company, L.P. | System and method for initially configuring and booting a device using a device identifier |
US7475189B2 (en) * | 2005-03-04 | 2009-01-06 | Microsoft Corporation | Advanced hardware and software encapsulation of RAID solutions to facilitate data protection |
US7669021B2 (en) * | 2006-02-21 | 2010-02-23 | Microsoft Corporation | File system based offline disk management |
US7546450B2 (en) * | 2006-03-07 | 2009-06-09 | Sun Microsystems, Inc. | Method and apparatus for operating system deployment |
US7984286B2 (en) | 2008-06-25 | 2011-07-19 | Intel Corporation | Apparatus and method for secure boot environment |
US8321655B2 (en) | 2009-06-13 | 2012-11-27 | Phoenix Technologies Ltd. | Execution parallelism in extensible firmware interface compliant systems |
US8806231B2 (en) * | 2009-12-22 | 2014-08-12 | Intel Corporation | Operating system independent network event handling |
US8473588B2 (en) * | 2010-03-30 | 2013-06-25 | Lenovo (Singapore) Ptd. Ltd. | Local and remote client computer system booting |
US8438564B2 (en) * | 2010-03-30 | 2013-05-07 | Lenovo (Singapore) Pte. Ltd. | Systems and methods for minimizing client computer system set-up time |
US8719389B2 (en) * | 2010-10-29 | 2014-05-06 | Dell Products L.P. | System and method for an access controller assisted boot |
US8751782B2 (en) * | 2010-12-16 | 2014-06-10 | Intel Corporation | Secure local boot using third party data store (3PDS) based ISO image |
US9081747B1 (en) * | 2012-03-06 | 2015-07-14 | Big Bang Llc | Computer program deployment to one or more target devices |
US9292312B2 (en) * | 2012-03-22 | 2016-03-22 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Simulated network boot environment for bootstrap redirection |
US9385918B2 (en) * | 2012-04-30 | 2016-07-05 | Cisco Technology, Inc. | System and method for secure provisioning of virtualized images in a network environment |
US9170834B2 (en) * | 2012-10-31 | 2015-10-27 | Google Inc. | Metadata-based virtual machine configuration |
US9286047B1 (en) * | 2013-02-13 | 2016-03-15 | Cisco Technology, Inc. | Deployment and upgrade of network devices in a network environment |
US9594567B2 (en) * | 2013-02-21 | 2017-03-14 | Dell Products, Lp | Configuring a trusted platform module |
US10205750B2 (en) * | 2013-03-13 | 2019-02-12 | Intel Corporation | Policy-based secure web boot |
US9477848B2 (en) | 2013-03-15 | 2016-10-25 | Insyde Software Corp. | System and method for managing and diagnosing a computing device equipped with unified extensible firmware interface (UEFI)-compliant firmware |
US9141373B2 (en) * | 2013-07-31 | 2015-09-22 | Arista Networks, Inc. | System and method for accelerated software upgrades |
US9766944B2 (en) * | 2014-03-25 | 2017-09-19 | Microsoft Technology Licensing, Llc | Dynamic partition dual boot mobile phone device |
US9678762B2 (en) * | 2015-01-21 | 2017-06-13 | Cisco Technology, Inc. | Dynamic, automated monitoring and controlling of boot operations in computers |
-
2015
- 2015-05-06 EP EP15891366.5A patent/EP3292671B1/en active Active
- 2015-05-06 CN CN201580079031.3A patent/CN107534647B/zh active Active
- 2015-05-06 US US15/568,410 patent/US11157288B2/en active Active
- 2015-05-06 WO PCT/US2015/029453 patent/WO2016178679A1/en active Application Filing
-
2021
- 2021-09-22 US US17/482,116 patent/US11922177B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080046548A1 (en) * | 2006-08-18 | 2008-02-21 | Doran Mark S | Network booting using a platform management coprocessor |
US20090172381A1 (en) * | 2007-12-31 | 2009-07-02 | Zimmer Vincent J | Enhanced network and local boot of unified extensible firmware interface images |
CN102316073A (zh) * | 2010-06-30 | 2012-01-11 | 鸿富锦精密工业(深圳)有限公司 | 服务器及利用该服务器实现uefi bios远程升级的方法 |
CN103164244A (zh) * | 2013-03-15 | 2013-06-19 | 南京工业大学 | 一种基于通用可扩展固件接口的固件系统远程更新方法 |
US20140297999A1 (en) * | 2013-03-27 | 2014-10-02 | Samsung Electronics Co., Ltd. | Computer system and method for controlling acpi information |
US20150019851A1 (en) * | 2013-07-12 | 2015-01-15 | International Business Machines Corporation | State dependent optimization for sequential booting of heterogeneous systems |
CN104572169A (zh) * | 2014-09-10 | 2015-04-29 | 中电科技(北京)有限公司 | 一种基于uefi的软件分发和安装系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109040207A (zh) * | 2018-07-20 | 2018-12-18 | 广东浪潮大数据研究有限公司 | 一种访问用户态网络文件系统的方法、装置及设备 |
CN109040207B (zh) * | 2018-07-20 | 2021-06-29 | 广东浪潮大数据研究有限公司 | 一种访问用户态网络文件系统的方法、装置及设备 |
CN110825010A (zh) * | 2019-03-22 | 2020-02-21 | 深圳前海小鸟云计算有限公司 | 一种裸金属自动化控制系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
US11922177B2 (en) | 2024-03-05 |
CN107534647B (zh) | 2020-11-03 |
EP3292671A1 (en) | 2018-03-14 |
EP3292671B1 (en) | 2022-10-12 |
US11157288B2 (en) | 2021-10-26 |
EP3292671A4 (en) | 2018-03-14 |
US20180136946A1 (en) | 2018-05-17 |
US20220004395A1 (en) | 2022-01-06 |
WO2016178679A1 (en) | 2016-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107534647A (zh) | 安全且可靠地传送启动脚本 | |
US10212563B2 (en) | Updating web resources | |
US10938855B1 (en) | Systems and methods for automatically and securely provisioning remote computer network infrastructure | |
US11240315B2 (en) | Systems and methods for remote management of appliances | |
CN106911729A (zh) | 一种适用于国产处理器的操作系统远程安装方法 | |
CN108958742A (zh) | 一种批量安装操作系统的方法、相关设备及系统 | |
CN107947954B (zh) | 动态调整日志级别的系统、方法及服务器 | |
TW201312467A (zh) | 分配式應用程式堆疊與部署方法及系統 | |
US11113045B2 (en) | Image install of a network appliance | |
US8843915B2 (en) | Signature-based update management | |
US9928082B1 (en) | Methods and systems for remote device configuration | |
US9853925B2 (en) | Automatic transformation of messages between service versions | |
US9760528B1 (en) | Methods and systems for creating a network | |
CN112929411A (zh) | 一种分布式文件传输方法、服务器及私有云设备 | |
CN106547602B (zh) | 一种适用于iSCSI协议远程无线加载的操作系统镜像的制作方法 | |
Manases et al. | Automation of Network Traffic Monitoring using Docker images of Snort3, Grafana and a custom API | |
US11995450B2 (en) | Cloud-based provisioning of UEFI-enabled systems | |
US7627746B1 (en) | Network appliance management | |
KR20120066395A (ko) | 네트워크 서비스 지원 시스템 및 그 방법 | |
US11233813B2 (en) | Discovering and provisioning computing devices in a security enhanced environment | |
Bruno et al. | Grendel: Bare metal provisioning system for high performance computing | |
US20080235502A1 (en) | Using a live operating system to set up and configure an active management technology device | |
US20190056960A1 (en) | Online desktop operating system | |
CN116737182A (zh) | 一种操作系统自动部署方法、系统、装置及可读存储介质 | |
Subramanian et al. | Deployment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |