Interested Article - Wake-on-LAN

Wake-on-LAN ( WOL ; в переводе с англ. — «пробуждение по [сигналу из] локальной сети ») — технология, позволяющая удалённо включить компьютер посредством отправки через локальную сеть специальной последовательности байтов — пакета данных (так называемого magic packet — «волшебного пакета», см. ). Этот пакет может быть вставлен в пакеты любых стандартных протоколов более высоких уровней , например, UDP или IPX .

Требования к компьютеру для работы с Wake-on-LAN

  • Компьютер с источником питания, соответствующим стандарту ATX 2.01 , и материнской платой , поддерживающей Wake-on-LAN;
  • Сетевая плата (в виде платы расширения либо встроенная в материнскую плату) с поддержкой Wake-on-LAN;
  • Если используется внешняя (не встроенная в материнскую плату) сетевая плата, и хотя бы одна из этих плат не соответствуют стандарту PCI 2.2 или более позднему, то необходим также специальный трёхпроводной кабель для соединения разъёмов Wake-on-LAN на материнской и сетевой платах.
  • Как для интегрированного, так и для внешнего сетевого адаптера, как правило, требуется включение Wake-on-LAN в настройках BIOS материнской платы.

Кроме того, необходима возможность послать magic packet управляемому компьютеру. Это можно сделать, например, с помощью другого компьютера с соответствующей программой (см. примеры ).

Принцип работы

Управляемый компьютер находится в дежурном режиме ( англ. stand-by — режим, предусмотренный спецификацией ATX , при котором из всех выходных цепей блока питания активна только дежурная +5VSB) и выдаёт питание на микросхему BIOS и сетевой адаптер . Сетевой адаптер находится в режиме пониженного энергопотребления, при этом его микроконтроллер анализирует все пакеты, приходящие на соответствующий MAC-адрес , ничего не отвечая на них. Если одним из пакетов окажется magic packet , сетевой адаптер выдаст сигнал на включение питания компьютера.

Magic packet

англ. Magic packet — это специальная последовательность байтов, которую для нормального прохождения по локальным сетям можно вставить в пакеты транспортного уровня , не требующие установки соединения (например, протокол UDP или устаревший IPX ). Обычно для Wake-on-LAN пакеты протоколов верхнего уровня рассылают широковещательно, так как в случае динамического присвоения адресов неизвестно, какой IP-адрес соответствует какому MAC-адресу. Однако, для корректного прохождения через маршрутизатор, запрещающий широковещательные пакеты, можно послать пакет по какому-то определённому адресу.

В начале пакета идет так называемая цепочка синхронизации: 6 байт , равных 0xFF. Затем — MAC-адрес сетевой платы, повторённый 16 раз . То есть, если бы адрес платы выглядел как 01:02:03:04:05:06 , то магический пакет оказался бы таким:

FFFFFFFFFFFF010203040506
010203040506010203040506
010203040506010203040506
010203040506010203040506
010203040506010203040506
010203040506010203040506
010203040506010203040506
010203040506010203040506
010203040506

Примеры

Программы

  • Для Linux —
  • FreeBSD - начиная с 8.0-RELEASE содержит утилиту wake —
  • Для Maemo 4 (Nokia Internet Tablet N800/N810) —
  • woncli — консольная утилита для Windows —
  • MultiWOL — CGI скрипт на Perl для многопользовательского окружения —
  • WakeMeOnLan —

Исходники

Задача написания программы, посылающей магический пакет, достаточно проста и часто дается как учебная при изучении основ работы с сетью. Ниже представлено два примера таких программ в исходных кодах:

Примечания

  1. Некоторые компьютеры необходимо включить вручную хотя бы один раз после установки сетевой платы. При этом включении компьютер обнаружит сетевую плату и в дальнейшем запомнит, на какое именно устройство следует подавать питание. Другим возможным решением может быть установка в BIOS параметра Wake After Power Fail («пробуждаться после пропадания питания») в значение On («Вкл.»)
Источник —

Same as Wake-on-LAN