|
Технология Wake On Lan.
     
Технология включения электропитания ("пробуждения") компьютера является частью
спецификации ACPI (Advanced Configuration and Power Interface),
интерфейса управления электропитанием. Иногда его еще называют интерфейсом
доступа к энергосбререгающим функциям аппаратного обеспечения. Дистанционное включение
компьютера - небольшая и далеко не основная часть этой спецификации. Описание
ACPI легко найдете в интернете (описание ACPI 2.0 содержит более 400 страниц).
Спецификация определяет состояния системы S1-S5 - "состояния сна" в порядке
уменьшения энергопотребления.
S5 - это состояние программного выключения (Soft OFF) - все выключено, за
исключением тех устройств, через которые возможно включение компьютера.
Для питания таких устройств используется дежурное напряжение +5V SB
(+5V Standby), вырабатываемое блоком питания компьютера в выключенном, но не
обесточенном состоянии.
Для перехода из одного состояния S1-S4 в другое (S2 в S1 например) используются
PME (Power Management Events) - события управления электропитанием, большая
часть которых вызывается аппаратным прерыванием от конкретного устройства.
     
Технология "Wake On Lan" (технология "Magic packet") используется
для включения электропитания удаленного компьютера, находящегося в состоянии
программного выключения ("Soft Off") путем посылки на его сетевой адаптер
специально сформированного кадра Ethernet.
   
Удаленный компьютер должен отвечать определенным требованиям:
- Оборудование должно соответствовать спецификации ACPI и в настройках
BIOS должна быть включена поддержка режима "Wake On Lan".
- Иметь блок питания ATX.
- Иметь сетевую карту, поддерживающую технологию "Wake On Lan" (WOL).
     
Сетевой адаптер на выключенном компьютере остается под
питанием от +5VSB блока питания в режиме ожидания приема специального кадра Ethernet, в
поле данных которого присутствует последовательность
из 6 байт FF и его собственного MAC - адреса, повторенного 16 раз. Получив такой пакет
адаптер вырабатывает сигнал включения электропитания компьютера.
Ниже приведено содержимое пакета, полученное с помощью анализатора трафика.

Адрес приемника (первые 6 байт поля кадра) - FFFFFFFFFFFF (Broadcast),
адрес источника - 0015F20016CA (6 байт после адреса приемника)
В области
16-ричного дампа красным цветом выделено поле данных. MAC - адрес включаемого
компьютера равен 00046175F9DA.
   
Практически все современные сетевые адаптеры PCI и материнские платы
поддерживают данную технологию, однако есть некоторые тонкости.
Если материнская плата имеет шину PCI спецификации до 2.2 (большинство моделей
на базе процессоров Pentium II и Pentium III) , то на ней должен быть
3-х штырьковый разъем "Wake On Lan" и такой же разъем должен быть на сетевом адаптере.
Их нужно соединить специальным кабелем, входящим в комплект поставки адаптера.
Для случая с шиной PCI 2.2 такое соединение уже выполнено напрямую.
Если у вас компьютер Pentium II или старше - Wake On Lan должна работать.
     
В настройках BIOS современных материнских плат термин "Wake On Lan" практически
не используется. Ищите близкое по смыслу значение в настройках раздела
управления электропитанием ("Power Management Setup", или "ACPI Configuration" и
т.п.), например, "Wake-Up by PCI device",
"Power on by Ethernet Card" и т.п.
Ниже приведен пример настроек раздела
"Power - APM Configuration" AMI BIOS v2.61:

Для включения режима Wake On Lan необходимо установить пункт "Power On By PCI Devices" в
"Enabled".
На всякий случай, значение остальных опций:
Restore on AC Power Loss - поведение системы при пропадании электропитания. Значение Power Off
- система останется в выключенном состоянии,
Power On - будет выполнено включение компьютера, как только электропитание
будет восстановлено.
Power On By RTC Alarm - включение электропитания по внутренним часам компьютера (аналог
будильника).
Power On By External Modems - включение электропитания будет выполняться
при входящем звонке на внешний модем, подключенный к последовательному порту.
Power On By PCIE Devices - разрешает включение компьютера от устройств на шине
PCI-E. Если ваша сетевая карта использует шину PCI-E, а не PCI, то для включения
режима Wake On Lan нужно установить эту опцию в "Enable".
Power On By PS/2 Keyboard - разрешает включение электропитания от клавиатуры,
подключенной к разъему PS/2
     
Ну, и последнее, что необходимо для включения электропитания компьютера через
локальную сеть - это программа, генерирующая WOL - пакет (Magic Packet). Ее несложно
найти в сети. Один из вариантов - broadc.exe - утилита для включения компьютера по локальной сети.
(скачать, 32кб)
Формат командной строки:
broadc.exe MAC-адрес сетевой карты 255.255.255.255 67
 
 
Примеры использования:
bbroadc.exe 0002b3d8b4e6 255.255.255.255 67 - включить компьютер, MAC - адрес сетевой карты
которого равен 0002b3d8b4e6 .
Вариант для Linux - wakeonlan -
(скачать, ~5кб)
По умолчанию программа использует для посылки Magic Packet'а широковещательный
адрес и UDP-пакет на порт 9 (discadrd). Поэтому внутри локальной сети для
включения компьютера достаточно задать MAC-адрес сетевой карты в
виде 00:01:02:03:04:05
Формат командной строки:
wakeonlan MAC-адрес
 
 
Примеры дистанционного включения и выключения компьютера в нужное время можно найти
в разделе Windows Автоматизация с помощью nncron Lite.
 
 
Использовать данную технологию можно не только в локальной сети, но и в Интернет,
надо только учитывать тот факт, что сформированный Magic Packet будет проходить через
маршрутизаторы, т.е должен содержать правильные IP и MAC-адреса. Упомянутая выше программа Broadc.exe
не позволяет сформировать MAC адрес-приемника в заголовке кадра Ethernet отличный от FFFFFFFFFFFF (Broadcast),
поэтому такой пакет до получателя (удаленно включаемого компьютера) не дойдет, поскольку
маршрутизаторы блокируют широковещательные пакеты. Для формирования Magic Packet'а,
обеспечивающего удаленное включение компьютера в чужой сети можно воспользоваться утилитой
wol.exe -(скачать, ~5кб).
При меньшем, чем у broadc.exe размере, программа обладает несколько большими возможностями.
В параметрах командной строки можно указать имя текстового файла, содержащего
список MAC - адресов компьютеров для удаленного включения. Пример содержимого :
# maclist - mac addresses for wakonlan     - строка начинающаяся с # не обрабатывается - это комментарий
00:BA:BE:FA:CE:00 PC1     - Включить по MAC -адресу
00:11:22:33:44:5A PC2
195.210.128.3-01:12:23:34:45:67 SERVER.COM     - Включить по IP плюс MAC
0xC0A801F0-12:23:34:45:56:67 HOST.RU     - То же, что и впредыд. случае, но IP в шестнадцатеричном виде.
По умолчанию программа формирует UDP пакет на порт 60000. Номер порта можно изменить. Примеры:
Включить компьютер в локальной сети с MAC=01:02:03:04:05:06
wol.exe 01:02:03:04:05:06:
Включить компьютер с использованием IP=212.248.111.222 и MAC=00:00:00:00:00:99:
wol.exe 212.248.111.222-00:00:00:00:00:99
То же самое но использовать в формируемом пакете номер порта = 4096:
wol.exe -p=4096 212.248.111.222-00:00:00:00:00:99
Учтите, что IP-адрес в параметрах запуска - это не IP - адрес включаемого
компьютера, а адрес включенного и доступного узла, обеспечивающего передачу
пакета конечному получателю, т.е. выключенному компьютеру. Выключенный компьютер не имеет загруженных
драйверов и его IP -адрес не может быть увязан с MAC-адресом (ARP-протокол) - wol завершится
ошибкой разрешения IP. Довольно распространенная причина того, что Wake On Lan
"не работает" - использование в параметрах программ для включения, IP - адреса
включаемого компьютера.
    Данную утилиту (wol.exe) я успешно использовал для включения компьютера в сети
"Стрим". Маршрутизатор, через который подключается компьютер к Интернет, настраивается
таким образом, чтобы пакет, сформированный утилитой wol.exe и пришедший на
определенный порт (например 4009) направить в локальную сеть c широковещательным
MAC-адресом. Обычно сетевая плата принимает только те фреймы, адрес назначения
которых совпадает с аппаратным адресом интерфейса (свой MAC-адрес) или с
широковещательным адресом (адрес FFFFFFFFFFFF). В настройках ADSL-модема
Zyxel P660RU2 (Network-NAT-Port Forwarding) создается правило для перенаправления
принятого пакета на широковещательный адрес 192.168.1.255:

Команда на включение:
wol.exe -p=4009 <IP ADSL-модема>-<MAC-адрес сетевой карты компьютера>
Например:
wol.exe -p=4009 85.140.21.22-00:00:A0:80:87:99
 
 
И еще один момент - удаленное включение электропитания не срабатывает если
компьютер был полностью обесточен, например, при пропадании ~220В. В таких случаях
для обеспечения его самостоятельного включения можно использовать установку режима
BIOS в разделе "Power Management Setup" - "Power on after power fail"
или подобного ему по смыслу
("After AC Power Lost" - "POWER ON" - название зависит от версии и
производителя BIOS) . После появления
~220В компьютер должен включиться самостоятельно, без нажатия кнопки "Power".
 
 
Практика использования Wake On Lan выявила еще один момент, - некоторые компьютеры
при разрешении режима включения по сети в настройках BIOS, включают электропитание
самостоятельно, даже не получив кадр с Magic Packet'ом. Причиной данного явления
является то, что у некоторых сетевых карт
(замечено у Intel, 3COM) для включения электропитания по локальной сети
используют
не только WOL, но и другие события (Wake on ARP, Wake on Link Change и т.п.),
при чем, по умолчанию задействованы сразу несколько критериев включения. Нужно
убрать из настроек адаптера (как правило, с помощью специальной утилиты) лишние
условия, и все будет работать правильно.
    Пример, для сетевого адаптера Intel(R) PRO/100VE. С помощью утилиты
Intel(R) PROSet II (поставляемой с адаптером) убираем галочки со всех событий,
кроме "Wake on Magic Packet":

После сохранения настроек, ваш компьютер будет включаться только при получение
Magic Packet'a.
   
Иногда разрешения режима удаленного включения электропитания по локальной сети в настройках BIOS бывает недостаточно. Обычно это связано с особенностями конкретного типа сетевого адаптера. Объясню на примере сетевой карты на чипсете Atheros (контроллер AR8121/AR8113/AR8114 PCI-E Ethernet Adapter). После установки режима Power On by PCI-E Device в настройках BIOS материнской платы, удаленное включение электропитания компьютера не происходит. В свойствах сетевого подключения для данного адаптера
имеется кнопка Настроить

В свойствах сетевого контроллера имеется вкладка Дополнительно.

   
В данном окне можно просмотреть или изменить некоторые параметры и режимы работы выбранной сетевой карты. В частности, по умолчанию, режимы Пробуждение после выключения и Возможности пробуждения установлены в Нет. Именно по этой причине удаленное включение электропитания не выполняется. После установки разрешения режим пробуждения и типа кадра Magic Packet все должно заработать, как положено.
   
Для тех, кому требуется программное обеспечение с графическим интерфейсом пользователя, могу посоветовать миниатюрную и очень простую в использовании утилиту wakeup.exe -(скачать, ~78кб).
Определение MAC-адреса сетевой карты.
     
В LINUX для этих целей можно использовать утилиту arping:
arping < IP-адрес >
Например:
arping 192.168.0.1
   
В Windows можно воспользоваться командой arp, позволяющей выдать содержимое
ARP-кэша на экран.
Чтобы кзш был актуален для требуемого IP-адреса, перед командой arp можно выполнить
ping,
т.е. выполнить последовательно :
ping < IP >
arp -a
  например:
ping 192.168.0.1
arp -a
Кстати, этим же способом можно воспользоваться и в LINUX.
   
Собственный MAC-адрес можно определить с помощью команд:
В LINUX
ifconfig < интерфейс >     например - ifconfig eth0
В Windows
ipconfig /all
В Windows XP и выше для получения MAC-адреса своей сетевой карты можно
воспользоваться консольной командой getmac.exe
В начало страницы       |       На главную страницу сайта
|
|