第71回:インターネット経由でのWakeup On LANに挑戦



 FTTHやADSLなどの常時接続回線を利用すれば、外出先から自宅へのリモートアクセス環境を構築することもさほど難しくない。しかし、このときに問題になりがちなのが、自宅側のパソコンの電源管理だ。リモートアクセス環境を利用するには、自宅側のパソコンの電源がONになっていることがひとつの条件となる。今回は、この問題を解決すべく、WAN側からのWakeup On LAN(WOL)に挑戦してみた。





インターネット接続だけではもったいない

 FTTHやADSLなどの常時接続環境を利用して、自宅へのリモートアクセス環境を整えてみたい……。そう考えたことはないだろうか? リモートアクセス環境を整えておけば、会社から自宅、外出先から自宅といったように、遠隔地から自宅のパソコンにアクセスして情報を自由に取り出すことが容易に可能となる。せっかく、高速かつ、常時接続が可能な回線が自宅にあるのだから、これを家からインターネット接続だけに利用するのは、実にもったいない話だ。

 もちろん、これまではリモートアクセス環境を構築するために、難しい設定が必要だったり、サーバーなどの機器を用意しなければならないという問題があった。しかし、Windows XPのリモートデスクトップを使ったり、VPNサーバー機能を搭載したルータ(オムロン MR104FHやヤマハ RT57iなど)を利用することで、以前に比べて容易に環境が整えられるようになってきた。公衆無線LANアクセスポイントのVPN対応など、アクセスする側の環境も整いつつある。

 このような環境を整えれば、FTTHやADSLなどのブロードバンド環境をインターネット接続インフラとしてだけでなく、自宅とさまざまな地点を結ぶネットワークとしても利用可能となるだろう。





最大の問題はパソコンの電源投入

 ただし、リモートアクセス環境を構築するには、ひとつ大きな問題がある。以前に本コラムでも紹介したように、リモートデスクトップ環境ルータでのVPN接続環境の構築は、それほど難しくはない。必要なソフトウェアや機材をそろえて、適切に設定すれば誰にでも構築は可能だ。

 しかしながら、リモートデスクトップにしろ、VPN接続にしろ、自宅側のパソコンの電源がONになっていないと利用できないという問題がある。自宅側のパソコンの電源がOFFになっていると、リモートデスクトップは接続自体ができないうえ、VPN接続は接続が完了してもパソコンの資源を参照することができない。これでは、いくら環境の構築が手軽だとしても、実際の利用には躊躇してしまうだろう。

 では、常にパソコンの電源をONにしておくのか? これは非効率的だろう。夏の電力不足を無事に乗り切ったとは言え、いつ使うかがわからないパソコンの電源を常にONにしておくわけにはいかない。もちろん、電気料金も気になるところだ。やはり理想としては、リモートアクセスで接続したときだけパソコンの電源をONにできるようにしたいところだろう。

 そこで、今回はWakeup On LAN(以下WOL)を利用して、この問題の解決を試みてみた。WOLとは、ネットワーク経由でパソコンの電源をコントロールできる機能のことだ。MagicPacketと呼ばれる特定のデータをネットワーク経由でパソコンに送信することで、パソコンの電源をONにすることができる。この機能を利用すれば、リモートアクセスしたときだけ、パソコンの電源をONにすることができるはずだ。





まずは自宅LANでWOLをテスト

 WOLを利用するには、WOLに対応したNIC(LANインターフェイス)とMagicPacketを送信するためのソフトウェアが必要になる。比較的新しいパソコンに搭載されているNICであれば、ほとんどの場合WOLを利用できるが、中にはBIOSのバージョンアップや設定の変更などが必要なことがあるので、マニュアルやメーカーのサポート情報などを事前に確認しておくといいだろう。

 一方、MagicPacketを送信するためのソフトウェアは、オンラインソフトなどもいくつか存在するが、今回はAMDが同社のNIC向けに提供している「PCnet Magic Packet Utility」を利用した。他のソフトウェアを利用してもかまわないが、場合によってはルータ越えに対応していない場合もあるので、あらかじめ機能をよく確認しておきたい。


AMDのPCnet Magic Packet Utility。送信先アドレスやMACアドレスを毎回手動入力しなければならないのが面倒だが、ルータ経由などでも確実にWOLが利用できる

 これらの準備ができたら、まずはLAN上でWOLのテストをしてみると良いだろう。ターゲットとなるパソコンの電源をOFF、またはスタンバイにしておき、この状態でLAN上の他のパソコンにインストールしたMagicPacket用ソフトウェアを起動。起動したいパソコンのIPアドレス(もしくはブロードキャストアドレス)とNICのMACアドレスを指定して、MagicPacketを送信する。これで電源がONになれば、ひとまず準備は完了だ。

 なお、今回、筆者のパソコンはスタンバイからの復帰しかできなかった。電源OFFからの起動にはパソコンによって条件や制約があるため、今回はスタンバイからの復帰という前提で話を進めていく。





WAN側からのWOLには工夫が必要

 さて、LAN上でのテストがうまくいったら、これをインターネットを経由したWANに拡張すればいい。ただし、ここで問題になるのがルータの存在だ。WOLでは、MagicPacketがターゲットのパソコンに届くことで電源がONになるのだが、ルータが存在することにより、通常の方法ではMagicPacketは届かない。

 そこで、ルータのポートフォワードを利用してみることにした。前述した「PCnet Magic Packet Utility」の場合、利用するプロトコルはUDPで、ポートは2304だ。つまり、ルータ側にこのパケットが届いたときに、LAN上のパソコンのIPアドレスにフォワードするように設定し、外出先のクライアントからルータのグローバルIP宛にMagicPacketを送信すればいいわけだ(ルータによってはフィルタリングの設定も必要)。


NECアクセステクニカのAtermシリーズの設定画面。ルータによってはフィルタリングの設定変更も必要。2304ポート宛のUDPパケットを通過させる必要がある

ARPキャッシュの問題を避けるため、MagicPacketをブロードキャストアドレス宛にポートフォワードする。これで、WAN経由でもWOLが利用できる

 この方法は、一見、うまくいったように見える。実際、自宅側のパソコンをスタンバイにしてから数十分の間であれば、何の問題もなくWOLが成功する。しかし、一定の時間が空くと、途端にスタンバイから復旧させることができなくなってしまう。いろいろ調べてみると、どうやらルータのARPキャッシュが関係しているようだ。ルータはLAN上のパソコンのMACアドレスとIPアドレスの対応をARPキャッシュとして一定時間保持しているが(どれくらい保持するかはルータによる)、これがクリアされてしまうと、転送先のパソコンのMACアドレスが不明となり、きちんとMagicPacketが届かない。これによって、一定時間しかWOLが機能しないと考えられる。

 このため、今度はポートフォワードの設定を変更し、転送先をパソコンのIPアドレスではなく、LAN側のブロードキャストアドレス(192.168.0.255など、末尾が255のアドレス)にしてみた。ブロードキャストアドレスであれば、LAN全体にMagicPacketがブロードキャストされるため、ARPキャッシュがクリアされたとしてもターゲットのパソコンにMagicPacketを届けることができる。すると、今度は問題なくLAN上のパソコンをスタンバイから復帰させることができた。同様にリモートデスクトップのポート(3389)などもポートフォワードしておくように設定しておけば、これでWOLしてから、リモートデスクトップで接続するというリモートアクセス環境を整えることができるだろう。


ポートフォワードを利用したWAN側からのWOLの利用イメージ。クライアントからルータ宛に送ったMagicPacketは、ルータのポートフォワードによってLAN側にブロードキャストされる

 ただし、ルータによっては、アドレスが間違っている判断され設定が拒否されるためか、ブロードキャストアドレス宛のポートフォワードが設定できないように制限されていたり、後述するようにLAN側へのブロードキャストが破棄される設定になっている場合もある。今回テストに利用したNECアクセステクニカ製のルータ(WR7600H、およびイー・アクセスやアッカでレンタルされるADSLモデム)では、問題なく設定できたが、他の製品の場合は設定できないこともあるので注意が必要だろう。





やはりVPNで使いたい

 このように、ブロードキャストアドレス宛にポートフォワードを設定することで、WAN側からのWOLは可能になった。しかし、ポートフォワードの場合、ポートが常に空いているため、セキュリティ上の問題がどうしても避けられない。リモートデスクトップで利用するのであれば、そのポートも開けておかなければならない。このため、個人的にはVPNで接続する方法をおすすめしたい。

 VPN環境でWOLを利用する場合、前述したポートフォワードの設定は不要だ。VPN接続した次点で、外出先のクライアントにもLAN側と同じプライベートIPアドレスが割り当てられるため、この状態からMagicPacketを送信してやればいいことになる。前述した方法と同様、ARPキャッシュの問題を避けるために、LAN側のブロードキャストアドレスにMagicPacketを送信すればWOLが可能になるはずだ。

 しかし、実際にやってみるとこれがうまくいかない。今回、VPN接続のテストには、YAMAHAのRT57iを利用したのだが、このルータはSmarfアタック対策のために、WAN側からLAN側へのダイレクトブロードキャストが禁止されている。つまり、外出先のクライアントからブロードキャストアドレス宛にMacigPacketを送信しても、それがすべてフィルタによってリジェクトされてしまうのだ。


YAMAHA RT57iの設定画面。MagicPacketをLAN側にブロードキャストするためには、LAN側へのダイレクトブロードキャストを許可しておく必要がある

 このため、VPNでWOLを利用する場合は、あらかじめルータ側でダイレクトブロードキャストを許可しておく必要がある。ヤマハのルータの場合にはTELNET、もしくはルータの設定画面で「ip filter directed-broadcast off」というコマンドを実行する。これで、ダイレクトブロードキャストが許可され、VPNで接続したクライアントからのMagicPacketがLAN上にブロードキャストされるようになる。Smarfアタックに対して対抗できなくなる可能性があるが、ルータ側ではPPTPが利用するポートしか空いていないので、安全性という面では、前述した方法よりは高いだろう。


VPN環境でのWOL利用イメージ。VPNで接続した後、LAN側のブロードキャストアドレス宛に直接MagicPacketを送信する




よりスマートでセキュアな方法が望まれる

 このように、今回はWAN側からWOLを利用する2種類の方法を紹介したが、どちらも設定が面倒であるうえ、若干セキュリティが甘くなってしまう問題を残す結果となった。リモートアクセス環境がより普及するようになるためには、このような問題が解決され、よりスマートな方法が提供されなければならないだろう。

 過去、ISDNルータが多用されていた時代には、PHSからのダイヤルアップサーバー機能が提供されており、中にはルータからMagicPacketを送信できる製品も存在した。回線が常時接続になり、リモートアクセス環境が使いやすい環境になったのに、このような製品があまり登場しないのは非常に残念だ。SOHOというか、家庭で仕事をする立場の人間からすると、非常に欲しい機能のひとつなのだが……。今後、単にインターネット接続だけを提供するルータではなく、このような付加価値を持ったルータが登場することを望みたいところだ。


関連情報

2003/9/16 11:02


清水 理史
製品レビューなど幅広く執筆しているが、実際に大手企業でネットワーク管理者をしていたこともあり、Windowsのネットワーク全般が得意ジャンル。最新刊「できるWindows 8.1/7 XPパソコンからの乗り換え&データ移行」ほか多数の著書がある。