CN101917458A - 一种向客户机发送网络引导程序的方法及装置 - Google Patents
一种向客户机发送网络引导程序的方法及装置 Download PDFInfo
- Publication number
- CN101917458A CN101917458A CN2010102234462A CN201010223446A CN101917458A CN 101917458 A CN101917458 A CN 101917458A CN 2010102234462 A CN2010102234462 A CN 2010102234462A CN 201010223446 A CN201010223446 A CN 201010223446A CN 101917458 A CN101917458 A CN 101917458A
- Authority
- CN
- China
- Prior art keywords
- nbp
- server
- acl
- client computer
- client
- 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
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种向客户机发送网络引导程序的方法及装置,应用于预置启动环境PXE下的客户机/服务器系统,所述系统还包括用于代理服务器为客户机提供网络引导程序NBP的代理设备,该方法包括:代理设备监听客户机向服务器发送的NBP下载请求报文;代理设备在确定所述NBP下载请求报文中的客户端标识、服务器标识以及NBP标识与已生成的第一访问控制列表ACL匹配时,根据该第一ACL过滤该NBP下载请求报文,并模拟所述服务器将与所述NBP标识对应的本地存储的NBP发送给客户机。采用本发明,可提高网络引导程序发送效率。
Description
技术领域
本发明涉及通信技术领域中的计算机网络技术,尤其涉及一种向客户机发送网络引导程序的方法及装置。
背景技术
PXE(Preboot Execution Environment,预置启动环境)是一种远程操作系统启动技术,工作于客户/服务器(Client/Server)的网络模式。PXE支持客户机通过TCP/IP网络从远端服务器下载启动文件,并由此支持来自网络的操作系统的启动过程,其启动过程中,客户机请求服务器分配IP地址,再通过TFTP(Trivial File Transfer Protocol,简单文件传输协议)或MTFTP(Multicast Trivial File Transfer Protocol,组播简单文件传输协议)下载一个启动软件包到本机内存中并执行,由这个启动软件包完成客户机基本软件设置,从而引导预先安装在服务器中的客户机操作系统。目前PXE可以引导Windows、Linux等多种操作系统。
与传统的操作系统启动方式相比,客户机在完成硬件初始化和自检后,并不是去寻找本地硬盘MBR(Main Boot Record,主引导区)中的启动程序和分区表,引导本地硬盘存储的操作系统,而是通过网卡和PXE协议下载远端服务器上的启动程序和操作系统,完成启动过程。通过PXE协议,能够使客户机中启动设备(如网卡)具有一致的、与硬件实现无关的网络启动功能。利用PXE协议,可以实现远程安装操作系统、紧急启动等功能,网络管理人员可以非常方便地管理几十台或上百台客户机。
PXE协议是一段软件代码,需要主板厂商自行参照PXE规范来撰写,主要提供底层用户数据包协议(User Datagram Protocol,UDP)及以太网(Ethernet)的通信能力,并提供DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)客户机及TFTP客户机能力。客户机如果集成支持PXE启动的无盘启动ROM(BootRom),就可以取得网络引导程序(NetworkBootstrap Program,NBP),后续的启动步骤将由NBP程序自动完成。
如图1所示,现有技术中支持PXE协议的网络设备基本启动过程包括:
步骤101~102、客户机通过DHCP协议向DHCP服务器申请IP地址,并利用DHCP扩展协议向DHCP/Boot服务器索取NBP程序名称;
步骤103~104、客户机通过TFTP协议将位于启动服务器上的指定NBP程序下载到客户机内存地址0:7e00H处。NBP程序通常包含引导模块、虚拟磁盘驱动和DOS系统映像。
其后,客户机通过一个跳转指令跳转到0:7c00H处,将控制权交给NBP程序,由NBP程序负责修改INT13中断,从启动服务器下载操作系统(例如Windows XP)镜像,并引导客户机启动(该步骤未在图1中示出)。
PXE启动方式不仅仅是无盘启动,其他诸如网络克隆等涉及操作系统远程安装的业务,在初始化阶段均需要设置主机从网卡启动,借助PXE协议从远端服务器下载NBP文件,以完成启动过程。
发明人在实现本发明的过程中,发现现有技术至少存在以下问题:
现有的PXE远程操作系统启动技术,客户机和服务器之间通过TFTP协议传输NBP程序,当客户机和服务器之间因为网络拥塞或者端口拥塞出现丢包时,会触发TFTP协议的停止等待机制,报文重传会影响系统的启动速率,拥塞严重时,甚至会导致系统启动失败。
发明内容
本发明提供了向客户机发送网络引导程序的方法及装置,用以提高网络引导程序发送效率。
本发明提供的向客户机发送网络引导程序的方法,应用于预置启动环境PXE下的客户机/服务器系统,所述系统还包括用于代理服务器为客户机提供网络引导程序NBP的代理设备,该方法包括:
代理设备监听客户机向服务器发送的NBP下载请求报文;
代理设备在确定所述NBP下载请求报文中的客户端标识、服务器标识以及NBP标识与已生成的第一访问控制列表ACL匹配时,根据该第一ACL过滤该NBP下载请求报文,并模拟所述服务器将与所述NBP标识对应的本地存储的NBP发送给客户机。
上述方法还包括:代理设备确定所述NBP下载请求中客户端标识、服务器标识以及NBP标识与第一ACL不匹配时,则不过滤该NBP下载请求以使该NBP下载请求传送到所述服务器。
上述方法还包括:代理设备在监听到服务器根据所述NBP下载请求报文向客户机发送的NBP下载响应报文时,若所述NBP下载响应报文中的客户端标识、服务器标识以及NBP标识与已生成的第二接ACL匹配,则根据所述第二ACL对NBP下载请求响应报文进行镜像,获取NBP下载响应报文中的NBP,并将获取到的NBP进行本地存储。
上述方法中,所述第二ACL的生成过程,包括:
所述代理设备在监听到所述服务器发送给所述客户机的携带有NBP标识的地址分配响应报文时,若未能从所述代理设备本地获取到与所述NBP标识对应的NBP,则生成所述第二ACL,所述第二ACL用于将所述服务器发送给所述客户机的携带有NBP的下载请求响应报文镜像到本地。
上述方法中,所述第一ACL的生成过程,包括:
所述代理设备在监听到所述服务器发送给所述客户机的携带有NBP标识的地址分配响应报文时,若能够从所述代理设备本地获取到与所述NBP标识对应的NBP,则生成所述第一ACL,所述第一ACL用于过滤所述客户端发送给所述服务器的NBP下载请求报文。
本发明提供的代理设备,应用于预置启动环境PXE下的客户机/服务器系统,所述代理设备包括:
监听模块,用于监听客户机向服务器发送的NBP下载请求报文;
匹配模块,与所述监听模块连接,用于根据所述监听模块监听到的NBP下载请求报文,确定所述NBP下载请求报文中的客户端标识、服务器标识以及NBP标识与已生成的第一ACL是否匹配;
代理模块,与所述匹配模块连接,用于在所述匹配模块确定为匹配时,根据该第一ACL过滤该NBP下载请求报文,并模拟所述服务器将与所述NBP标识对应的本地存储的NBP发送给客户机。
上述代理设备中,所述代理模块还用于,若所述匹配模块确定为不匹配时,不过滤该NBP下载请求以使该NBP下载请求传送到所述服务器。
上述代理设备,还包括存储模块;
所述监听模块还用于,监听服务器根据所述NBP下载请求报文向客户机发送的NBP下载响应报文;
所述匹配模块还用于,确定所述监听模块监听到的所述NBP下载响应报文中的客户端标识、服务器标识以及NBP标识与已生成的第二接ACL是否匹配;
存储模块,与所述匹配模块连接,用于在所述匹配模块确定所述NBP下载响应报文中的客户端标识、服务器标识以及NBP标识与已生成的第二接ACL匹配时,根据所述第二ACL对NBP下载请求响应报文进行镜像,获取NBP下载响应报文中的NBP,并将获取到的NBP进行本地存储。
上述代理设备,还包括第二ACL生成模块;
所述监听模块还用于,监听所述服务器发送给所述客户机的携带有NBP标识的地址分配响应报文;
所述第二ACL生成模块,与所述监听模块连接,用于在所述监听模块监听到所述地址分配响应报文时,若未能从所述代理设备本地获取到与所述NBP标识对应的NBP,则生成所述第二ACL,所述第二ACL用于将所述服务器发送给所述客户机的携带有NBP的下载请求响应报文镜像到本地。
上述代理设备,还包括第一ACL生成模块;
所述监听模块还用于,监听所述服务器发送给所述客户机的携带有NBP标识的地址分配响应报文;
所述第一ACL生成模块,与所述监听模块连接,用于在所述监听模块监听到所述地址分配响应报文时,若能够从所述代理设备本地获取到与所述NBP标识对应的NBP,则生成所述第一ACL,所述第一ACL用于过滤所述客户端发送给所述服务器的NBP下载请求报文。
本发明的有益技术效果包括:
本发明通过代理设备对客户机和服务器之间传输的报文进行监听,获取客户机所需要下载的网络引导程序标识,并通过所述代理设备获取本地存储的相应网络引导程序,模拟所述服务器将获取到的网络引导程序发送给所述客户机,与现有技术相比,代理设备可直接将客户机所需要的网络引导程序发送给客户机,从而节省了服务器资源,并提高网络引导程序传输效率。
附图说明
图1为现有技术中PXE协议的处理流程示意图;
图2为本发明实施例提供的系统架构示意图;
图3为本发明实施中Proxy服务器代理DHCP/Boot服务器向客户机发送NBP程序的流程示意图;
图4为本发明实施例中Proxy服务器通过监听DHCP/Boot服务器发送的报文,将通过该报文传输的NBP程序下载到本地进行存储的流程示意图;
图5为本发明实施例提供的基于PXE机制的客户机远程启动的流程示意图;
图6为本发明实施例提供的代理设备结构示意图。
具体实施方式
为了解决上述现有技术存在的问题,本发明实施例通过在现有采用PXE协议的客户机/服务器系统架构中添加代理设备,用代理服务器为客户机提供远程启动服务,从而节约服务器资源,还可减少服务器端口拥塞造成PXE启动失败的情况,以及提高PXE启动速率。
由于本发明实施例涉及到ACL(Access Control List,访问控制列表)技术,因此首先对ACL技术进行简单介绍。网络设备为了处理特定的数据包,需要配置一系列的匹配规则,以识别需要处理的对象。在识别出特定的对象之后,才能根据预先设定的策略允许或禁止相应的数据包通过。ACL通过一系列的匹配条件对数据包进行分类,这些条件可以是数据包的源地址、目的地址、端口号等。对于这些特定的数据包,ACL可以根据用户需要进行不同的处理策略,例如Trap(标记)、Mirror(镜像)、DSCP设置(优先级置换)、Drop(丢弃)、流量统计,流量限制等等。
下面结合附图对本发明实施例进行详细描述。
参见图2,为本发明实施例所应用的系统架构示意图。如图所示,该系统架构为采用PXE协议的客户机/服务器(Client/Server)局域网架构。该架构的服务器端包括启动服务器,如DHCP/Boot服务器,还包括代理设备(Proxy服务器),客户机可以是一个或多个。其中:
DHCP/Boot服务器,主要用于在客户机启动时为客户机动态分配通信相关的配置参数,如IP地址;DHCP/Boot服务器上存储有用于引导客户机启动的NBP程序,还可存储有客户机操作系统镜像,主要用于为客户机提供远程启动或远程安装服务;该DHCP/Boot服务器可支持TFTP/MFTP协议;
Proxy服务器,是本发明实施例中新增加的设备,主要用于代理DHCP/Boot服务器为客户机提供远程启动或远程安装服务;该Proxy服务器可支持TFTP/MFTP协议;
客户机,可以采用PXE机制进行远程启动。
上述系统架构中,Proxy服务器可设置在距离客户机较近的距离范围内,使Proxy服务器可以先于DHCP/Boot服务器接收到客户机发送的报文。
基于以上架构,图3示出了基于PXE机制,Proxy服务器代理DHCP/Boot服务器向客户机发送NBP程序的流程,该流程可包括:
步骤301、客户机开机后,从DHCP/Boot服务器获得DHCP/Boot服务器为该客户机分配的网络地址(如IP地址),并从DHCP/Boot服务器获得NBP程序信息,如NBP程序名称。其间,Proxy服务器通过监听客户机与DHCP/Boot服务器交互的报文,获取该客户机所需的NBP程序信息,还可以获取该客户机和DHCP/Boot服务器的网络地址。
该步骤中,客户机开机后发送DHCP协议报文(DHCP Discover报文),该报文的60字段携带有“PXE Client”扩展标志(Option60=PXE Client);DHCP/Boot服务器通过发送DHCP报文(如DHCP Offer报文,即用于响应地址分配请求的报文)将分配给该客户机的IP地址和该客户端所需的NBP程序信息发送给该客户机,该报文的67字段中携带有NBP程序名称(Option67=BootFile name),该报文的66字段还可携带有DHCP/Boot服务器名(Option66=TFTP Server name)。
相应的,Proxy服务器可通过监听DHCP/Boot服务器发送的DHCP报文(如DHCP Offer报文)的相关字段,获取报文中的相关信息。如,Proxy服务器通过监听服务器发送的DHCP Offer报文的67字段,获知发送给该客户机的NBP程序名称,通过监听66字段获知响应该客户机请求的DHCP/Boot服务器名。另外,Proxy服务器还可以通过监听DHCP/Boot服务器发送的DHCP Offer报文,获取报文中携带的客户机和DHCP/Boot服务器的地址信息,以便后续模拟该服务器向该客户机传输NBP程序。
步骤302、客户机获取到分配给该客户机的网络地址和NBP程序名称后,向DHCP/Boot服务器发送下载NBP程序的请求消息,该请求消息可采用TFTP协议报文发送,如TFTP RRQ报文。
步骤303、Proxy服务器监听到客户机发送的下载NBP程序的请求报文后,过滤该报文,并根据监听到的NBP名称或NBP其他标识信息,从本地保存的NBP程序中获取相应的NBP程序,然后模拟DHCP/Boot服务器向该客户机发送获取到的NBP程序。
Proxy服务器在通过监听DHCP/Boot服务器发送的报文获取到客户机和DHCP/Boot服务器的网络地址,以及获取到NBP程序名称后,并且能够从本地获取到该客户机所请求的NBP程序的情况下,根据该客户机和DHCP/Boot服务器的网络地址生成以下ACL规则:
将该客户机发送给该DHCP/Boot服务器的TFTP协议的请求报文Deny,即,将该客户机使用TFTP协议发送给该DHCP/Boot服务器的用于请求下载NBP程序的报文截获并过滤掉。
Proxy服务器可根据生成的ACL,过滤掉该客户机发送给该DHCP/Boot服务器的报文,并模拟DHCP/Boot服务器向该客户机应答TFTP Date报文,TFTP Date报文中携带有NBP程序数据,并且该报文的源地址使用DHCP/Boot服务器的地址,具体的,该TFTP Date报文的源MAC地址模拟为DHCP/Boot服务器的源MAC地址,源IP地址模拟为DHCP/Boot服务器源IP地址。
如果NBP程序文件较大,则可分片发送,即Proxy服务器可将一定字节数(如512字节)作为1个Block(数据块)进行分割并按照顺序发送,每1个TFTP Date报文包含1个数据Block和1个Block Number(数据块编号)。在这种情况下,客户机按照NBP程序文件的Block Number将接收到的NBP程序的各Block组装成NBP程序。
至此,完成了由Proxy服务器代理DHCP/Boot服务器为客户机提供NBP程序的流程。此后,客户机可根据获取到的NBP程序执行启动过程。
上述流程中,Proxy服务器在生成ACL时,可将发送给客户机的TFTP Date报文的优先级设置为较高优先级,以保证在端口拥塞的情况下,TFTP Date报文被优先转发,具体的,可通过ACL置换优先级方式设置TFTP Date报文的优先级。
上述流程中,Proxy服务器在NBP程序传输完毕后或者传输超时的时候,Proxy服务器可自动将生成的上述ACL删除,以便节省Proxy服务器资源,这是因为服务器的ACL资源是有一定限制的(即一个服务器配置多少条ACL是有一定限制的),删除上述ACL可将节省出的ACL资源用于其它控制。
需要说明的是,用于过滤客户机发送给DHCP/Boot服务器的NBP下载请求报文的ACL,也可通过人工等方式预先配置到Proxy服务器中。此种情况下,Proxy服务器可在收到客户机发送给DHCP/Boot服务器的NBP下载请求报文后,根据该报文中携带的客户机标识、DHCP/Boot服务器标识和NBP标识(如名称),确定是否有匹配的ACL,如果有,则从本地获取与该NBP标识对应的NBP程序,并根据该ACL将该报文过滤掉,模拟服务器向该客户机发送携带有NBP程序的NBP下载响应,此过程中涉及到的具体技术实现,可参考上述流程的相应部分,在此不再赘述。
上述流程中,Proxy服务器中存储的NBP程序,可以是由人工方式存入到该Proxy服务器中的,也可以是通过自学习方式从DHCP/Boot服务器获得的。
Proxy服务器在获取到客户机所需要的NBP程序名称后,如果从本地没有找到相应的NBP程序,则Proxy服务器不对客户机发送的请求下载NBP程序的报文进行过滤,该报文会发送到DHCP/Boot服务器,从而由DHCP/Boot服务器为该客户机提供NBP程序,其实现过程可采用现有机制。在DHCP/Boot服务器通过报文将NBP程序发送给客户机的过程中,Proxy服务器还可以通过监听DHCP/Boot服务器发送的报文,将通过该报文传输的NBP程序下载到本地进行存储,以便后续有客户机请求下载该NBP程序时,可代理DHCP/Boot服务器为该客户机提供该NBP程序。以上所描述的Proxy服务器从DHCP/Boot服务器获得NBP程序的方式可称为自学习方式。
图4示出了Proxy服务器通过监听DHCP/Boot服务器发送的报文,将通过该报文传输的NBP程序下载到本地进行存储的流程。该流程中,Proxy服务器监听到客户机发送的用于请求下载NBP程序的报文(如TFTP RRQ报文)后,如果在本地没有找到相应的NBP程序,则自动生成ACL镜像,并根据该ACL规则将通过TFTP协议传输的报文镜像到Proxy服务器CPU端口,由Proxy服务器将通过该报文传输的NBP程序保存在本地。
上述过程中,根据现有机制,客户机通过TFTP协议从DHCP/Boot服务器下载NBP的过程,主要分为3个阶段:
第一阶段:协商阶段
客户机使用1个临时端口TID A向DHCP/Boot服务器的UDP 69端口发送TFTP RRQ(即Opcode=1)报文,请求下载NBP程序。DHCP/Boot服务器根据Filename字段来检查本地是否存在该文件,根据Mode字段来检查客户机要求的传输模式,如果文件存在并且支持传输模式则转入第二阶段,开始发送数据;否则发送TFTP Error(即Opcode=4)报文,告之客户机错误信息ErrMsg;
第二阶段:传输阶段
DHCP/Boot服务器使用1个临时端口TID B(非UDP 69)向客户机端口A发送TFTP Date(即Opcode=2)报文,DHCP/Boot服务器将需要发送的NBP程序文件可按照512字节为1个Block(数据块)进行分割并按照顺序发送,每1个TFTP Date报文包含1个数据Block和1个Block Number。客户机在收到该报文后向DHCP/Boot服务器应答TFTP Ack(即Opcode=3)报文,其中包含收到TFTP Date报文对应的Block Number。DHCP/Boot服务器收到后发送下一个Block Number的报文,如此循环直到报文发送结束;
第三阶段:结束阶段
DHCP/Boot服务器将需要发送的文件按照512字节进行分割,所以最后1个分组的数据长度一般不足512字节(如果文件长度刚好能够被512整除,那么DHCP/Boot服务器会发送1个Block Size为0的TFTP Date报文)。因此,客户机以收到Block Size小于512字节报文作为传输终结的标识。
相应的,Proxy服务器通过监听DHCP/Boot服务器以获取NBP程序并存储于本地的过程,可包括:
步骤401、Proxy服务器在通过监听客户机和DHCP/Boot服务器之间交互的报文得知有客户机请求下载NBP程序,而该Proxy服务器未从本地获取到该NBP程序时,生成用于镜像NBP程序的ACL。
该步骤中,Proxy服务器如果通过监听DHCP/Boot服务器发送的报文获取到NBP程序名称,但该Proxy服务器从本地未获取到相应的NBP程序,则Proxy服务器可根据客户机和DHCP/Boot服务器的网络地址,如客户机的临时端口TID A、客户机IP地址(IP A)和DHCP/Boot服务器IP地址(IP B),建立用于镜像(如复制)NBP程序的ACL。
具体的,Proxy服务器自动生成以下ACL镜像规则:将源地址为DHCP/Boot服务器的地址、目标地址为客户机地址的报文镜像到该Proxy服务器指定位置,如,将源IP地址为IP B、目的IP地址为IP A、目的端口为TID A的UDP报文镜像到CPU端口,该UDP报文中携带有NBP程序数据。
步骤402、Proxy服务器监听DHCP/Boot服务器发送的报文,并根据该ACL将监听到的来自于DHCP/Boot服务器的TFTP Date报文镜像到Proxy服务器,如镜像到CPU端口,或其他指定位置(如收包缓存)。
步骤403、Proxy服务器根据报文中的Block Number顺序和Mode文件传输模式将NBP程序重新拼装,生成完整的NBP程序并保存,如保存在Proxy服务器中的指定位置(如RAM中的固定区域)。当然,如果NBP程序可通过一个报文发送完成,则Proxy服务器无需按照报文中的Block Number顺序和Mode文件传输模式将NBP程序重新拼装。
至此,Proxy服务器通过自学习方式完成了从DHCP/Boot服务器获得NBP程序的过程。
如果由于CPU端口拥塞或者其他原因导致上述流程中,NBP程序接收不完整,则Proxy服务器可继续对传输该NBP程序的报文进行监听(如其它客户机请求该NBP程序时),以及将监听到的NBP程序的数据复制到本地,从而最终形成完整的NBP程序。
Proxy服务器在完成NBP程序镜像后,可自动删除这条ACL镜像规则,以避免再次镜像该NBP程序,并且可节省ACL资源。
在NBP程序接收完整后,如果Proxy服务器通过监听报文获知有客户机请求下载该NBP程序时,可代理DHCP/Boot服务器为客户机提供NBP程序,其实现流程可如图2所示。
由于Proxy服务器存储空间是有限的,为了有效利用Proxy服务器有限的存储空间来存储NBP程序,在本发明上述各实施例的基础上,还可采用文件更新方式存储NBP程序。
具体的,Proxy服务器将通过ACL镜像复制得到的NBP程序保存在Proxy服务器的RAM空间中,在Proxy服务器重启时,RAM空间被清空,Proxy服务器需要重新进行报文监听以复制和保存NBP程序。
为了避免因镜像NBP程序给Proxy服务器的性能带来较大影响,可在Proxy服务器开始保存NBP程序的时候,启用一个定时器(可称为传输老化定时器:Transmit Aging Timer),在该定时器周期内如果没有完成NBP程序的保存,则可删除未保存成功NBP程序和配置的对应的ACL镜像规则,并将传输老化定时器置0。
为了更进一步有效利用有限的存储空间,还可在Proxy服务器RAM内的1个NBP程序保存成功后,对应该NBP程序启用一个定时器(可称为保活化定时器:Live Aging Timer),在一个保活定时器周期内,如果没有客户机向服务器请求下载该NBP程序(即Proxy服务器没有监听到有客户机请求下载该NBP程序),则Proxy服务器可自动将该NBP程序从RAM内删除;如果有客户机向服务器请求下载该NBP程序,则Proxy服务器可将保活定时器重新置0。
另外,由于RAM空间不足导致NBP程序保存失败时,新的NBP程序可等待之前保持的NBP程序的保活定时器超时并释放RAM空间后再进行保存。
上述传输老化定时器和保活化定时器可分别独立使用,也可结合使用。
由于存在多个客户机并发地进行远程引导启动的需求,而Proxy服务器的处理能力有限,当并发请求数量较大时,会对Proxy服务器的性能有较大影响。
为了解决该问题,本发明实施例采用了以下方式:
方式一:采用线程数量对并发请求进行控制
针对Proxy服务器不能无限制开启并发线程(如UDP线程,即用于执行代理DHCP/Boot服务器为客户机提供NBP程序的线程),因此,在本发明上述各实施例的基础上,考虑大量客户机同时请求NBP程序,在短时间内并发大量UDP线程的情况,在Proxy服务器运行过程中,Proxy服务器启用一个系统进程来定时监控当前是否已经达到系统允许开启的最大线程数量,如果已经达到最大线程数量,则暂时停止对客户机TFTP RRQ的重定向(即暂时停止代理DHCP/Boot服务器为客户机提供NBP程序),而允许客户机直接从DHCP/Boot服务器下载NBP程序(具体实现中,可在当前线程数量已经达到最大线程数量时,不再针对请求下载NBP程序的客户机生成用于过滤该客户机请求下载NBP程序的报文,也不会模拟DHCP/Boot服务器向该客户机发送NBP程序数据;客户机发送的请求下载NBP程序的报文将发送到DHCP/Boot服务器,并采用现有机制从DHCP/Boot服务器接收所请求的NBP程序);如果没有达到最大线程数量,则可按照图2所示的方式对客户机TFTP RRQ进行重定向,使客户机能够从Proxy服务器下载NBP程序。
方式二:采用地址段对并发请求进行控制
针对多个客户机并发地进行远程引导启动的场景,在该种避免Proxy服务器处理能力过载的解决方式是:可设置IP地址或IP地址段,对该IP地址或IP地址段的客户机提供NBP程序传输的代理服务,而对于其它IP地址客户机,则不对其下载NBP程序的请求进行deny处理(即不生成相应的ACL),从而使这些客户机能够按照现有方式从DHCP/Boot服务器下载NBP程序。
用户可以通过手动方式,将PXE启动NBP程序直接导入到Proxy服务器的FLASH(闪存)中。如果设备重启,这些程序不会丢失,这些程序也不会超时老化,除非用户手动删除,否则不会清空占用的FLASH空间。
Proxy服务器的存储空间可包含FLASH和RAM。按照PXE协议规定,NBP程序不会超过32KB,而设备空闲的存储空间一般能够达到MB级别,所以只需要在Proxy服务器空闲(未使用)的存储空间中划分固定区域来保存NBP程序即可。由于FLASH可擦写次数一般只有几千次,频繁的读写操作会减少FLASH使用寿命,所以本发明实施例优选采用如图3所示的自学习的方式将NBP程序保存在RAM空间中,而用户手工指定的NBP程序可以保存在Proxy服务器的FLASH中。
图5示出了一种本发明实施例提供的基于PXE机制的客户机远程启动的流程示意图。如图5所示,客户机开机后向DHCP/Boot服务器请求IP地址(步骤501),代理设备(如前述的Proxy服务器)通过监听DHCP/Boot服务器发送的DHCP Offer(DHCP提供)报文的67字段获取客户机所请求的NBP程序名称,并根据该NBP名称查询本地是否存储有相应的NBP程序(步骤503);
如果存储有相应的NBP程序,则进一步判断是否允许开启新的线程以执行代理DHCP/Boot服务器向客户端传输NBP程序(即判断当前的进程数是否达到最大进程数)(步骤504),如果是,则进行报文重定向,使客户机通过TFTP方式从代理设备下载得到NBP程序(步骤505);否则,允许客户机从DHCP/Boot服务器下载NBP程序(步骤506);
如果步骤503中没有从代理设备本地获取到相应的NBP程序,则判断代理设备本地是否有足够的存储空间(步骤507);如果有则通过ACL镜像DHCP/Boot服务器发送的TFTP Data报文,从该报文获取NBP程序数据并根据Block Number重新拼装NBP程序并保存在代理设备本地,并允许客户机通过TFTP方式从DHCP/Boot服务器下载NBP程序(步骤508~509);否则允许客户机通过TFTP方式直接从服务器下载NBP程序(步骤509);
客户机获得NBP程序后,将控制权交给NBP程序引导客户机启动(步骤510)。
需要说明的是,本发明的以上各实施例中,均是以客户机通过TFTP协议报文请求下载NBP程序,以及通过TFTP协议报文从代理设备或DHCP/Boot服务器接收NBP程序为例描述的,实际应用中,客户机也可通过MTFTP协议报文请求下载NBP程序,以及通过MTFTP协议报文从代理设备或DHCP/Boot服务器接收NBP程序,其处理流程与采用TFTP协议报文的方式类似,在此不再赘述。
通过以上描述可以看出,本发明的上述实施例通过代理设备对客户机和服务器之间传输的报文进行监听,使用ACL镜像将PXE启动需要的NBP程序在设备存储空间中进行备份。当客户机下一次申请相同的NBP程序时,代理设备通过重定向,将存储空间中的NBP程序直接发送给客户机,从而提高了传输效率和提高了PXE启动速率。
基于相同的技术构思,本发明实施例还提供了一种网络设备,如前述的Proxy服务器。该网络设备可应用于客户机/服务器系统,用于代理DHCP/Boot服务器为客户机提供NBP程序。
如图6所示,该网络设备可包括:监听模块601、匹配模块602、代理模块603,其中:
监听模块601,用于监听客户机向服务器发送的NBP下载请求报文;
匹配模块602,与监听模块601连接,用于根据监听模块601监听到的NBP下载请求报文,确定所述NBP下载请求报文中的客户端标识、服务器标识以及NBP标识与已生成的第一ACL是否匹配;
代理模块603,与匹配模块602连接,用于在匹配模块602确定为匹配时,根据该第一ACL过滤该NBP下载请求报文,并模拟所述服务器将与所述NBP标识对应的本地存储的NBP发送给客户机。
上述代理设备中,代理模块603还可用于,若所述匹配模块确定为不匹配时,不过滤该NBP下载请求以使该NBP下载请求传送到所述服务器。
上述代理设备,还可包括存储模块604,与匹配模块602连接。相应的,监听模块601还可监听服务器根据所述NBP下载请求报文向客户机发送的NBP下载响应报文;匹配模块602还可确定监听模块601监听到的所述NBP下载响应报文中的客户端标识、服务器标识以及NBP标识与已生成的第二接ACL是否匹配;存储模块604可在匹配模块602确定所述NBP下载响应报文中的客户端标识、服务器标识以及NBP标识与已生成的第二接ACL匹配时,根据所述第二ACL对NBP下载请求响应报文进行镜像,获取NBP下载响应报文中的NBP,并将获取到的NBP进行本地存储。
上述代理设备,还可包括第二ACL生成模块605,与监听模块601连接。相应的,监听模块601还用于监听所述服务器发送给所述客户机的携带有NBP标识的地址分配响应报文;第二ACL生成模块605可在监听模块601监听到所述地址分配响应报文时,若未能从所述代理设备本地获取到与所述NBP标识对应的NBP,则生成所述第二ACL,所述第二ACL用于将所述服务器发送给所述客户机的携带有NBP的下载请求响应报文镜像到本地。
上述代理设备,还可包括第一ACL生成模块606,与监听模块601连接。相应的,监听模块601还可监听所述服务器发送给所述客户机的携带有NBP标识的地址分配响应报文;第一ACL生成模块606可在监听模块601监听到所述地址分配响应报文时,若能够从所述代理设备本地获取到与所述NBP标识对应的NBP,则生成所述第一ACL,所述第一ACL用于过滤所述客户端发送给所述服务器的NBP下载请求报文。
需要说明的是,本发明上述实施例中代理设备(Proxy服务器)所监听的报文字段是根据现有DHCP或TFTP协议所定义的携带相应信息(如NBP程序名称)的字段规定的,本领域技术人员应该能够理解,针对其他协议报文或者后续改进的DHCP或TFTP协议报文的定义,为完成本发明实施例所监听的报文的字段也会相应改变。
综上所述,本发明实施例通过代理设备分担传输NBP程序的流量,节省了服务器的资源,在一定程度上避免由于服务器端口拥塞造成PXE启动失败的情况。由于在网络系统中设置代理设备,缩短了TFTP服务器与客户机之间的传输距离,从而提高了TFTP报文转发优先级,保证了客户机和服务器之间传输NBP程序的效率,从而提高PXE启动速率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (10)
1.一种向客户机发送网络引导程序的方法,应用于预置启动环境PXE下的客户机/服务器系统,其特征在于,所述系统还包括用于代理服务器为客户机提供网络引导程序NBP的代理设备,该方法包括:
代理设备监听客户机向服务器发送的NBP下载请求报文;
代理设备在确定所述NBP下载请求报文中的客户端标识、服务器标识以及NBP标识与已生成的第一访问控制列表ACL匹配时,根据该第一ACL过滤该NBP下载请求报文,并模拟所述服务器将与所述NBP标识对应的本地存储的NBP发送给客户机。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
代理设备所述NBP下载请求中客户端标识、服务器标识以及NBP标识与第一ACL不匹配,则不过滤该NBP下载请求以使该NBP下载请求传送到所述服务器。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
代理设备在监听到服务器根据所述NBP下载请求报文向客户机发送的NBP下载响应报文时,若所述NBP下载响应报文中的客户端标识、服务器标识以及NBP标识与已生成的第二接ACL匹配,则根据所述第二ACL对NBP下载请求响应报文进行镜像,获取NBP下载响应报文中的NBP,并将获取到的NBP进行本地存储。
4.如权利要求3所述的方法,其特征在于,所述第二ACL的生成过程,包括:
所述代理设备在监听到所述服务器发送给所述客户机的携带有NBP标识的地址分配响应报文时,若未能从所述代理设备本地获取到与所述NBP标识对应的NBP,则生成所述第二ACL,所述第二ACL用于将所述服务器发送给所述客户机的携带有NBP的下载请求响应报文镜像到本地。
5.如权利要求1所述的方法,其特征在于,所述第一ACL的生成过程,包括:
所述代理设备在监听到所述服务器发送给所述客户机的携带有NBP标识的地址分配响应报文时,若能够从所述代理设备本地获取到与所述NBP标识对应的NBP,则生成所述第一ACL,所述第一ACL用于过滤所述客户端发送给所述服务器的NBP下载请求报文。
6.一种代理设备,应用于预置启动环境PXE下的客户机/服务器系统,其特征在于,所述代理设备包括:
监听模块,用于监听客户机向服务器发送的NBP下载请求报文;
匹配模块,与所述监听模块连接,用于根据所述监听模块监听到的NBP下载请求报文,确定所述NBP下载请求报文中的客户端标识、服务器标识以及NBP标识与已生成的第一ACL是否匹配;
代理模块,与所述匹配模块连接,用于在所述匹配模块确定为匹配时,根据该第一ACL过滤该NBP下载请求报文,并模拟所述服务器将与所述NBP标识对应的本地存储的NBP发送给客户机。
7.如权利要求6所述的代理设备,其特征在于,
所述代理模块还用于,若所述匹配模块确定为不匹配时,不过滤该NBP下载请求以使该NBP下载请求传送到所述服务器。
8.如权利要求6所述的代理设备,其特征在于,还包括存储模块;
所述监听模块还用于,监听服务器根据所述NBP下载请求报文向客户机发送的NBP下载响应报文;
所述匹配模块还用于,确定所述监听模块监听到的所述NBP下载响应报文中的客户端标识、服务器标识以及NBP标识与已生成的第二接ACL是否匹配;
存储模块,与所述匹配模块连接,用于在所述匹配模块确定所述NBP下载响应报文中的客户端标识、服务器标识以及NBP标识与已生成的第二接ACL匹配时,根据所述第二ACL对NBP下载请求响应报文进行镜像,获取NBP下载响应报文中的NBP,并将获取到的NBP进行本地存储。
9.如权利要求8所述的代理设备,其特征在于,还包括第二ACL生成模块;
所述监听模块还用于,监听所述服务器发送给所述客户机的携带有NBP标识的地址分配响应报文;
所述第二ACL生成模块,与所述监听模块连接,用于在所述监听模块监听到所述地址分配响应报文时,若未能从所述代理设备本地获取到与所述NBP标识对应的NBP,则生成所述第二ACL,所述第二ACL用于将所述服务器发送给所述客户机的携带有NBP的下载请求响应报文镜像到本地。
10.如权利要求6所述的代理设备,其特征在于,还包括第一ACL生成模块;
所述监听模块还用于,监听所述服务器发送给所述客户机的携带有NBP标识的地址分配响应报文;
所述第一ACL生成模块,与所述监听模块连接,用于在所述监听模块监听到所述地址分配响应报文时,若能够从所述代理设备本地获取到与所述NBP标识对应的NBP,则生成所述第一ACL,所述第一ACL用于过滤所述客户端发送给所述服务器的NBP下载请求报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102234462A CN101917458B (zh) | 2010-07-12 | 2010-07-12 | 一种向客户机发送网络引导程序的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102234462A CN101917458B (zh) | 2010-07-12 | 2010-07-12 | 一种向客户机发送网络引导程序的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101917458A true CN101917458A (zh) | 2010-12-15 |
CN101917458B CN101917458B (zh) | 2013-12-11 |
Family
ID=43324840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102234462A Active CN101917458B (zh) | 2010-07-12 | 2010-07-12 | 一种向客户机发送网络引导程序的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101917458B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025641A (zh) * | 2010-12-27 | 2011-04-20 | 中兴通讯股份有限公司 | 一种报文过滤方法和交换设备 |
CN103631593A (zh) * | 2013-12-03 | 2014-03-12 | 上海新浩艺软件有限公司 | 一种用于苹果计算机系统的无盘引导控制方法以及系统 |
CN107800817A (zh) * | 2017-10-23 | 2018-03-13 | 山东超越数控电子有限公司 | 一种实现国产平台pxe boot的协议架构 |
CN111949568A (zh) * | 2020-07-31 | 2020-11-17 | 新华三半导体技术有限公司 | 一种报文处理方法、装置及网络芯片 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1499779A (zh) * | 2002-10-29 | 2004-05-26 | 戴尔产品有限公司 | 网络交换机配置方法和系统 |
WO2006095875A1 (ja) * | 2005-03-10 | 2006-09-14 | Nippon Telegraph And Telephone Corporation | ネットワークシステム、ストレージ装置へのアクセス制御方法、管理サーバ、ストレージ装置、ログイン制御方法、ネットワークブートシステムおよび単位記憶ユニットのアクセス方法 |
CN101188558A (zh) * | 2007-12-07 | 2008-05-28 | 杭州华三通信技术有限公司 | 访问控制方法、单元及网络设备 |
WO2009065553A2 (de) * | 2007-11-21 | 2009-05-28 | Giesecke & Devrient Gmbh | Portabler datenträger mit web-server |
-
2010
- 2010-07-12 CN CN2010102234462A patent/CN101917458B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1499779A (zh) * | 2002-10-29 | 2004-05-26 | 戴尔产品有限公司 | 网络交换机配置方法和系统 |
WO2006095875A1 (ja) * | 2005-03-10 | 2006-09-14 | Nippon Telegraph And Telephone Corporation | ネットワークシステム、ストレージ装置へのアクセス制御方法、管理サーバ、ストレージ装置、ログイン制御方法、ネットワークブートシステムおよび単位記憶ユニットのアクセス方法 |
WO2009065553A2 (de) * | 2007-11-21 | 2009-05-28 | Giesecke & Devrient Gmbh | Portabler datenträger mit web-server |
CN101188558A (zh) * | 2007-12-07 | 2008-05-28 | 杭州华三通信技术有限公司 | 访问控制方法、单元及网络设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025641A (zh) * | 2010-12-27 | 2011-04-20 | 中兴通讯股份有限公司 | 一种报文过滤方法和交换设备 |
WO2012088934A1 (zh) * | 2010-12-27 | 2012-07-05 | 中兴通讯股份有限公司 | 一种报文过滤方法和交换设备 |
CN102025641B (zh) * | 2010-12-27 | 2015-01-28 | 中兴通讯股份有限公司 | 一种报文过滤方法和交换设备 |
CN103631593A (zh) * | 2013-12-03 | 2014-03-12 | 上海新浩艺软件有限公司 | 一种用于苹果计算机系统的无盘引导控制方法以及系统 |
CN107800817A (zh) * | 2017-10-23 | 2018-03-13 | 山东超越数控电子有限公司 | 一种实现国产平台pxe boot的协议架构 |
CN111949568A (zh) * | 2020-07-31 | 2020-11-17 | 新华三半导体技术有限公司 | 一种报文处理方法、装置及网络芯片 |
CN111949568B (zh) * | 2020-07-31 | 2023-07-21 | 新华三半导体技术有限公司 | 一种报文处理方法、装置及网络芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN101917458B (zh) | 2013-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9547502B2 (en) | Rebooting InfiniBand clusters | |
CN109768871B (zh) | 配置多个虚拟网卡的方法、宿主机和存储介质 | |
WO2019100605A1 (zh) | 平台即服务paas容器平台的构建方法、服务器、系统及存储介质 | |
US10268471B2 (en) | Method for upgrading terminal system, terminal, and system | |
US8433779B2 (en) | Computer system for allocating IP address to communication apparatus in computer subsystem newly added and method for newly adding computer subsystem to computer system | |
EP3299957A1 (en) | Performing live updates to file system volumes | |
CN108089913B (zh) | 一种超融合系统的虚拟机部署方法 | |
CN101820387B (zh) | 一种易扩展的快速机群部署方法 | |
US10417014B2 (en) | System service reloading method and apparatus | |
CN105335171A (zh) | 应用程序常驻操作系统后台的方法及装置 | |
CN101778132B (zh) | 一种基于负载均衡的网络安装方法、系统及装置 | |
CN106549789B (zh) | 一种实现服务器安装的方法及系统 | |
CN112328262A (zh) | 操作系统的部署方法、系统、装置及电子设备 | |
WO2009097776A1 (zh) | 一种实现业务升级的系统、装置及方法 | |
KR20120132206A (ko) | 디바이스의 서버 연결 방법, 정보 제공 방법 및 이를 적용한 디바이스 및, 클라우딩 컴퓨팅 네트워크 시스템 및 그 동작 방법 | |
CN101917458B (zh) | 一种向客户机发送网络引导程序的方法及装置 | |
WO2013078607A1 (zh) | 一种业务包的安装方法和相关装置 | |
EP3893451A1 (en) | Network isolation method and apparatus based on user mode protocol stack | |
JP6764489B2 (ja) | ネットワーク機器のスタッキング | |
CN105827496A (zh) | 管理pe设备的方法及装置 | |
CN112667293B (zh) | 一种部署操作系统的方法、装置及存储介质 | |
CN107659621B (zh) | 一种raid控制卡配置方法及装置 | |
WO2004086223A1 (fr) | Procede de configuration automatique de monocarte | |
US20030154472A1 (en) | Installation server | |
WO2021017617A1 (zh) | 网络设备的开通方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |