Wake-on-LAN(WoL)[ a ]は、イーサネットまたはトークンリングのコンピュータネットワーク規格であり、ネットワークメッセージによってコンピュータの電源を入れたり、スリープモードから復帰させたりすることができます。メッセージは通常、同じローカルエリアネットワーク(LAN)に接続されたデバイス上で実行されるプログラムによって対象のコンピュータに送信されます。サブネット向けブロードキャストやWoLゲートウェイサービスを使用して、別のネットワークからメッセージを開始することもできます。Wake-on-LANは、1995年に規格として提案され、AMDとHewlett-Packardが共同開発したAMDのMagic Packet Technologyに基づいています。この規格はその後、 IBM、Intelなど によって急速に採用されました。
起動するコンピュータがWi-Fi経由で通信している場合は、 Wake on Wireless LAN(WoWLAN)と呼ばれる補助規格を使用する必要があります。 [ 1 ] WoLおよびWoWLAN規格は、プロトコル透過的なオンデマンドサービスを提供するためにベンダーによって補足されることが多く、例えばApple Bonjourのウェイクオンデマンド(スリーププロキシ)機能などが挙げられます。[ 2 ]
今日のWake-on-LAN業界標準メカニズムの基礎は、1994年頃にAMDがHewlett-Packardと協力して作成しました。Hewlett-PackardはAMDのMagic Packet Technologyを共同開発し、1995年11月にAMDのホワイトペーパーで次の提案を発表しました。[ 3 ]これにより、リモートネットワークデバイスを、受信側のEthernetコントローラによって検出された特定のデータパターンを含む標準のEthernetフレームを送信することで、基礎となる「電源管理回路」を介して起動できるようになりました。
AMDは以前、 AMD PCnet IIファミリーのイーサネットコントローラにWoLメカニズムを実装していました。 「Magic Packet」という用語はAMDの商標です。[ 3 ]
Wake-on-LANは、1996年10月にIBMがIntelとAdvanced Manageability Alliance(AMA)を結成したことをきっかけに、広く普及しました。1997年4月、このアライアンスはWake-on-LAN技術を採用しました。[ 4 ] [ 5 ]
ほとんどのネットワーク プロトコルとは異なり、Wake-on-LAN については正式なRFC (Request for Comments)ドキュメントは作成されていませんが、それでも業界で広く使用されている標準となっています。
家庭や職場のネットワーク、無線データ ネットワーク、インターネット自体などのEthernet接続は、コンピュータ間で送信されるフレームに基づいています。WoL は、マジック パケットと呼ばれる特別に設計されたフレームを使用して実装されます。マジック パケットは通常、ネットワーク内のすべてのコンピュータに送信されますが、その中には、ウェイクアップするコンピュータも含まれます。マジック パケットには、送信先コンピュータのMAC アドレスが含まれています。これは、各ネットワーク インターフェイス コントローラ(NIC)に組み込まれている識別番号であり、これにより、ネットワーク上で NIC が一意に認識され、アドレス指定されます。Wake-on-LAN 対応のコンピュータでは、システムの他の部分の電源がオフになっている場合でも、NIC が着信パケットをリッスンします。マジック パケットが到着し、そのアドレスがデバイスの MAC アドレス宛てである場合、NIC はコンピュータの電源装置またはマザーボードにウェイクアップの信号を送ります。これは、電源ボタンを押したのと同じ効果があります。
マジックパケットは、データリンク層を通じて、ネットワークブロードキャストアドレスを使用して、特定のネットワークに接続されたすべてのデバイスにブロードキャストされます。IPアドレス(インターネット層に関連)は使用されません。Wake-on-LANはブロードキャストメッセージングに基づいて構築されているため、通常はサブネット内でのみ使用できます。ただし、適切な構成とハードウェアがあれば、Wake-on-LANは実際にはあらゆるネットワークで動作可能であり、インターネット経由のリモートウェイクアップも可能です。
Wake-on-LAN が機能するには、ネットワークインターフェースの一部がオンの状態を維持する必要があります。これにより、少量のスタンバイ電力が消費されます。消費電力をさらに削減するために、通常はリンク速度を可能な限り低く抑えます(例えば、ギガビットイーサネット NIC は 10 Mbit/s のリンクしか維持しません)。Wake-on-LAN を不要な場合に無効にすると、電源コンセントに接続されたまま電源がオフになっているコンピューターの消費電力をわずかに削減できます。[ 6 ]ノートパソコンなどのバッテリー駆動型デバイスでは、デバイスが完全にシャットダウンされている場合でもバッテリーが消耗する可能性があるため、電力消費が問題となります。
マジックパケットは、ブロードキャストとして送信されることが最も多いフレームで、そのペイロード内に全 255 バイト (16進数で FF FF FF FF FF FF) のうちの6バイトが含まれ、その後にターゲット コンピュータの 48 ビット MAC アドレスが 16 回繰り返され、合計 102 バイトになります。
マジックパケットは上記の文字列がスキャンされるだけで、完全なプロトコルスタックによって実際に解析されるわけではないので、ネットワーク層およびトランスポート層プロトコルのペイロードとして送信できますが、通常はUDPデータグラムとしてポート0(予約済みポート番号)、[ 7 ] 7(エコープロトコル)または9(破棄プロトコル)、[ 8 ]またはEtherType 0x0842を使用してイーサネット経由で直接送信されます。 [ 9 ] TCPなどの接続指向のトランスポート層プロトコルは、ユーザーデータを送信する前にアクティブな接続を確立する必要があるため、このタスクには適していません。
標準のマジック パケットには、次の基本的な制限があります。
Wake-on-LAN の実装はシンプルに設計されており、ネットワークインターフェースコントローラ上の回路によって最小限の電力で迅速に処理されます。Wake-on-LAN は IP プロトコル層の下で動作するため、IP アドレスと DNS 名は意味をなさず、MAC アドレスが必要となります。
標準的なブロードキャストWake-on-LANの主な制限は、ブロードキャストパケットが一般にルーティングされないことです。そのため、この技術は大規模ネットワークやインターネット上では使用できません。サブネット向けブロードキャスト(SDB)[ 10 ] [ 11 ]は、この制限を克服するために使用できます。SDBは、中間ルーターの構成変更を必要とする場合があります。SDBは、最終(ローカル)ルーターで処理されるまで、ユニキャストネットワークパケットのように扱われます。このルーターは、レイヤー2ブロードキャストを使用してパケットをブロードキャストします。この技術により、リモートネットワークでブロードキャストを開始できますが、介在するすべてのルーターがSDBを転送する必要があります。[ 12 ] [ 13 ] SDBパケットを転送するようにネットワークを準備する際には、必要な(WoLなど)SDBパケットのみが許可されるようにパケットをフィルタリングする必要があります。そうしないと、ネットワークがSmurf攻撃などのDDoS攻撃の参加者になる可能性があります。[ 14 ]
Wake-on-LANは、適切なBIOS/ UEFI 、ネットワークインターフェースハードウェア、そして場合によってはオペレーティングシステムとルーターのサポートが必要となるため、実装が難しい技術です。場合によっては、ハードウェアが特定の低電力状態からは起動できるものの、他の低電力状態からは起動できないことがあります。つまり、ハードウェアの問題により、コンピューターがソフトオフ状態(S5)からは起動できるものの、スリープ状態や休止状態からは起動できない、あるいはその逆の場合があります。
マジック パケットはデータ リンクまたは OSI-2 層を介して送信されますが、L2 LAN 機器がサイト全体のセキュリティ要件に合わせてこのようなトラフィックをフィルタリングする機能を備え、そのように構成されていない限り、同じ LAN 上の誰でもこれを使用または悪用できます。
ファイアウォールを使用して、パブリックWAN内のクライアントが内部 LAN セグメントのブロードキャスト アドレスにアクセスするのを防ぐことができます。また、サブネット向けブロードキャストを無視するようにルータを構成することもできます。
一部のNICは「SecureOn」と呼ばれるセキュリティ機能をサポートしています。この機能により、ユーザーはNIC内に6バイトの16進数パスワードを保存できます。クライアントはこのパスワードをマジックパケットに追加します。NICは、MACアドレスとパスワードが正しい場合にのみシステムを起動します。[ 15 ]このセキュリティ対策により、検索空間が48ビット(6バイト)増加し、MACアドレスが全く不明な場合、最大2の96乗の組み合わせが可能になるため、ブルートフォース攻撃が成功する可能性が大幅に低減します。ただし、ネットワークを盗聴されると、平文のパスワードが漏洩してしまいます。
Wake-on-LAN機能の悪用は、コンピュータの電源投入のみを可能にするものであり、パスワードやその他のセキュリティを回避できず、一度電源が投入されたマシンの電源を切ることもできません。しかし、多くのクライアントコンピュータは、 WoLによって電源が投入されると、 PXEサーバからの起動を試みます。そのため、ネットワーク上のDHCPサーバとPXEサーバを組み合わせることで、攻撃者のブートイメージでコンピュータを起動させ、インストールされているオペレーティングシステムのセキュリティを回避し、ネットワーク経由で保護されていないローカルディスクへのアクセスを許可してしまう可能性があります。
企業ネットワークでのWake-on-LAN技術の使用は、802.1X MACベース認証などのネットワークアクセス制御ソリューションと競合することがあり、マシンのWoLハードウェアがスリープ状態でもライブ認証セッションを維持するように設計されていない場合、マジックパケットの配信を妨げる可能性があります。[ 16 ]
一部のPCには、Wake-on-LANのセキュリティを向上させるための技術がチップセットに組み込まれています。例えば、Intel AMT ( Intel vProテクノロジーのコンポーネント)が挙げられます。AMTはTLS暗号化を用いて、 AMT搭載PCへの帯域外通信トンネルを保護し、Wake-on-LANなどのリモート管理コマンドを実行します。[ 17 ]
AMTは、128ビットのAdvanced Encryption Standard (AES)暗号化と、モジュール長2,048ビットのRSA鍵を用いて通信トンネルを保護します。 [ 18 ] [ 19 ]暗号化通信は帯域外通信であるため、PCのハードウェアとファームウェアは、ネットワークトラフィックがオペレーティングシステム(OS)のソフトウェアスタックに到達する前にマジックパケットを受信します。暗号化通信はOSレベルより下位で行われるため、OSレベルを標的とするウイルス、ワーム、その他の脅威による攻撃に対する脆弱性が低くなります。[ 17 ]
インテルAMT実装を介してWake-on-LANを使用するIT部門は、IEEE 802.1X、シスコ自己防衛ネットワーク(SDN)、マイクロソフトネットワークアクセス保護(NAP)環境などのTLSベースのセキュリティを必要とするネットワーク環境を介してAMT PCを起動することができます。[ 17 ]インテルの実装はワイヤレスネットワークでも機能します。[ 17 ]
Wake-on-LANのサポートは、コンピュータのマザーボードとネットワークインターフェースコントローラに実装されています。そのため、コンピュータで動作しているオペレーティングシステムに依存しません。Wake-on-LANを動作させるには、ネットワークインターフェースカードまたはオンボードチップでこの機能を有効にする必要がある場合があります。具体的な方法は、オペレーティングシステムとデバイスドライバによって異なります。
Wake-on-LANは通常、PCマザーボードのBIOS/UEFIセットアップユーティリティの「電源管理」セクションで有効にする必要がありますが、Appleコンピュータなど一部のシステムではデフォルトで有効になっています。古いシステムではBIOS/UEFI設定はWoLと呼ばれる場合がありますが、PCIバージョン2.2をサポートする新しいシステムではPME(WoLを含む電源管理イベント)と呼ばれる場合があります。また、システムのシャットダウン時にネットワークカード用のスタンバイ電源を予約するようにコンピューターを設定する必要がある場合もあります。
古いマザーボードでは、ネットワークインターフェースがマザーボードに内蔵されておらず、プラグインカードである場合、カードに専用の3ピンケーブルを介して接続されたオンボードヘッダーが搭載されている場合があります。PCI 2.2規格をサポートし、PCI 2.2準拠のネットワークアダプターカードを搭載したシステムでは、必要なスタンバイ電源がPCIバスを介して供給されるため、通常、ケーブルは必要ありません。[ 20 ]電源はATX 2.01仕様に準拠している必要があります。
インテルCentrinoプロセッサーテクノロジー以降[ 21 ](明示的なBIOS/UEFIサポート付き)を搭載したラップトップでは、Wake on Wireless LAN(WoWLAN)を使用してマシンを起動できます。
最近のほとんどのPCでは、ACPIが起動を通知され、電源投入を制御します。ACPIでは、OSPMは起動元、つまり電源投入を引き起こしたデバイス(ソフトパワースイッチ、NIC(Wake-on-LAN経由)、カバーの開閉、温度変化など)を記録する必要があります。[ 22 ]
マザーボード上の3ピンWoLインターフェースは、ピン1、+5V DC(赤)、ピン2、グランド(黒)、ピン3、ウェイク信号(緑または黄)で構成されています。[ 23 ] BIOS / UEFI設定でWoLが有効になっている場合、ピン3のウェイク信号に+5V DCを供給すると、コンピューターの電源がオンになります。
WoL マジック パケットを送信するソフトウェアは、さまざまな場面でクライアントまたはサーバーと呼ばれ、混乱を招くことがあります。WoL ハードウェアまたはファームウェアはサーバーの役割を果たしていると主張できますが、ユーザーがローカル クライアントをダウンロードせずに WoL パケットを発行できるゲートウェイとして機能する Web ベースのインターフェイスは、多くの場合、ユーザーに「Wake-on-LAN サーバー」と呼ばれます。また、ホスト OS 側から WoL 機能を管理するソフトウェアが、不用意にクライアントと呼ばれることもあります。WoL で起動できるスリープ状態のマシンは、通常、エンド ユーザーのデスクトップであることが多く、そのため IT 用語では一般にクライアント マシンですが、WoL は、定義上、サーバーとして実行されているサービスに使用されます。
WoLマジックパケットを送信するソフトウェアは、Windows、Macintosh、Linux、そして多くのスマートフォンを含むすべての最新プラットフォームで利用可能です。例としては、Wake on LAN GUI、LAN Helper、Magic Packet Utility、NetWaker for Windows、Nirsoft WakeMeOnLAN、WakeOnLANx、EMCO WOL、Aquila Tech Wake on LAN、ManageEngine WOLユーティリティ、FusionFenix、SolarWinds WOL Toolなどがあります。[ 24 ]
送信側が起動対象のコンピュータと同じサブネットまたはローカルエリアネットワーク上にある場合、通常は問題はありません。インターネット経由で送信する場合、特にネットワークアドレス変換(NAT)ルーターが使用されている場合(多くの家庭で一般的に使用されている)、特別な設定が必要になることがよくあります。
さらに、WoLプロトコルは、多層ネットワークアーキテクチャのより深いレベルで動作します。宛先がスリープ状態の間もマジックパケットが送信元から宛先に確実に届くようにするには、通常、NATルーターにARPバインディングを設定する必要があります。これにより、ルーターはインターネットプロトコルの下のリンク層で、スリープ状態のコンピュータにマジックパケットを転送できるようになります。ARPバインディングにはセキュリティ上の懸念事項があります(ARPスプーフィングを参照)。しかし、攻撃者がLANにアクセスするには、標的のLANに直接接続されたコンピュータ(ケーブルでLANに接続されているか、Wi-Fiリンクに接続されているコンピュータ)を使用する必要があります。
ほとんどの家庭用ルーターは、マジック パケットを LAN に送信できます。たとえば、DD-WRT、Tomato、またはPfSenseファームウェアを搭載したルーターには、Wake-on-LAN クライアントが組み込まれています。
WoLハードウェアの機能は通常、デフォルトでブロックされており、システムBIOS/UEFIセットアップを使用して有効化する必要があります。場合によっては、Windowsオペレーティングシステムの デバイスマネージャーのネットワークカードプロパティなど、OS側での追加設定が必要になります。
Microsoft Windows の新しいバージョンでは、WoL 機能がデバイス マネージャーに統合されています。これは、各ネットワーク デバイスのドライバー プロパティの「電源管理」タブで利用できます。デバイスの WoL 機能(ACPI S5 電源オフ状態からの復帰機能など)を完全にサポートするには、Microsoft またはコンピューターの製造元が提供するベア ドライバーではなく、ネットワーク デバイスの製造元が提供する完全なドライバー スイートのインストールが必要になる場合があります。ほとんどの場合、WoL を機能させるには、正しい BIOS/UEFI 構成も必要です。
ハイブリッドスリープからの復帰機能は、Windowsでは公式にはサポートされていません。[ 25 ] [ 26 ] [ 27 ] [ 28 ]これは、OSの動作が変更され、これらの状態にシャットダウンされたときにネットワークアダプターがWoLに対して明示的に無効にされるためです。そのため、システムは単に休止状態になっているにもかかわらず、ユーザーにはシャットダウン状態と見えるため、これらのアダプターは電力を消費しません。ユーザーが明示的に休止状態またはスリープ状態を要求した場合、非ハイブリッド休止状態からのWoLはサポートされています。ただし、一部のハードウェアでは、Windowsでサポートされていない状態からのWoLが有効になります。[ 25 ] [ 27 ]
最新の Mac ハードウェアは、コンピュータがスリープ状態にあるときに WoL 機能をサポートしますが、Mac コンピュータを電源オフ状態から起動することはできません。
Mac OS X Snow Leopard以降ではWoL(Wake on Demand)をサポートしています。ノートパソコンでは、この機能はmacOSのシステム設定のバッテリーパネルにあるオプションのポップアップウィンドウで制御されます。ネットワークアクセスによるWakeの項目は、「常に」、「電源アダプタ使用時のみ」、「しない」に設定できます。「常に」に設定すると、バッテリー駆動時でもWake on LANが有効になりますが、「電源アダプタ使用時のみ」に設定すると、電源に接続されているときのみ有効になります。デスクトップでは、この機能はシステム設定の省エネルギーパネルで制御されます。ネットワークアクセスによるWakeのチェックボックスをオンにすると、Wake on LANが有効になります。[ 29 ]また、 pmset womp (wake on magic packet)コマンドを使用してターミナルから設定することもできます。
Apple Remote Desktopクライアント管理システムはWake-on-LANパケットの送信に使用できますが[ 30 ]、macOS用のフリーウェアおよびシェアウェアアプリケーションも利用可能です。Apple AirPortアクセスポイントとApple TVが提供するBonjour Sleep Proxyと呼ばれるメカニズムにより、LAN上の他のマシンは、ホストの共有リソースにアクセスした際に、Wake-on-LANパケットをホストに送信することができます。
Wake-on-LAN のサポートは、 ethtoolコマンドのサブ機能を使用して変更できます。次に例を示します。
ethtool -s eth0 wol g 現代のコンピュータは、「スリープ」、「スタンバイ」、「休止状態」など、様々な電源状態を取ることができます。省電力モードの中には、システム状態がRAMに保存され、マシンが非常に速く起動できるものもあれば、状態がディスクに保存され、マザーボードの電源がオフになるものもあり、起動に少なくとも数秒かかります。マシンは、様々な信号によって省電力状態から復帰できます。
マシンのBIOS/UEFIはWake-on-LANを許可するように設定されている必要があります。電源オフ状態からのウェイクアップを許可するには、電源管理イベント(PME)によるウェイクアップも必要です。Intelアダプターは、「Wake on Directed Packet」、「Wake on Magic Packet」、「Wake on Magic Packet from power off state」、「Wake on Link」を許可しています。[ 31 ]
Wake-on-LAN をサポートしていないマシンは、停電後に電源が切れた状態のままになることがあります。BIOS/UEFI を設定して、電源復旧時に自動的に起動するようにすれば、応答のない状態になることがなくなります。
その他の問題が、マシンの起動やリモート制御の機能に影響を与える可能性があります: マシンまたはネットワークのハードウェア障害、BIOS/UEFI 設定バッテリの障害 (ネットワーク接続が確立される前にマシンを起動すると停止し、エラー メッセージが表示され、キーを押す必要があります)、ソフトウェアの問題によるマシンの制御の喪失 (マシンのハング、リモート制御またはネットワーク ソフトウェアの終了など)、およびウイルス感染やハード ディスクの破損。
ウェイクアップ信号(マジックパケット)の送信元は、ウェイクアップするコンピュータと 同じローカルエリアネットワーク(LAN)上にある必要はありません。以下の方法で、どこからでも送信できます。
仕組み、「省エネルギー」環境設定パネル
... デフォルトでは、従来のウェイクアップパケットは UDP ポート 9 を使用して送信されます...