Wake-On-Lan 網路開機介紹
網路開機顧 名思義就是透過 Ethernet 進行開機動作,這需要硬體與BIOS的支援,目前市面上的主機板所內建的網路卡都能支援。假設您的網路介面不是採用主機板內建晶片,而是採用傳統的網路 卡,那麼通常需要透過一條連接線(三條線)連結主機板上的Wakeup-link與網路卡。
Wake-On-Lan最早由 IBM 提出這樣的設計,隨即其他廠商也跟進了這樣的作法。原理是電腦關機時,主機板上的網路介面繼續供電,使得集線器 (Hub) 或交換器 (Switch) 持續服務網路介面,時得 Lan 能夠將網路開機的封包傳送到機器上。只要封包送的到,電腦就開的了!
Linux Wake-On-Lan
需要網路開機的電腦在關機之間必須啟動網路開機,並且設定監聽到什麼樣的封包就進行開機,當關機完成後,網路介面就會開始監聽開機封包。Linux 上所使用網路開機的套件為 ethtools 而傳送網路開機封包可以使用 etherwake 套件。以下我們使用 ubuntu 9.04 進行測試,在正常的狀態下 ethtool 是預設安裝的套件,假設沒有安裝的話也可以透過 apt-get install ethtool 進行安裝。
ethtool 與 etherwake 使用教學
查詢網路介面 Wake-On-Lan 支援與狀態,執行 ethtool eth0 顯示結果如下:
Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Advertised auto-negotiation: Yes Speed: 100Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on Supports Wake-on: pg Wake-on: d Current message level: 0x000000ff (255) Link detected: yes
Wake-on: d 表示網路開機狀態為 disabled,接著我們執行 ethtool -s eth0 wol g 開啟 eth0 的網路開機功能,再次執行 ethtool eth0 來查詢狀態。
Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Advertised auto-negotiation: Yes Speed: 100Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on Supports Wake-on: pg Wake-on: g Current message level: 0x000000ff (255) Link detected: yes
由於接下來的實驗室透過 MAC Address 進行網路開機,所以請務必記下網路介面的 MAC Address,接著使用 shutdown -h now 關閉電腦,觀察網路線的燈號應該是亮著,這時候網路介面會開始監聽網路開機封包。找另一台電腦安裝 etherwake 套件,請執行 apt-get install etherwake 進行安裝。使用指令傳送開機封包,請執行 etherwake 00:30:2D:5F:12:A1 送出開機封包。
參考資料