会社のネットワークで Wake-on-LAN を設定しているときに奇妙な問題が発生しています。
ワークステーションを起動するには、次の条件を満たしている必要があります。
- WOLはBIOSとネットワークカードの設定で有効になっています
- ルータは常にそのワークステーションに同じIPアドレス(MACアドレス)を割り当てます。
- ネットワークカードはIPアドレスを自動的に取得するように設定されている
WOL コマンドを送信するワークステーションは、起動するワークステーションと同じサブネットにあります。マシンを起動しようとすると、次のシナリオが発生します。
開始条件: マシンが1日以上オフになっていた
- WOLコマンドをネットワークブロードキャスト(テストのみ許可)経由で送信すると、マシンは正常に起動します。
- WOL コマンドをそのワークステーションに直接送信すると (IP アドレス、サブネット マスク、DNS 名を使用)、マシンは起動しません。
- マシンを少なくとも 1 回手動で起動した場合のみ、その後は WOL コマンドを IP アドレスに直接送信することでマシンを起動できます。
マシンが長時間オフになっている場合、IP アドレス経由で直接マシンを起動できない理由と、WOL 方式として「ブロードキャスト」を使用するとこれが機能する理由について、誰かご存知ですか?
どのようなご返信でも大歓迎です。
答え1
@ott のコメントにあるように、その時点でネットワーク上でアクティブでないマシンにユニキャスト トラフィックを送信することはできません。ただし、「ネットワーク上でアクティブ」とは、デバイスによって意味が異なります。PC やルーターなどのレイヤー 3 デバイスの場合は、「このデバイスが過去 4 時間以内にマシンと通信した」こと (ARP タイムアウトによって異なります)、スイッチなどのレイヤー 2 デバイスの場合は、「スイッチが過去 5 分間にその送信元 MAC アドレスを持つパケットを確認した」こと (MAC エージング時間によって異なります) を意味します。
ユニキャスト WOL は、デバイスの電源がオンになってからオフになったときに機能すると書かれていますが、マシンの電源がオフになった後のある時点で機能しなくなるかどうかは書かれていません。これが機能するのは、ルーター (または同じサブネットにある場合は WOL パケットを生成する PC) に ARP エントリ (4 時間のタイムアウト) があり、正しいマシン宛てのパケットを作成できるからです。ただし、スイッチは MAC アドレスが属するポートを知っているか (MAC エージング時間内に WOL が送信される)、その MAC アドレスがすでにタイムアウトしているため、不明な宛先をブロードキャストとして扱います。ARP エントリがタイムアウトすると、ルーター (または PC) は dest-mac フィールドに入れるものがないため、WOL パケットをカプセル化できなくなります。
これを機能させるには、ブロードキャストを使用する必要があります。他に信頼できる方法はありません。サーバーが接続されているネットワークとは別のネットワークで WOL を機能させるには、ダイレクト ブロードキャスト パケットを使用する必要があります (ユニキャスト パケットはリモート ネットワークのブロードキャスト アドレスに送信され、適切に構成されたリモート ルーターはパケットを許可し、目的のネットワークでブロードキャストとして送信します)。