Технология 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) — события управления электропитанием, большая часть которых вызывается аппаратным прерыванием от конкретного устройства.
Описание спецификации ACPI на русском языке.

Технология «Wake On Lan» (технология «Magic packet») используется для включения электропитания удаленного компьютера, находящегося в состоянии программного выключения («Soft Off») путем посылки на его сетевой адаптер специально сформированного кадра Ethernet.
Удаленный компьютер должен отвечать определенным требованиям:
— Оборудование должно соответствовать спецификации ACPI и в настройках BIOS должна быть включена поддержка режима «Wake On Lan».
— Иметь блок питания ATX.
— Иметь сетевую карту, поддерживающую технологию «Wake On Lan» (WOL).

Сетевой адаптер на выключенном компьютере остается под питанием от +5VSB блока питания в режиме ожидания приема специального кадра Ethernet, в поле данных которого присутствует последовательность из 6 байт FF и его собственного MAC — адреса, повторенного 16 раз. Получив такой пакет адаптер вырабатывает сигнал включения электропитания компьютера.
Ниже приведено содержимое пакета, полученное с помощью анализатора трафика.

 

Содержимое Magic Packet

 

Адрес приемника (первые 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 в BIOS Setup

 

Для включения режима 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:06wol.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:
    Настройка Port Mapping в ADSL-модеме

    Команда на включение:

    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»:

    Wake On Settings

    После сохранения настроек, ваш компьютер будет включаться только при получение Magic Packet’a.

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

    Atheros Gigabit Ethernet Card Property

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

    Atheros Gigabit Ethernet Card Property - WOL

    В данном окне можно просмотреть или изменить некоторые параметры и режимы работы выбранной сетевой карты. В частности, по умолчанию, режимы Пробуждение после выключения и Возможности пробуждения установлены в Нет. Именно по этой причине удаленное включение электропитания не выполняется. После установки разрешения режим пробуждения и типа кадра Magic Packet все должно заработать, как положено.

    Для тех, кому требуется программное обеспечение с графическим интерфейсом пользователя, могу посоветовать миниатюрную и очень простую в использовании утилиту wakeup.exe (скачать, ~78кб).

    WakeUp.exe

     

     

     

    Определение 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

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Закончите арифметическое действие * Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.