背景技术
网络唤醒Wake-on-lan(WOL)是一种网络标准,其功能在于通过局域网路(如以太网路)一端的控制主机,对局域网路的另一端已经进入休眠状态或关机状态的被测主机发送命令,使其从休眠状态中被唤醒以恢复成运作状态,或从关机状态转成开机状态。目前在验证系统的网络唤醒功能的时候,一般使用的方法是将被测试主机和控制主机互相连接,建立一个测试环境。在进行测试前,都必须将被测试主机的网卡的物理地址(Medium Access Control Address,MAC address)记录下来,然后让被测试主机进入休眠或者关机状态,再在控制主机上面通过安装网络唤醒工具,并向所记录下来的物理地址的网卡发送魔法封包(magic packet)进行唤醒。
被测主机处在关机或休眠状态时,其内部的网卡及主板部分仍保有微弱的供电,此微弱供电能让网卡保有最低的运作能力,使网卡能侦测来自被测主机外部的网络广播,并对该网络广播进行侦测与解读,一旦发现该网络广播中有魔法封包,就会对该魔法封包的内容进行判断以解析出该魔法封包中包含哪个网卡的物理地址,然后就会通知该网卡所对应的被测主机的主板、电源供应器进行开机及正常运作。
在网络唤醒工具向被测试主机发送魔法封包后,测试人员就必须人工查看被测试主机是否被真正的被唤醒。对于有多个网卡的被测试主机而言,需要测试人员多次的在控制主机和被测试主机间来回查看系统的测试状况。这种在控制主机端运行命令,然后再去查看被测主机的测试状态,需要测试人员来回走动查看的方式,在进行大批量的验证测试时,将会花费大量的时间和人力来做重复的工作,导致的结果显然是工作效率明显低下。发明内容
鉴于以上内容,有必要提供一种网络唤醒控制系统及方法,其可以能自动测试多个被测主机的网卡的网络唤醒功能,节省了大量的人力和成本,提高了工作效率。
一种网络唤醒控制系统,该系统包括:初始化模块,用于将多个被测主机的每个网卡二及BMC中的网卡三连接到控制主机的网卡一所在的网段中,并初始化被测主机的BMC及被测主机的开机启动,所述网卡一与交换机相通信连接,交换机同时与每个被测主机的每个网卡二及每个被测主机的BMC相通信连接;获取模块,用于通过被测主机的BMC获取被测主机的每个网卡二的物理地址;控制模块,用于通过所述BMC向该BMC所在的被测主机发送关机命令使所述被测主机关机;所述控制模块,还用于当所述被测主机关机成功时,根据所获取的每个网卡二的物理地址,通过所述BMC依次向所述被测主机的每个网卡二发送魔法封包以唤醒所述被测主机。
一种网络唤醒控制方法,该方法包括:初始化步骤,将被测主机的每个网卡二及BMC中的网卡三连接到控制主机的网卡一所在的网段中,并初始化被测主机的BMC及被测主机的开机启动,所述网卡一与交换机相通信连接,交换机同时与每个被测主机的每个网卡二及每个被测主机的BMC相通信连接;获取步骤,通过被测主机的BMC获取被测主机的每个网卡二的物理地址;控制步骤一,通过所述BMC向该BMC所在的被测主机发送关机命令使所述被测主机关机;控制步骤二,当所述被测主机关机成功时,根据所获取的每个网卡二的物理地址,通过所述BMC向一个网卡二发送魔法封包以唤醒所述被测主机;判断步骤,判断所述被测主机的所有网卡二是否都被测试过网络唤醒功能,当所述被测主机中还有网卡二没有被测试过网络唤醒功能时,返回执行所述控制步骤一。
相较于现有技术,所述网络唤醒控制系统及方法,其能通过控制主机能同时自动测试多个被测主机的每个网卡二,并自动记录测试结果,节省了大量的人力和成本,提高了工作效率。
具体实施方式
如图1所示,是本发明网络唤醒控制系统的应用环境示意图。在本实施例中,该网络唤醒控制系统13运行于一个控制主机1中,来同时控制通过交换机(Switch)2与控制主机1相通信的多个被测主机3的网络唤醒Wake-on-lan(WOL)功能。所述控制主机1还包括存储设备11、处理设备12及网卡一14,所述控制主机1还包括通过信号线和数据线相连的输入设备15及显示设备16。可以理解,所述控制主机1还应该进一步包括其他必要的元件,如电池等。每个被测主机3中包括一个BMC31及至少一个网卡二32。所述BMC31至少还包括一个网卡三310。每个网卡二32对应一个物理地址(Medium Access Control Address,MAC address),该物理地址用于标识网卡二32。
所述网卡一14与交换机2相通信连接,交换机2同时与每个被测主机3的每个网卡二32及每个被测主机3的BMC31相通信连接,这样控制主机1的网卡一14就可以同时与每个被测主机3的每个网卡二32及每个被测主机3的BMC31相通信连接。在本实施例中,所述网卡一14与每个被测主机3的每个网卡二32及BMC31中的网卡三310都处于同一网段中。
如图2所示,是网络唤醒控制系统的较佳实施例的模块图。在本实施例中,所述网络唤醒控制系统13包括初始化模块130、获取模块131、控制模块132、判断模块133及记录模块134。本发明所称的模块是指一种能够被处理器23所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储设备11中。在本实施例中,关于各模块的功能将在图3的流程图中具体描述。
如图3所示,是本发明网络唤醒控制方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
步骤S10,初始化模块130将多个被测主机3的每个网卡二32及BMC31中的网卡三310连接到控制主机1的网卡一14所在的网段中,并初始化被测主机3的BMC31及被测主机3的开机启动。
控制主机1上有动态主机配置协议(Dynamic Host ConfigurationProtocol,DHCP)功能,该动态主机配置协议是一个局域网的网络协议。初始化模块130通过该动态主机配置协议给被测主机3的每个网卡二32及被测主机3的BMC31中的网卡三310分别自动分配一个IP地址,这样控制主机1的网卡一14与被测主机3的每个网卡二32及被测主机3的BMC31中的网卡三310就都处于同一网段(局域网)中。
在本实施例中,初始化模块130在初始化被测主机3的BMC31的开机启动后,获取所述BMC31的网卡三310的IP地址,利用该IP地址,通过web方式,但不限于web方式登录到该IP地址对应的所述BMC31的控制界面上。每个BMC31对应一个控制界面,通过该控制界面可以看到该BMC31所在的被测主机3的电源状态。因此,初始化模块130通过该BMC31的控制界面控制所述被测主机3开机,待所述被测主机3开机后,后续就能进入被测主机3的操作系统中来获取被测主机3的每个网卡二32的物理地址。
步骤S11,获取模块131通过被测主机3的BMC31获取该被测主机3的每个网卡二32的物理地址。
步骤S12,控制模块132通过被测主机3的BMC31向该BMC31所在的被测主机3发送关机命令使所述被测主机3关机。
步骤S13,判断模块133判断所述被测主机3是否关机成功。
在本实施例中,判断模块133通过所述BMC31的控制界面上所述被测主机3的电源状态来判断所述被测主机3是否关机成功。当所述BMC31的控制界面上所述被测主机3的电源状态为关机状态时,则所述被测主机3关机成功,执行步骤S14;当所述BMC31的控制界面上所述被测主机3的电源状态为开机状态时,则所述被测主机3关机不成功,即后续无法测试该被测主机3的各个网卡二32的网络唤醒功能,该流程结束。
步骤S14,控制模块132根据所获取的被测主机3的每个网卡二32的物理地址,通过所述BMC31向被测主机3中的当前被测网卡二发送魔法封包(magic packet)。
在本较佳实施例中,控制模块132是依次向所述被测主机3的每个网卡二32发送魔法封包(magic packet)以唤醒所述被测主机3。具体是,控制模块132每被执行一次,就会向一个网卡二32发送魔法封包。例如,所述被测主机3中共有A,B,C三个网卡,第一次先测试A,控制模块132先向A发送魔法封包,待A通过后续的步骤S15至步骤S20,测试完毕后;下一次执行控制模块132时,控制模块132再向B发送魔法封包,依次类推。
步骤S15,判断模块133判断通过当前被测网卡二32是否唤醒所述被测主机3。
在本实施例中,判断模块133通过所述BMC31的控制界面上所述被测主机3的电源状态来判断所述被测主机3是否被所述当前被测网卡二32唤醒。当所述BMC31的控制界面上所述被测主机3的电源状态为开机状态时,则表示通过所述当前被测网卡二32唤醒了所述被测主机3,执行步骤S20;当所述BMC31的控制界面上所述被测主机3的电源状态为关机状态时,则表示通过所述当前被测网卡二32没有唤醒所述被测主机3,执行步骤S16。
步骤S16,判断模块133判断所述当前被测网卡二32被测试唤醒所述被测主机3的次数是否达到预设次数。
当所述当前被测网卡二32唤醒所述被测主机3的次数小于预设次数时,执行步骤S17,控制模块132通过所述BMC31向当前被测网卡二32发送魔法封包(magic packet)以唤醒所述被测主机3,然后返回步骤S15;当所述当前被测网卡二32唤醒所述被测主机3的次数达到预设次数时,执行步骤S18。
步骤S18,记录模块134记录所述当前被测网卡二32的物理地址以便于测试人员检测所述当前被测网卡二32。
步骤S19,控制模块132通过所述BMC31向所述被测主机3发送开机命令使所述被测主机3开机以便于后续测试所述被测主机3的其他的网卡二32的网络唤醒功能。
步骤S20,判断模块133判断所述被测主机3的所有网卡二32是否都被测试过网络唤醒功能。
在本实施例中,记录模块134也会记录能唤醒所述被测主机3的网卡二32的物理地址,在步骤S18中记录模块134记录了不能唤醒所述被测主机3的网卡二32的物理地址,因此,判断模块133根据记录模块134所记录的物理地址就能判断所述被测主机3的所有网卡二32是否都被测试过网络唤醒功能。当所述被测主机3的所有网卡二32都被测试过网络唤醒功能时,该流程结束。当所述被测主机3中还有网卡二32没有测试过网络唤醒功能时,将下一个网卡二当做当前被测网卡二,返回步骤S12,直至该被测主机3的所有网卡二32都被测试过。
通过本发明网络唤醒控制系统及方法,能通过控制主机1能同时自动测试多个被测主机3的每个网卡二32,并自动记录测试结果,节省了大量的人力和成本,提高了工作效率。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。