iPhoneで家のPCをスタンバイ状態から起動する方法です。
これを実現できれば、通常時はスタンバイ状態にしておいて必要な時だけ立ち上げられます。家の中にいても、外出先であっても・・・。
iPhoneのアプリは、RemoteBootというソフトがお手軽です。
apps.apple.com家のLAN内からであれば、MACアドレス/Broadcast ON/IPアドレス 255.255.255.255 でOK。
問題は、インターネット越しにアクセスする場合です。
当然ながら、Internet越しにBroadcastを送信しても、iPhoneが属しているネットワークのセグメントで破棄されてしまいます。
外出先から家のIPを特定するための、DDNSは既に設定済みです。
当初、"iPhone –> Internet –> IX2015 –> 家のPC" という、PCのIPを直接指定したユニキャスト通信でうまくいくのではないかと考えていました。
でも、この接続ではダメ。(PCがスタンバイ状態になった直後だけは大丈夫)
結局、"iPhone –> Internet –> IX2015 –> 家LANだけでBroadcast" とする必要がありました。
PCが電源OFFになっていると、ルータのARPテーブルにある該当のエントリーがタイムアウトして、エントリーが消されてしまうのです。すると、ルータ(ここではIX2015)は通信先であるPCのIPアドレスが分かっても、MACアドレスがわからないのでPCへの通信ができません。ルータは通信したいパソコンのIPアドレスはわかっているけれど、MACアドレスがわからない状態。そこで、ルータはARPリクエストを投げて、IPアドレスからMACアドレスを検索しようとします。しかし、PCが電源OFFなので、PCからMACアドレスが回答されないのです。
そこで、iPhoneからルータ(IX2015)まではユニキャスト通信、そのあとルータ(IX2015)から家のLAN内に向けてBroadcastを送信するようにしました。そうすると、LAN内で接続されているPCのNIC全てにパケットが届きます。そのため、スタンバイ状態にあるPCへもMagicPacketが届き、スタンバイ状態から起動するわけです。
肝になったIX2015が色々とあったので、設定をメモ。
! int FastEthernet0/1.1: pppoeのインターフェイス
! int FastEthernet1/0:1.0: 家庭内LANのVLANインターフェイス
! フィルタリングの設定:宛先をブロードキャストアドレスにしておく。
ip access-list wol permit udp src any sport any dest 192.168.1.255/32 dport eq 50000
! NAPT設定:NAPTで変換したあとの宛先を、ブロードキャストアドレスにするのがコツ。
interface FastEthernet0/1.1
ip napt service WOL 192.168.1.255 none udp 50000
! LANのInterface設定
! ip directed-broadcast を投入して、ブロードキャストを通せるようにする。
! ip filter でaccess-listに記載した通信許可の設定を適用する。
interface FastEthernet1/0:1.0
ip directed-broadcast
ip filter wol 36 out
参照: 設定事例集 1.12 ブロードキャストパケットの送信許可設定(リンク)