Wake On Lan – удаленное включение компьютера по локальной сети.

      Технология Wake On Lan (WOL) используется для удаленного включения электропитания компьютера по локальной сети и реализуется в соответствии с положениями спецификации ACPI (Advanced Configuration and Power Interface). Данная спецификация - это открытый стандарт, определяющий порядок взаимодействия программных и аппаратных средств для обнаружения и конфигурирования подключенного оборудования, его мониторинга, управления электропитанием и системой охлаждения. Описание вышедшей в конце 90-х годов версии ACPI 1.0 содержит почти 400 страниц, а описание действующих в настоящее время спецификаций превышает 1000 страниц. Спецификация ACPI 1.0 была принята в 1996г. и оказалась довольно удачным решением, повлекшим за собой дальнейшее развитие данной технологии, что привело к появлению в 2000 г. редакции ACPI 2.0, которая фактически стала индустриальным стандартом для всех производителей компьютерного оборудования и программного обеспечения.

В настоящее время разработку и поддержку спецификации ACPI осуществляет международная организация UEFI Forum. В разделе, посвященном спецификации ACPI имеется полный набор документации, начиная с версии ACPI 1.0 и заканчивая последней принятой на текущий момент времени ( на английском языке).

Спецификация ACPI определяет состояния системы, обозначаемые как Gn - глобальные состояния, и Sn - состояния "сна", которым соответствует свой уровень потребления электроэнергии в порядке его уменьшения. Т.е. состоянию S1 соответствует максимальное потребление, а S5 - минимальное.

B>G0 (Working) — нормальная работа.

G1 (Suspend, Sleeping, Sleeping Legacy) — машина выключена, однако текущий системный контекст (system context) сохранён, работа может быть продолжена без перезагрузки. Для каждого устройства определяется "степень потери информации" в процессе засыпания, а также где информация должна быть сохранена и откуда будет прочитана при пробуждении и время на пробуждение из одного состояния до другого (например, от сна до рабочего состояния). Уровень потребления электроэнергии и глубина состояния "сна" Sn определены следующим образом:

  • S0 - нормальная работа.

  • S1 — состояние при котором все процессорные кэши сброшены и процессоры прекратили выполнение инструкций. Однако, питание процессоров и оперативной памяти поддерживается; устройства, которые не обозначили, что они должны оставаться включенными, могут быть отключены. Наименьшая степень энергосбережения и самый быстрый переход в рабочее состояние;

  • S2 — более глубокое состояние сна, чем S1, когда центральный процессор отключен, обычно на практике, не используемое;

  • S3 ("Suspend to RAM" (STR) в BIOS, "Ждущий режим" ("Standby") в версиях до Windows XP и в некоторых дистрибутивах Linux, "Sleep" в Windows Vista и Mac OS X, хотя в спецификациях ACPI упоминается только как S3 и Sleep). В состоянии S3 на оперативную память (ОЗУ) продолжает подаваться питание и она остаётся практически единственным компонентом, потребляющим энергию. Так как состояние операционной системы и всех приложений, открытых документов и т. д. хранится в оперативной памяти, пользователь может возобновить работу точно на том месте, где он её оставил — состояние оперативной памяти при возвращении из S3 то же, что и до входа в этот режим. (В спецификации указано, что S3 довольно похож на S2, только чуть больше компонентов отключаются в S3.) S3 имеет два преимущества над S4: компьютер быстрее возвращается в рабочее состояние, и, второе, если запущенная программа (открытые документы и т. д.) содержит конфиденциальную информацию, то эта информация не будет принудительно записана на диск. Однако, дисковые кэши могут быть сброшены на диск для предотвращения нарушения целостности данных в случае, если система не просыпается, например, из-за сбоя питания;

  • S4 ("Спящий режим" (Hibernation, гибернация) в Windows, "Safe Sleep" в Mac OS X, также известен как "Suspend to disk", хотя спецификация ACPI упоминает только термин S4) — в этом состоянии всё содержимое оперативной памяти сохраняется в энергонезависимой памяти, такой как жёсткий диск: состояние операционной системы, всех приложений, открытых документов и т. д. Это означает, что после возвращения из S4, пользователь может возобновить работу с места, где она была прекращена, аналогично режиму S3. Различие между S4 и S3, кроме дополнительного времени на перемещение содержимого оперативной памяти на диск и назад, - в том, что перебои с питанием компьютера в S3 приведут к потере всех данных в оперативной памяти, включая все несохранённые документы, в то время как компьютер в S4 этому не подвержен. S4 весьма отличается от других состояний S и сильнее S1-S3 напоминает G2 Soft Off и G3 Mechanical Off. Система, находящаяся в состоянии S4, может быть также переведена в состояние G3 Mechanical Off (Механическое выключение) и все ещё оставаться S4, сохраняя информацию таким образом, что можно восстановить состояние операционной системы и всех приложений после подачи электропитания. На практике, S4 является основным режимом сна для ноутбуков и мобильных устройств.

    G2 (или состояние сна S5, soft-off) — мягкое (программное) выключение; система полностью остановлена и выключена, но часть оборудования находится под дежурным электропитанием, вырабатываемым блоком питания стандарта ATX в выключенном ( но не обесточенном) состоянии. Дежурное напряжение с выхода БП +5VStandby (+5VSB) подается на ту часть устройств, которая может быть использована для включения электропитания всей системы при возникновении определенных событий, как например, при приеме в буфер сетевого адаптера специального кадра Ethernet (Magic Packet, Wake-On-Lan) или нажатия определенной комбинации клавиш на клавиатуре.

    G3 (mechanical off) — механическое выключение системы; блок питания ATX отключен от входного напряжения ( 220V). Включение электропитания невозможно.

    Для перехода из одного состояния S1-S4 в другое (S5 в S1 например) используются события управления электропитанием - PME (Power Management Events) -, большая часть которых вызывается аппаратным прерыванием от конкретного устройства.


    Принципы реализации удаленного включения электропитания.



          Наиболее распространенной реализацией удаленного включения электропитания является технология Wake On Lan или технология Magic packet. Включение электропитания компьютера выполняется при получении сетевым адаптером специально сформированного кадра Ethernet, содержимое которого включает в себя его аппаратный адрес (MAC-адрес). В выключенном состоянии компьютера (состоянии S5), сетевой адаптер находится под питанием от дежурного напряжения +5VSB, и при получении кадра Ethernet, в поле данных которого обнаруживается ”магический” пакет, вырабатывает сигнал на включение компьютера.

    Другими словами, для удаленного включения электропитания компьютера, необходимо, чтобы он соответствовал спецификации ACPI, в настройках BIOS должна быть включена поддержка режима "Wake On Lan" (обычно, по умолчанию она выключена) и сетевой адаптер получил специальный кадр Ethernet, в поле данных которого присутствует последовательность из 6 байт FF и его собственного MAC - адреса, повторенного 16 раз. Ниже приведено реальное содержимое кадра Ethernet для удаленного включения электропитания компьютера.

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

    В первых 6 байтах кадра содержится адрес приемника, равный FFFFFFFFFFFF, что принято называть широковещательным (Broadcast) адресом. Затем, в следующих 6 байтах, - адрес источника, отправившего данный кадр, в данном примере, равный 0015F20016CA . В области данных кадра, выделенной красным цветом, отображено содержимое магического пакета, представляющее собой

    – 6 байт с кодом FFFFFFFFFFFF

    - MAC - адрес включаемого компьютера, повторяемый 16 раз и, в данном примере, равный 00046175F9DA.

    Как правило, для удаленного включения электропитания используется программное обеспечение, которое обеспечивает широковещательную рассылку кадра с ”магическим пакетом”, принимаемого всеми компьютерами локальной сети, а включение выполняется лишь для того компьютера, MAC-адрес которого совпал с адресом из содержимого ”магического” пакета.

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

  • Если материнская плата очень древняя, и имеет шину PCI спецификации до 2.2 (большинство моделей на базе процессоров Pentium II и Pentium III) , то на ней должен быть 3-х штырьковый разъем "Wake On Lan" и такой же разъем должен быть на сетевом адаптере. Их нужно соединить специальным кабелем, входящим в комплект поставки адаптера. Для случая с шиной PCI-E и PCI 2.2 и старше такое соединение уже выполнено напрямую.
  • В настройках BIOS современных материнских плат термин "Wake On Lan" практически не используется. Ищите близкое по смыслу значение в настройках раздела управления электропитанием. Такой раздел также может иметь разное название - "Power Management Setup", "ACPI Configuration", Power и т.п.). Включаемый параметр может называться, например, "Wake-Up by PCI-E 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 - поведение системы при пропадании первичного электропитания 220V. Значение 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




    Некоторые особенности настроек электропитания для современных UEFI BIOS



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

    ErP - режим минимального энергопотребления системы в выключенном состоянии (ограничивается мощность дежурного питания не более 1Вт). Данный режим реализован в соответствии с рекомендациями Европейской комиссии для снижения потребления электроэнергии устройствами в дежурном режиме (Energy-related Products* (ErP). Если в настройках BIOS, режим ErP включен ( Enable ), то большая часть возможностей по включению электропитания от периферийных устройств не реализуется. Для дистанционного включения электропитания компьютера по Wake-On-Lan, режим ErP должен быть отключен ( Disable ).

    EuP - полностью аналогично ErP, но другое название, происходящее от Energy Using Product . Для дистанционного включения электропитания компьютера по Wake-On-Lan, режим EuP должен быть отключен ( Disable ).

    CEC 2019 Ready - низкое энергопотребление в режиме ожидания и в соответствии стандартам, выработанным Калифорнийской энергетической комиссией (CEC 2019) для изделий с малой мощностью и высокой эффективностью. При включенном параметре ( Enable ) энергопотребление компьютера в выключенном состоянии снижается, а функции включения электропитания от периферийных устройств не работают. Для дистанционного включения электропитания компьютера по Wake-On-Lan, режим CEC 2019 Ready должен быть отключен ( Disable ).

    В некоторых случаях, после изменения настроек выше перечисленных параметров BIOS, для включения электропитания компьютера по Wake-On-Lan, может потребоваться полное отключение первичного электропитания компьютера (220V).

    В современных компьютерах технология Wake-On-Lan может обеспечивать дистанционное включение электропитания не только после программного выключения питания ( Soft-Off), но и сразу после подачи первичного напряжения на блок питания (220V). Возможность такого включения зависит от конкретной модели материнской платы.




    Программное обеспечение для удаленного включения электропитания.



          Для включения электропитания компьютера по локальной сети требуется программное обеспечение для отправки Wake-On-Lan - пакета ( Magic Packet’а) включаемому дистанционно компьютеру. Программ, предназначенных для этой цели, на сегодняшний день существует изрядное количество, начиная от простейших консольных утилит, и заканчивая программными модулями сложных промышленных комплексов управления предприятиями.

    Одна из простейших утилит для удаленного включения электропитания - (скачать, 32кб)
    Представляет собой небольшую консольную программу, позволяющую отправлять WOL-пакеты в соответствии с параметрами командной строки. Ее удобно использовать в сценариях администрирования, заданиях планировщика, командных файлах.

    Формат командной строки:

    broadc.exe < MAC-адрес сетевой карты > < IP-адрес > < номер порта >

    В широковещательном сегменте локальной сети, обычно формат командной строки имеет вид:

    broadc.exe MAC-адрес сетевой карты 255.255.255.255 67

        Примеры использования:

    broadc.exe 0002b3d8b4e6 255.255.255.255 67 - включить компьютер, MAC - адрес сетевой карты которого равен 0002b3d8b4e6 .

    broadc.exe 0002b3d8b4e6 192.168.65.255 67 - аналогично предыдущему примеру, но используется широковещательный адрес в виде 192.168.65.255. Такой адрес необходимо использовать в тех случаях, когда компьютер, на котором выполняется программа, имеет более одного сетевого интерфейса и подключен к разным подсетям. Если используется широковещательный адрес 255.255.255.255, WOL-пакет будет отправлен на первый сетевой интерфейс, обнаруженный программой и не являющийся петлевым.


    Существует сходное программное обеспечение для Linux - wakeonlan - (скачать, ~5кб)
    По умолчанию программа использует для посылки Magic Packet'а широковещательный адрес и UDP порт 9 (discadrd). Поэтому внутри локальной сети для включения компьютера достаточно задать MAC-адрес сетевой карты в виде 00:01:02:03:04:05
    Формат командной строки:

    wakeonlan MAC-адрес

        Использовать технологию удаленного включения электропитания можно не только в локальной сети, но и в Интернет, надо только учитывать тот факт, что сформированный программой пакет должен быть доставлен конечному устройству, IP-адрес которого указан в качестве параметра, и уже это устройство должно выполнить широковещательную рассылку WOL-пакета в локальную сеть, к которой принадлежит дистанционно включаемый компьютер. Для формирования Magic Packet'а, обеспечивающего удаленное включение компьютера в чужой сети можно воспользоваться утилитой wol.exe -(скачать, ~5кб). При меньшем, чем у broadc.exe размере, программа обладает несколько большими возможностями. В параметрах командной строки можно указать имя текстового файла, содержащего список MAC - адресов компьютеров для удаленного включения.

    wol.exe –f=macs.txt - использовать для удаленного включения электропитания содержимое файла macs.txt

    Пример содержимого :

    # 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 в шестнадцатеричном виде.

    По умолчанию программа wol.exe формирует 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-протокол), и программа удаленного включения завершится ошибкой разрешения IP. Довольно распространенная причина того, что Wake On Lan "не работает" - использование в параметрах программ для включения, IP - адреса включаемого компьютера.

    Пример использования утилиты wol.exe для удаленного включения компьютера через Интернет.



        Маршрутизатор, через который подключается компьютер к Интернет, настраивается таким образом, чтобы пакет, сформированный утилитой wol.exe и пришедший на определенный порт (например 4009) направить в локальную сеть c широковещательным MAC-адресом. Стандартно, сетевой адаптер принимает только те кадры Ethernet, адрес назначения в которых совпадает с его собственным аппаратным адресом (своим MAC-адресом), или с широковещательным адресом (адрес равен 0xFFFFFFFFFFFF). В настройках ADSL-модема Zyxel P660RU2 (Network-NAT-Port Forwarding) создается правило для перенаправления принятого WOL-пакета на широковещательный адрес 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



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

    WakeUp.exe – простейшая программа для удаленного включения электропитания с графическим интерфейсом


    Кнопка ”Get MAC” предназначена для определения аппаратного адреса сетевого адаптера, с помощью которого выполняется удаленное включение электропитания компьютера.

    Кнопка ”Wake” выполняет удаленное включение.

    Более функциональная программа для удаленного включения - WakeOnLan от Aquila Technology

    WakeOnLan от Aquila Technology


    Программа является свободным ПО с открытым исходным кодом, имеет поддержку русского языка и, кроме удаленного включения электропитания, имеет массу дополнительных возможностей, таких как выключение компьютеров под управлением Windows и Linux, мониторинг и отображение содержимого WOL-пакетов, сканирование локальной сети и создание базы данных сетевых устройств. Имеется и консольная версия утилиты - WakeOnLanC.exe . И кроме всего прочего, имеется настраиваемая система оповещения о важных событиях, в том числе и по электронной почте.

    Некоторые особенности реализации Wake On Lan производителями оборудования.



        Для большинства материнских плат характерна одна особенность - удаленное включение электропитания не срабатывает, если компьютер был полностью обесточен, например, при пропадании первичного электропитания 220V. В таком случае, для обеспечения его самостоятельного включения можно использовать установку режима BIOS в разделе "Power Management Setup" - "Power on after power fail" или подобного ему по смыслу ("After AC Power Lost" - "POWER ON" - название зависит от версии и производителя BIOS) . После восстановления первичного электропитания на входе БП, компьютер должен включиться самостоятельно, без нажатия кнопки "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, удаленное включение электропитания с использованием данного сетевого адаптера будет выполняться при получении WOL-пакета.

     

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


    - Сайт acpi.info, где размещалась документация по спецификациям ACPI до октября 2013г.

    - UEFI Forum, где размещается документация по спецификациям ACPI после октября 2013г.

    Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой "Поделиться"











    В начало страницы     |     На главную страницу сайта

     



  • Яндекс.Метрика