ふと思うところがあって、WOL(Wake-On-LAN)の実験をしているのだが、どうもルータ越しのWOLがうまくいかない。正確にはうまくいくときと行かないときがある。
具体的には、地点Aと地点Bにルータを置き(ともに同型、WAN側に動的IPアドレスが割り当てられている)、地点AからBで寝ているPCにマジックパケットを送って電源を入れるというもの。
WOLを成功させる上ではルータがくせ者で、WOL対応を謳っている製品であること、かつ起こされる側のPCは有線LANで繋がっていることが必要。しかしものは試しようで、非対応(対応と明確に書いていない)B社のルータ「WHR-G54S」を使ってみたところ、うまくいってしまった。ただし、地点BにあるPCがシャットダウンし終わった後の最初の数分間だけ。
この数分間だけできるという謎の現象については教えて!gooでも同様の質問を投げている方がいるようで。
というか、試していることがまんま同条件なのでここにある回答がそのままうちのケースにもあてはまった。
ルータのARPテーブルに残っている間は可能。ということでしょう。
ARPテーブルはある程度の時間が経過すると消去されますので、消去後はIPアドレスとMACアドレスの紐付けができません。
「UDPポートを開けた」というのがブロードキャスト(全てに送信)でなければ、MACアドレスとの紐付けができませんので
どのLANポートにパケットを投げればいいのか判別できませんので棄てられてしまいます。
つまり、ルータのARPテーブルから情報が削除された後はWOLが不可能になってしまう。私も何十回とテストしたわけではないのでどのタイミングでARPテーブルが更新されるかわからないが、シャットダウン後、2分以内なら成功した。が、シャットダウンさせてから20分後にマジックパケットを送ったところ、うまく起きてくれなかった。
突然の停電などでリモート先のPCが落ちた場合、すぐにマジックパケットを送れば再び起こすことはできるが、落ちたことにこちらが数十分以上気がつかなかった場合、誰かに頼んで現地に行って貰うか、自分が向かわなければならない。せめて落ちたことを瞬時に伝えてくれるシステムがあれば、ルータを買い換えずともWOLが利用できるのだが。