HACK#45 远程管理机器的电源

本节介绍使用WOL和IPMI远程管理机器电源的方法。

从远程接通或断开电源的方法有使用NIC(Network Interface Card)功能的WOL和IPMI(BMC)的方法。本节将介绍这些方法。

Wake On LAN

Wake On LAN(WOL)是指经由网络发送称为魔术包(magic packet)的特殊数据包,从网络设备接通系统电源的功能。

设置WOL

在使用WOL接入电源的机器上需要事先进行设置。首先,要在BIOS的设置中启用WOL(也称为Remote Power)的功能。

本节中使用的DELL机器是在BIOS设置界面上选择“Power Management”→“Remote Wake Up”,设置为On。

然后,在操作系统启动后,使用ethtool命令进行网络设备的设置。下面是英特尔82571EB千兆位以太网控制器的例子。


ethtool eth4

Settings for eth4:

……

Transceiver:internal

Auto-negotiation:on

Supports Wake-on:pumbag……①

Wake-on:d……②

Current message level:0x00000001

Link detected:yes

#


①的Supports Wake-On显示的是这个网络设备所支持的魔术包的种类。每个拉丁字母为显示种类。详细内容可以使用man命令来确认。


p Wake on phy activity

u Wake on unicast messages

m Wake on multicast messages

b Wake on broadcast messages

a Wake on ARP

g Wake on MagicPacket(tm)

s Enable SecureOn(tm)password for MagicPacket(tm)

d Disable(wake on nothing).


②的Wake-on:显示的是WOL的设置情况。在这个例子中为d,因此是关闭的。如果要启用WOL,可以使用ethtool的-s选项来设置。下面是启用MagicPacket的例子。


ethtool-s eth4 wol g

ethtool eth4|grep Wake-on

Supports Wake-on:pumbag

Wake-on:g


启用多个时需要执行下列命令。


ethtool-s eth4 wol pumbag

ethtool eth4|grep Wake-on

Supports Wake-on:pumbag

Wake-on:pumbag


这样就进行了WOL的设置,即使切断一次电源也可以从远程重新接通电源。使用ethtool命令启用了WOL的NIC,在切断电源后,如果连接上LAN电缆,LED也会闪光。

发送魔术包

在远程机器上发送称为魔术包的数据包作为接通电源的命令。

本Hack中使用的是net-tools工具包中的ether-wake命令。按照下列方式指定MAC地址,执行ether-wake命令,就可以发送魔术包。


/sbin/ether-wake 00:10:60:60:60:01


设置密码

为保证安全,也可以设置密码。使用ethtool启用SecureOn。


ethtool-s eth4 wol s


接下来设置密码。密码与MAC地址相似,设置以“:”分隔的4~6字节的字符串。下面是设置6字节密码的例子。


echtool-s eth4 sopass xx:yy:zz:aa:bb:cc


在远程方按照下列方式指定密码,执行ether-wake命令。


ether-wake-p xx:yy:zz:aa:bb:cc 00:10:60:60:60:01