Wake-on-LAN 简称WOL或WoL,中文多译为“网络唤醒”、“远端唤醒”技术。WOL 是一种技术同时也是该技术的规范标准,它的功效在于让已经进入休眠状态或关机状态的电脑,透过局域网路(多半为以太网路)的另一端对其发令,使其从休眠状态唤醒、恢复成运作状态,或从关机状态转成开机状态。此外,与 WOL 相关的技术也包括远端下令关机、远端下令重新开机等相关的遥控机制。
Wake-on-LAN功能需要有主板和网卡的支持,在主板BIOS中的网卡设置中必须有“Wake On LAN”设置(开启:On),并且相应网卡也得支持该功能。因为,在关闭计算机以后,其实网卡仍然通电的,这样你就可以通过发送一段Magic Packet给网卡,让网卡将计算机唤醒。
在Magic Packet内,每次都会先有连续6个"FF"(十六进制,换算成二进制即:11111111)的资料,即:FF FF FF FF FF FF,在连续6个"FF"后则开始带出MAC地址,有时还会带出4字节或6字节的密码,一旦经由网卡侦测、解读、研判(广播)Magic Packet的内容,内容中的MAC地址、密码若与电脑自身的地址、密码吻合,就会启动唤醒、开机的程序。
试验环境还是前面的cobbler环境,在cobbler server上唤醒两台客户机,一台是ubuntu12.04,一台是centos6.3,首先在两台机器上查看网卡是否支持wol,通过ethtool命令查看,例如:
root@ubuntu12:~# ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: g
Wake-on: d
Link detected: yes
如果wake-on一行值为d,表示禁用wol,值为g,表示启用wol,可以看到网卡默认是禁用wol的,我们通过ethtool来改变:
ethtool -s eth0 wol g
注意:在每次通过wol唤醒机器后,网卡的wake-on又恢复成d。
在cobbler server(ubuntu12.04)上安装wol脚本,用来唤醒客户机。
apt-get install wakeonlan
如果宿主机是centos系统,则通过以下方法安装:
wget 'http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/wol-0.7.1-2.2.el5.rf.x86_64.rpm'
rpm -ivh wol-0.7.1-2.2.el5.rf.x86_64.rpm
该命令在ubuntu上为wakeonlan,在centos上wol,其实程序就是一个perl脚本。wol是根据网卡的MAC来确定唤醒哪台客户机,所以在试验唤醒功能前还需要记录客户机的相关MAC地址。
在cobbler server上执行以下命令,唤醒客户端(客户机之前通过IPMI的power off已经关机)
wakenlan -i 10.1.6.2 a4:ba:db:48:cd:ff
在另一个窗口通过IPMI远程抓屏则会看到服务器被唤醒,入下图:
参考:http://zh.wikipedia.org/wiki/%E7%B6%B2%E8%B7%AF%E5%96%9A%E9%86%92
来源:oschina
链接:https://my.oschina.net/u/123777/blog/115072